Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphide Formlarla Çalışma
#1
Merhaba arkadaşlar

Çoktan beri aklımda olan bir soruyu size sormak istedim. Arkadaşlar ben mobil uygulama geliştirirken Unitler şeklinde formlara açarak, uses satırına bunları ekleyerek ve formx.show şeklinde çağırıyorum. İşim bittiğinde ise formx.close şeklinde kapatıyorum. Fakat bu durum form sayıları çoğaldıkça cihazda donma ve kasmalara sebep oluyor. Daha verimli bu işlemi nasıl gerçekleştirebilirim. Birde frame olayı var frame nasıl kullanılıyor ve nerelerde kullanabilirim. Aynı zamanda daha mı form oluşturmaktan verimlidir? 

Fikirlerinizi ve yardımlarınızı bekliyorum hepinize iyi çalışmalar dilerim.
Cevapla
#2
Bu konuyu burdan takip edebilirsin
https://www.delphican.com/showthread.php...4#pid43444
Cevapla
#3
(10-02-2021, Saat: 17:37)ilhanim Adlı Kullanıcıdan Alıntı: Bu konuyu burdan takip edebilirsin
https://www.delphican.com/showthread.php...4#pid43444

Çok teşekkürler inceleyeceğim
Cevapla
#4
Merhaba,
Bende sizin kullandığınız şekilde çok kullandım ama bu tamamen zarar getirdi. her formda aynı kütüphaneler, birbirinden bağımsız çalışmaları bellekte aşırıya kaçan yer kaplamaları...

Size önerim tabcontrol kullanmanız ;

Mobilde özellikle çok işinize yarayacaktır. birbirinden bağımsız ama tek kaynaktan faydalanan bir yapı. örnek olması açısından demo hazırladım. 

   

istediğiniz kadar tab ekleyin, form eklemekten yine de fazlasıyla performanslı olacaktır. 
tab position özelliğini none yaparsanız her şey mükemmel şekilde devam eder. görünmesi açısından açık bıraktım.

Frame'lere gelecek olursak elbette mobilde kullanılması gereken bir yapı fakat burada tabcontrol bir adım öne çıkıyor ;
Frame'leri sonradan var ettiğiniz ve kullanıma ihtiyaç olmadığında yok ettiğiniz için içerisindeki barınacak verilere erişmek sizi zora sokabilir.

Her ne kullanırsanız kullanın, Her şey tasarımda, tasarlamakta bitiyor.
Cevapla
#5
(10-02-2021, Saat: 20:03)Mr.Developer Adlı Kullanıcıdan Alıntı: Merhaba,
Bende sizin kullandığınız şekilde çok kullandım ama bu tamamen zarar getirdi. her formda aynı kütüphaneler, birbirinden bağımsız çalışmaları bellekte aşırıya kaçan yer kaplamaları...

Size önerim tabcontrol kullanmanız ;

Mobilde özellikle çok işinize yarayacaktır. birbirinden bağımsız ama tek kaynaktan faydalanan bir yapı. örnek olması açısından demo hazırladım. 



istediğiniz kadar tab ekleyin, form eklemekten yine de fazlasıyla performanslı olacaktır. 
tab position özelliğini none yaparsanız her şey mükemmel şekilde devam eder. görünmesi açısından açık bıraktım.

Frame'lere gelecek olursak elbette mobilde kullanılması gereken bir yapı fakat burada tabcontrol bir adım öne çıkıyor ;
Frame'leri sonradan var ettiğiniz ve kullanıma ihtiyaç olmadığında yok ettiğiniz için içerisindeki barınacak verilere erişmek sizi zora sokabilir.

Her ne kullanırsanız kullanın, Her şey tasarımda, tasarlamakta bitiyor.

Merhabalar hocam

Öncelikle değerli tavsiyeleriniz için teşekkür ederim. Tabcontrol kullanıyorum fakat hocam orada da şöyle bir sıkıntı oluyor. Tüm tasarımlar görseller bir formun üstünde durduğu için o formda da kasmalar donmalar oluyor. Frame yöntemini hiç kullanmadım. Form gibi çağırabiliyoz mu frameleri kullanımı nasıldır ayrıntılı bir kaynak varmı öğrenebileceğim bir kaç deneme yapmak istiyorum kullanımı hakkında acaba ?
Cevapla
#6
(10-02-2021, Saat: 21:06)codder71 Adlı Kullanıcıdan Alıntı: Merhabalar hocam

Öncelikle değerli tavsiyeleriniz için teşekkür ederim. Tabcontrol kullanıyorum fakat hocam orada da şöyle bir sıkıntı oluyor. Tüm tasarımlar görseller bir formun üstünde durduğu için o formda da kasmalar donmalar oluyor. Frame yöntemini hiç kullanmadım. Form gibi çağırabiliyoz mu frameleri kullanımı nasıldır ayrıntılı bir kaynak varmı öğrenebileceğim bir kaç deneme yapmak istiyorum kullanımı hakkında acaba ?

