Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Loading Screen
#1
Arkadaşlar Merhaba. 
Üzerinde çalıştığım uygulama da listview içerisine 1000 kadar items ekleme durumu var. Tüm bu ekleme işlemi pagination olmadan yapılıyor. Bu bekleme esnasında yükleme işleminin yapıldığı belli olsun diye bir loading screen frame ini o esnada kullanıcıya gösteriyorum. Loading screen içerisinde bir image ve image içerisinde TFloatAnimation komponent'i bulunmakta. Image içerisine bir resim ekleyip float animation komponenti ile bu image i  loop içerisinde 360 derece rotate ediyorum. Böylece basit bir loading ekranım olmuş oluyor.
Şimdi gelelim problemime : 
Listview içerisine eleman ekleme işlemi main thread içerisinde yapıldığından aynı anda Loading Screen frame i ni gösterip animasyonu oynatınca animasyonda donmalar yaşanıyor. İki işlemde UI işlemi olduğu için ayrı ayrı thread'ler içerisinde bunları yapmam ne kadar mümkün bilemiyorum. Loading Screen içerisindeki animasyonu, listview itemleri doldurulurken donma olmadan göstermek istiyorum ve tüm itemler eklendikten sonra animasyonu durdurmak istiyorum. Bunları gerçekleştirmek için thread leri ne şekilde kullanmam gerektiği konusunda yardımınıza ihtiyacım var. Şimdiden teşekkürler
Cevapla
#2
(07-09-2022, Saat: 14:02)vedat33 Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba. 
Üzerinde çalıştığım uygulama da listview içerisine 1000 kadar items ekleme durumu var. Tüm bu ekleme işlemi pagination olmadan yapılıyor. Bu bekleme esnasında yükleme işleminin yapıldığı belli olsun diye bir loading screen frame ini o esnada kullanıcıya gösteriyorum. Loading screen içerisinde bir image ve image içerisinde TFloatAnimation komponent'i bulunmakta. Image içerisine bir resim ekleyip float animation komponenti ile bu image i  loop içerisinde 360 derece rotate ediyorum. Böylece basit bir loading ekranım olmuş oluyor.
Şimdi gelelim problemime : 
Listview içerisine eleman ekleme işlemi main thread içerisinde yapıldığından aynı anda Loading Screen frame i ni gösterip animasyonu oynatınca animasyonda donmalar yaşanıyor. İki işlemde UI işlemi olduğu için ayrı ayrı thread'ler içerisinde bunları yapmam ne kadar mümkün bilemiyorum. Loading Screen içerisindeki animasyonu, listview itemleri doldurulurken donma olmadan göstermek istiyorum ve tüm itemler eklendikten sonra animasyonu durdurmak istiyorum. Bunları gerçekleştirmek için thread leri ne şekilde kullanmam gerektiği konusunda yardımınıza ihtiyacım var. Şimdiden teşekkürler

en basit yol kanımca, döngü içine şu tarz bir kod ekleme,

for i:=0 to 10000 do tarzı bir yapıda,

if i mod 10 veya 100 = 0 tarzı bir yapı ile

application process message çağırabilirsiniz.

burada ne yapıyoruz? for her 10 veya 100 kez çağırıldıkdan sonra uygulamaya bekleyen mesajları işlemesi için imkan veriyoruz.

aslında burada yapılması gereken her sistemin cpu performansı aynı olmayacağından ötürü,
for döngüsünden önce zamanı bir kenara kaydetmeli ve
mod kısmına geçeceğiniz 10 100 değerini, (şuanki zaman - başlangıç)/floatloopcount tarzında anlık hesaplatarak yaptırmanız.

böylece yavaş sistemde daha az mod rakamında, hızlı sistemde daha yüksek mod rakamında process message işletilir,

float animation bloklanmaz.

thread de kullansanız görsel objelere ulaşırken anathread havuzu ile senkronize ettireceğinizden ötürü, havuzun kaçıncı sırasında
o mesaj sıraya girer bilinmez, aslında emb bunu thread safe haline getirmeli ve anathread senkronizasyon zorunluluğundan çıkarmalı,
zamanında tbitmap a yaptığı gibi.
Cevapla
#3
FGX componentini duydunuz mu?

Denemekde fayda var..

https://github.com/theilgaz/FGX

https://www.delphican.com/showthread.php?tid=4860
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
Cevabınız için çok teşekkürler. FGX componentini araştırdığımda background da yapılacak işlemler için kullanıcıya progress bar göstermeye olanak sağlıyor. Yukarıda açıklamada da belirttiğim gibi, main thread içerisinde listview e item doldurma işlemi sırasında kullanıcıya ön planda gösterebileceğim bir loading ekranını animasyonlu şekilde göstermek istiyorum.
Cevapla
#5
Fgx animation var.. onu incelemenizi öneririm.

Threadin başında show... Sonunda ise gide yaparsanız probleminiz hallolacaktir
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
"Listeview"nün alınmasını ve doldurulmasını başka bir iş parçacığında yapmak daha iyi görünüyor.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IOS Splash Screen Değiştirme barissagir 5 751 13-08-2025, Saat: 16:58
Son Yorum: barissagir
  Smart TV için Ekran Yansıtma - Screen Mirror nehirnnn 3 1.612 27-11-2023, Saat: 06:24
Son Yorum: Master_Crazy
  Android Uygulama Splash Screen De Takılı Kalıyor glagher 7 3.438 04-06-2021, Saat: 13:46
Son Yorum: glagher
  Splash Screen'de Gif Ekleme glagher 14 6.237 14-03-2021, Saat: 13:28
Son Yorum: mrmarman
  Login Screen - Uzay tasarımı [ ÖRNEK PROJE ] Mr.Developer 6 3.785 18-06-2020, Saat: 11:13
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi