Application.Processmessages ?
-
Application.ProcessMessages' ın thread yapılarından farkı nedir?
Asıl yapmak istediğim, google maps' deki gibi arkaplanda interaktif bir harita gibi sürekli sizin hareketlerinize göre yüklenen çok büyük boyutlu bir resim ve sizin bu resim üzerinde işlem yapmanıza bunun engel olmamasını sağlamak istiyorum.
Multithreading bir yapı kullanıcam fakat delphi' de yeniyim ve karşıma "Application.ProcessMessages" bu çıktı. Bunun normal TThread' lerden farkı nedir? Bunun kullanımı thread kullanımından çok daha basit duruyor, bunu kullanmam durumunda götürüsü ne olur?
-
ups
-
Threadle yapman daha doğru.
Application.ProcessMessages adı üstünde program penceresinin mesaj sırasındaki mesasjların işlenmesini sağlar
Nedir bu mesajlar? mesela for i:=0 to 99999999 begin .... end; gibi bi komut verirsen iş bitene kadar form erişilmez olur ve bu sırada çizilmez.
Çünkü windows senin programına çiz emri gönderse de programın tek thread ile çalıştığından senin verdiğin komutu yerine getirmekle meşgulduür
ama for döngüsü içine application.processmessages koyarsan orada program bi nefes alır, çizim işlerini falan tamamlar. Fakat threadin akıcılığını vermez çünkü yine işin bir kısmının bitmesini beklemek zorundadır.
Thread kullanırsan ve ekrana çizilecekleri synchronize içinde yaptırırsan program hiç beklemeden çizim işi geldiği anda işleme koyar.
-
HolyOne bunu yazdı
Threadle yapman daha doğru.
Application.ProcessMessages adı üstünde program penceresinin mesaj sırasındaki mesasjların işlenmesini sağlar
Nedir bu mesajlar? mesela for i:=0 to 99999999 begin .... end; gibi bi komut verirsen iş bitene kadar form erişilmez olur ve bu sırada çizilmez.
Çünkü windows senin programına çiz emri gönderse de programın tek thread ile çalıştığından senin verdiğin komutu yerine getirmekle meşgulduür
ama for döngüsü içine application.processmessages koyarsan orada program bi nefes alır, çizim işlerini falan tamamlar. Fakat threadin akıcılığını vermez çünkü yine işin bir kısmının bitmesini beklemek zorundadır.
Thread kullanırsan ve ekrana çizilecekleri synchronize içinde yaptırırsan program hiç beklemeden çizim işi geldiği anda işleme koyar.
şimdi resmi hem pan edip hem de yüklemeye kalkarsam bunu application.processmessages ile yaparsam takılır, o yüzden thread kullanıyım diyorsun, en basit haliyle, anladım sanırım :)).