Rica ederim.
Frame konusunda en ideal ve görsel Türkçe kaynak yukarıdaki @ilhanim tarafından paylaşılan konu diyebilirim.
Oradaki işlemleri gerçekleştirerek örnek hazırlayabilirsiniz. takıldığınız yerde yazın yardımcı oluruz elbette. Ama aklıma takılan görselleri image ile mi ekliyorsunuz ? Eğer öyle ise imagelist'e geçiş yapın derim. bu büyük orada performans sağlayacaktır. Ve tasarımsal değişikliğe gitmeyi deneyin. Eğer projenizden görüntüler paylaşmak isterseniz o görsellerden yola çıkarak size arayüz hazırlayıp paylaşabilirim.
Şuana dek onlarca tasarım yaptım ve proje geliştirdim tabcontrol konusunda da formda kasma konusunda da hiç sorun yaşamadım.
Cevapla
#7
(10-02-2021, Saat: 21:18)Mr.Developer Adlı Kullanıcıdan Alıntı:
(10-02-2021, Saat: 21:06)codder71 Adlı Kullanıcıdan Alıntı: Merhabalar hocam

Öncelikle değerli tavsiyeleriniz için teşekkür ederim. Tabcontrol kullanıyorum fakat hocam orada da şöyle bir sıkıntı oluyor. Tüm tasarımlar görseller bir formun üstünde durduğu için o formda da kasmalar donmalar oluyor. Frame yöntemini hiç kullanmadım. Form gibi çağırabiliyoz mu frameleri kullanımı nasıldır ayrıntılı bir kaynak varmı öğrenebileceğim bir kaç deneme yapmak istiyorum kullanımı hakkında acaba ?

Rica ederim.
Frame konusunda en ideal ve görsel Türkçe kaynak yukarıdaki @ilhanim tarafından paylaşılan konu diyebilirim.
Oradaki işlemleri gerçekleştirerek örnek hazırlayabilirsiniz. takıldığınız yerde yazın yardımcı oluruz elbette. Ama aklıma takılan görselleri image ile mi ekliyorsunuz ? Eğer öyle ise imagelist'e geçiş yapın derim. bu büyük orada performans sağlayacaktır. Ve tasarımsal değişikliğe gitmeyi deneyin. Eğer projenizden görüntüler paylaşmak isterseniz o görsellerden yola çıkarak size arayüz hazırlayıp paylaşabilirim.
Şuana dek onlarca tasarım yaptım ve proje geliştirdim tabcontrol konusunda da formda kasma konusunda da hiç sorun yaşamadım.

Aynen hocam imagelist kullanmaya başladım ve performans sağladı son yaptığım projelerde ama söylediklerinizden anladığım kadarı ile framde de tam çözüm değil doğrumudur ?
Cevapla
#8
Selamlar,
Anladığıım kadarı ile siz formlarınızı Close ederken Free yapmıyorsunuz. Yani bellekten atmıyorsunuz.
1-Eğer o forma tekrar ulaşırken Create ediyorsanız, bu durumda arka planda kullanılmayan pek çok form kalıyor demektir. Bu konuya dikkat edin.
2-Eğer böyle bir durum söz konusu değilse tek tek formlarınızın giriş ve çıkışlarındaki artıkları kontrol edin (memory leak=bellek sızıntısı). Bu noktada debug işinize yaramaz. Lojik (mantıksal) gözle-zihinle kontrol yapmanız gerekiyor. Bu kontrolü kolaylaştırmak için-yani belli durumları elimine etmek için yavaşlamanın hangi durumda olduğunu tespit etmeye çalışın.
3-Programlama yapınıza çeki düzen vermeye çalışın. Standart bir yapılanma kurun ve tüm ekranlarda onu uygulayın (bu arada design pattern ilkelerini programlarınıza uygulamaya çalışın). Hatta yapabiliyorsanız bir ancestor form/frame oluşturup tüm ekranlarınızı ondan türetin. Bu ancestor'a da tüm ortak olabilecek kodları yükleyin. Son ekranların yükünü dağıtın.
Kolay gelsin
Cevapla
#9
(10-02-2021, Saat: 23:27)codder71 Adlı Kullanıcıdan Alıntı: Aynen hocam imagelist kullanmaya başladım ve performans sağladı son yaptığım projelerde ama söylediklerinizden anladığım kadarı ile framde de tam çözüm değil doğrumudur ?

