Delphi Can

Orjinalini görmek için tıklayınız: timer kullanimi hakkinda
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
arkadaslar dk sayisina gore oyun acmam lazim  ornegin prg. 28 kaydettigimde timer 1 dk ayarli geriye dogru 1 dk 1 dk sayiyor 0 olunca oyun bitiyor.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
say:=say-1;
Label1.Caption:=IntToStr(say);
end;

yukardaki ornek uygulamada bazen 12 den 7 ye dusuyor 25 den 20 ye dusuyor
zamani stabil sekilde nasil olcebilirim.

bilgisayarin saatini kullanmayi deneyecegim 
timer icinde saatin dk larini sayip o sekilde zamani tutmaya calisacagim bakalim nasil bir kod cikacak
baska nasil yapilir bu konuda fikir paylasirsaniz sevinirim saygilar.
timerin intervalini ne ayarladın. Bu ne uygulaması VCL mi ?
delphi7 deneme icin invertal 1000 yaptim saniyeleri sayarak deniyorum ama ilerde dkikalari sayacak sekilde ayarlamam gerekecek
Saate göre hesabı yapmalısınız. Timer, işlemcinin çalışma yoğunluğundan etkilenir. Main thread üzerinde yoğun işlem yapıyorsanız da etkilenir.
(24-04-2024, Saat: 19:51)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]delphi7 deneme icin invertal 1000 yaptim saniyeleri sayarak deniyorum ama ilerde dkikalari sayacak sekilde ayarlamam gerekecek

Böyle zıplaya zıplaya gidiyorsa ana thread üzerinde kitleyen bir iş yapıyorsunuz her ne yapıyorsanız Thread içinde yapın. sorun düzelir.
Timer kullanmayın, bununla alakalı bir çok açıklayıcı mesajımı bulabilirsiniz. Bunun yerine Waitable Timer kullanın.
Bu arada,

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  say:=say-1;
  Label1.Caption:=IntToStr(Dec(say));
end;

yerine


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Dec(say);
  Label1.Caption:=IntToStr(say);
end;

 daha ciks görünür Smile
ugrastim ama beceremedim.
diyelimki 20 dk oyun acip progres barda 20 den 0 a kadar geriye saydirmak istiyoruz.
bu da bilgisayarin sistem saatinden dk bilgisini alarak yapmak istiyoruz.
bunu yapmak icin forma 1 timer koyun 1 sn de sistem saatini okuyup dakika bilgisini alip ona gore geri sayim yapacak bir kod lazim
kafa patlattim nasil yaparim diye ama ortaya bir sey cikaramadim.. bir turlu algoritma kuramadim.
biraz yonlendirma yaparsaniz sevinirim
saygilar
(27-04-2024, Saat: 15:00)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]ugrastim ama beceremedim.
diyelimki 20 dk oyun acip progres barda 20 den 0 a kadar geriye saydirmak istiyoruz.
bu da bilgisayarin sistem saatinden dk bilgisini alarak yapmak istiyoruz.
bunu yapmak icin forma 1 timer koyun 1 sn de sistem saatini okuyup dakika bilgisini alip ona gore geri sayim yapacak bir kod lazim
kafa patlattim nasil yaparim diye ama ortaya bir sey cikaramadim.. bir turlu algoritma kuramadim.
biraz yonlendirma yaparsaniz sevinirim
saygilar

Yapmak istediğiniz kontrolü Timer1'in Event'ına (OnTimer) tıklayıp açılan procedure içine yazcaksınız. Bu procedure Timer1'in interval değeri (miliSaniye) olarak neyse o zaman dolduğunda tetiklenir. Default 1000 gelir. Bu da 1 sn. demektir. Bu procedure içine yazacağınız kod ile her saniye kontrol yapacaksınız.
MinutesBetween metodunu deneyecegim baslangic saatini surekli anlik saat bilgisiyle karsilastirip ne kadar gure gectigini bulmaya calisacagim
Sayfalar: 1 2