Döngüyü bekletmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
aveysel
Üye
Mesajlar: 151
Kayıt: 16 Mar 2004 03:53
Konum: Internet
İletişim:

Döngüyü bekletmek

Mesaj gönderen aveysel »

Bir döngüm var ve bu döngüm programımda belirli bir şart sağlanana kadar döngümü beklemeye almam gerekiyor, Ne yapmalıyım?

Sleep() komutunu kullandım ancak bu komut programı kople beklemeye aldığı için diğer şartımı sağlamıyor.
Select * From LiFe Where Your EYES
http://Www.Gebze.Org
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba

Algoritmanızı tam açarmısınız Döngünüzü neden bekletmek istiyorsunuz. Timer nesnesi kullanın belirli şart bildirin şartınız oluştuğu zaman döngünüzü çalıştırın.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
aveysel
Üye
Mesajlar: 151
Kayıt: 16 Mar 2004 03:53
Konum: Internet
İletişim:

Mesaj gönderen aveysel »

döngümün serverr ıma connect olması için belirli bir satıdan sonra beklemsi gerekiyor ve servera connect olduktan sonra kaldığım yerden devam etmeli pascalda sanırım bu iş için delay komutu varmış ancak delphi bunu desteklemiyor, ama timer ile bunu sanırım çözebilirim ama bunun için delphi de bir komut olmalı....

Döngüyü belirli bir süreliğine durdurmak istiyorum...
(Programı değil sadece döngüyü)
Select * From LiFe Where Your EYES
http://Www.Gebze.Org
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Server a neyle bağlanmaya çalışıyorsun? Yapmaya çalıştığın program nedir? Kullandığın component ın afterconnect gibi bir event i vardır bağlandıktan sonra olan işlemlerini oraya yazarsın

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Merhaba,

Şöyle birşey kullanabilirsin sanırım. Servere connect olunca olunca eline connected olan bir değer geliyordur heralde. Aşağıdaki olayda

server.connect; // burası tam nereye connect olmaya çalıştığını bilmiyorum o yüzden sadece connect dedim.
repeat
Application.ProcessMessages;
until connected // burada da connect olduğunu kontrol ediyorsun. connect olana kadar döngü devam eder.

Beiki işine yarayabilir.
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Mesaj gönderen warder »

Döngü ile programı bekletmek sistemde aşırı yorulmaya ve kaynak tüketimine neden olabilir. freeman35 in söylediği daha şık. en azından topu sisteme atarsanız uygun mesaj geldiğinde sizin programınıza yönlendirir.
böyle bir events yoksa bile mesaj kuyruğuna nasıl ekleyebileceğinizi araştırabilirsiniz.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

dongude bekleme wader in dedigi gibi islemciyi somurur
CPU kullanımı %99 100 e cıkar
illa da bekleyecegim diyorsan sana delay proceeduru
parametre milisaniye cinsinden

Kod: Tümünü seç

procedure Delay(MSecs: Longint);
var
  FirstTickCount, Now: Longint;
begin
  FirstTickCount := GetTickCount;
  repeat
    Application.ProcessMessages;
    Now := GetTickCount;
  until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);
end;
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bende tüm bu tarz bekletme işlemlerimde timerkullanıyorum.(farklı biriş için.:) )
while içinde application.proc...message programın afallamasına neden oluyor.. ama timera dzügün bir mantık ekleyerek yapabilirsin.
mesela ben bir timerla (500ms interval) en az 20-30 kontrol yapıyorum. eğer bunları sürekli döngü ile yapıcak olsaydım herhalde kullanıcı mouseu biraz zor hareket ettirirdi.
Cevapla