Günaydın,
Tam çözümden ziyade alternatif ya da farklı çıkış yolları diyelim. Sonucunda nasıl bir yöntem kullanır iseniz kullanın önem arz eden performans kaybını minimuma indirmek olacak.
@mustafaozpinar hocamın sıraladıklarını uygulamadığınız yönde bir algım oluştuğundan, Bende ( Şimdilik / ilk etapta ) bunlarla uğraşmayın diye tabcontrol önerdim ve tasarımsal değişikliğe gidin dedim.
Ayrıca sadece formları sonradan var edip, işlemler tamamlandığında yok etmekten de öte IDE ekranında da kasmalar oluyorsa bir şeyler yanlış ilerliyordur. Gereğinden fazla görsel ya da bileşen kullanmışsınızdır.
( Sanırım bende tek yönlü düşünmüşüm Idea . Ortaya farklı anlamlar çıkmış olabilir kusura bakmayın bunun için. )
Cevapla
#10
(11-02-2021, Saat: 02:06)mustafaozpinar Adlı Kullanıcıdan Alıntı: Selamlar,
Anladığıım kadarı ile siz formlarınızı Close ederken Free yapmıyorsunuz. Yani bellekten atmıyorsunuz.
1-Eğer o forma tekrar ulaşırken Create ediyorsanız, bu durumda arka planda kullanılmayan pek çok form kalıyor demektir. Bu konuya dikkat edin.
2-Eğer böyle bir durum söz konusu değilse tek tek formlarınızın giriş ve çıkışlarındaki artıkları kontrol edin (memory leak=bellek sızıntısı). Bu noktada debug işinize yaramaz. Lojik (mantıksal) gözle-zihinle kontrol yapmanız gerekiyor. Bu kontrolü kolaylaştırmak için-yani belli durumları elimine etmek için yavaşlamanın hangi durumda olduğunu tespit etmeye çalışın.
3-Programlama yapınıza çeki düzen vermeye çalışın. Standart bir yapılanma kurun ve tüm ekranlarda onu uygulayın (bu arada design pattern ilkelerini programlarınıza uygulamaya çalışın). Hatta yapabiliyorsanız bir ancestor form/frame oluşturup tüm ekranlarınızı ondan türetin. Bu ancestor'a da tüm ortak olabilecek kodları yükleyin. Son ekranların yükünü dağıtın.
Kolay gelsin

Merhabalar hocam aynen close ediyorum ama free yapmıyorum. Free yaptıktan sonra formu geri çağırmak için create etmek lazım bununla ilgili örnek varmı hocam eğer performans sağlarsa free create ederek bi denerim.

(11-02-2021, Saat: 09:56)Mr.Developer Adlı Kullanıcıdan Alıntı:
(10-02-2021, Saat: 23:27)codder71 Adlı Kullanıcıdan Alıntı: Aynen hocam imagelist kullanmaya başladım ve performans sağladı son yaptığım projelerde ama söylediklerinizden anladığım kadarı ile framde de tam çözüm değil doğrumudur ?

Günaydın,
Tam çözümden ziyade alternatif ya da farklı çıkış yolları diyelim. Sonucunda nasıl bir yöntem kullanır iseniz kullanın önem arz eden performans kaybını minimuma indirmek olacak.
@mustafaozpinar hocamın sıraladıklarını uygulamadığınız yönde bir algım oluştuğundan, Bende ( Şimdilik / ilk etapta ) bunlarla uğraşmayın diye tabcontrol önerdim ve tasarımsal değişikliğe gidin dedim.
Ayrıca sadece formları sonradan var edip, işlemler tamamlandığında yok etmekten de öte IDE ekranında da kasmalar oluyorsa bir şeyler yanlış ilerliyordur. Gereğinden fazla görsel ya da bileşen kullanmışsınızdır.
( Sanırım bende tek yönlü düşünmüşüm Idea . Ortaya farklı anlamlar çıkmış olabilir kusura bakmayın bunun için. )

Hocam ide ekranında kasmalar olmuyor genelde cihazlarda aslında yeni nesil güçlü cihazlarda da çok problem yok ama daha eski nesil cihazlarda bariz donmalar görüyorum. Söylediğiniz gibi daha verimli görseller kullanacağım.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çalışma anında lisboxitem da oluşturulan nesneye ulaşmak diseqc 7 3.262 19-11-2022, Saat: 22:09
Son Yorum: diseqc
  Çalışma anında cihaz bilgilerini alma ferman.karahisar 5 2.573 29-07-2022, Saat: 20:49
Son Yorum: Jakarta2
  ArkaPlanda Çalışma zihnidede 10 8.866 12-01-2022, Saat: 16:10
Son Yorum: gonulali
  Delphi 10.3 Android Servis Çalışma Sorunu Halil Han BADEM 15 17.423 23-10-2019, Saat: 08:31
Son Yorum: malitutuncu
  ios uygulama arkaplan calisma gonulali 4 4.270 25-06-2019, Saat: 01:22
Son Yorum: delphi.developer



Konuyu Okuyanlar: 1 Ziyaretçi