Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Frame Kullanımlarında Free İşlemleri Hakkında
#1
FMX projesinde Frame kullanırken bazen android üzerinde çalışan uygulama frame leri free edemiyor
Create etmek istediğimde zaten var uyarısı alıyorum
Buna benzer sorunla karşılaşan oldumu.
En basitinden açık olan bir frame için form üzerine buton koyuyorum ve aşağıdaki yöntemleri deneyerek free ediyorum
1. FreeAndNil(Frame)
2. Frame.Free
3. Frame := nil

Özellikle Androidde çalışırken Frame nil olarak görünmesine rağmen create dediğimde hata oluşuyor 


Aşağıdaki şekilde bir senaryoda sizce nasıl bir yol izlenmeli Frameler free edilirken.

1 Ana form mevcut
bu ana form bir frame create ediyor.
Bu framede başka frameleri çağırıyor onlarda başka frameleri

Buradaki asıl olan 1 frame başka frame çağırırken kendisini free etmeli

Bu yapıyı windows üzerinde PosMessage,SendMessage yada timer benzeri yollar ana form ile çözebiliyoruz
Fakat android tarafında bu yöntemler işe yaramıyor

Sizce nasıl bir yol izlenmeli 

Teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
merhaba sevgili adelphiforumz,
siz anladığım kadarıyla objeleri dinamik runtime esnasında create edip parent atıyorsunuz,

(bu sebeple henüz design anında ide de iç içe frame kullanarak tasarım yapmamışsınız, sorunlarını ide çökmelerini yaşamamışsınız bu konuya dikkat edin)

ben daha önce bu soruyu android için(belleğin hemen salınmaması) zaten bu forumda sormuştum ve soruna yönelik hiç bir çözüm bulamamışdık, genel olarak, sistem istediği zaman boşaltır cevabı aldım yanlış hatırlamıyorsam ancak bu geçerli bir çözüm de değil,
belleğinde boşaltılması gerekte yoksa uygulama çöküyor, veya os tarafından kapatılıyor, bunu gösterir bir gif atmışdım, bir çok kişi bende sorun yok demişdi.

( aslında çok fazla satır koda sahip bir miktar komplex hafif profesyonel bir uygulama geliştirmediğinden kimse bu sorunları fark edemiyor android tarafında anladığım kadarıyla, bu forumda)

bu sebeple ben sorunumu form un destroy anındaki cafree ile çözmüştüm, "objeleri manuel free destroy nil etmiyorum", yukarıdan aşşaya sahipliğe göre zaten bu işlem yapılıyor(form destroyde).

haliyle formlarımda ihtiyaç anında create ettiriyorum manuel olarak, autocreate den çıkardım, formlar objelerle doldu,
bu objeler yaratıldığı an (dinamik veya statik fark etmez) direk bellekden zaten kullanımını yapıyor, üstelik uygulama açılışınıda geciktiriyorlar.

markette uyarıda bulunuyor bu durumlara.

procedure TFormX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FormMain.Show;
// ---------
Action:=TCloseAction.caFree;
FormX:=Nil;
End;
button1.onclick -> self.close; 

size tavsiyem bir demo + video ile emb ya raporlayın sorunu.
Cevapla
#3
Merhaba @hayalyilmaz43 yorumlarınız için teşekkürler
benim bahsettiğim konu aslında framelerde yaşanıyor.
form gibi framelerin create, close, destroy gibi özellikleri malesefki yok
bunları programcının yönetmesi gerekiyor.

Form ile tasarladığımda açıkçası sizin bahsettiğiniz gibi bu tür problemlerle hiç karşılaşmadım.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#4
(20-11-2020, Saat: 09:48)adelphiforumz Adlı Kullanıcıdan Alıntı: Merhaba @hayalyilmaz43 yorumlarınız için teşekkürler
benim bahsettiğim konu aslında framelerde yaşanıyor.
form gibi framelerin create, close, destroy gibi özellikleri malesefki yok
bunları programcının yönetmesi gerekiyor.

Form ile tasarladığımda açıkçası sizin bahsettiğiniz gibi bu tür problemlerle hiç karşılaşmadım.

emb bug reportlarına bakarsanız çokca sorun var

(
  • formlarda obje isim çakışması ve bunu düzeltemeyerek çökmesi,
  • obje property değişikliklerini diğer formlara güncellememesi,
  • bir sebepden framede yapılan değişikliklerin forma yansıtılmaması obje property si bozularak sabit kalmakda.
  • framede silinen objelerin form açık olsa bile kaldırılmaması ve çalıştırıldığında obje mevcut değil exceptionları,
  • obje isim çakışmasından ötürü proje save işlevinin bozulması, framede yaptığınız değişikliklerin revered to inherid bile yapsanız güncellenmemesi gibi bir sorun problem mevcut 10.4.1 de.
)

sizin izlediğiniz yol daha iyidir dinamik create etmek.
(size tavsiyem iç içe frame kullanmayın, tframe içine tframe eklemeyin)

android tarafında free için(aslında bu konu frame e özel değil) anında bellek boşaltma konusu ise halen daha çözüm bulamadığım bir konu,

ios da durum nasıl oluyor bilemiyorum, ancak uygulamanın ortalama 400 500mb ram kullanımını geçmemesini tavsiye ederim
diğer türlü 1gb bellekli cihazlarda sorun olacakdır.
Cevapla
#5
Merhaba
Form ile mobil programlarda yazılmıyormu memory ile alakalı çok yer kapladığını duymuştum. yanlışsa düzeltin lütfen.
Frame en güzeli görünüyor
Frame lerde böyle problemler var ise sadece tabcontrol componenti ile mobil program yazacağız nasıl olacak bu işler .
Bir arkadaş çıkıp diyebilirmi.
N(20 ve üstü) adet form ile çalışan bir projem var ve bunu ben şu şekilde yaptım ve performans sorunu yoktur herşey normal çalışıyor diyebiliyormu.
Cevapla
#6
https://www.delphican.com/showthread.php...901&page=3 anlatıldığı şekilde windows uygulamasını androide aktardım. Cihaz hafızasında en başta toplam 6 formlu hali 246-298 MB tutuyordu. Ana form hariç diğerleri frame olunca 23-235 MB aralığına düştü. Açılışta 23 MB görünce çok şaşırmıştım, tavsiye ederim.
saygılar mustafa ֍zgün 
Cevapla
#7
eğer frame in parenti form a assign ise veya frame i obje olarak forma ekledi iseniz, form cafree edilirken zaten frame de bellekten atılıyor, mobilde free/destroy yaparak bunu gerçekleştirmeye çalışmayın işe yaramıyor bellek boşaltılmıyor, form kapatılırken cafree yapması yeterli.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Xcode Üyeliği hakkında barissagir 15 1.900 07-02-2024, Saat: 16:26
Son Yorum: barissagir
  Frame Oluşturmak barissagir 12 979 06-12-2023, Saat: 23:32
Son Yorum: mustafaozpinar
  Andorid Font Hakkında barissagir 2 270 20-11-2023, Saat: 09:05
Son Yorum: RAD Coder
  Frame'den bir sonraki frame geçmek hbulus 1 290 20-10-2023, Saat: 15:00
Son Yorum: yhackup
  IOS galeriden resim veya video seçme hakkında Mr.X 6 1.103 11-05-2023, Saat: 06:54
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi