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

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