Kornometre Yapmak istiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kornometre Yapmak istiyorum
Arkadaslar merhaba,
Bir kronometre programı yapmam gerekiyor. girilen bir saat sonunda geriye dogru sayacak bir kronometre programı bilen varmı?
Formda arattırdım bir adet cevap buldum fakat yeterli değildi.. yardımlarınızı bekliyorum teşekkürler
Bir kronometre programı yapmam gerekiyor. girilen bir saat sonunda geriye dogru sayacak bir kronometre programı bilen varmı?
Formda arattırdım bir adet cevap buldum fakat yeterli değildi.. yardımlarınızı bekliyorum teşekkürler
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
TTimer ile yapabilirsin. Her 10ms'de(1 salisede) bir, bir Time değişkenini azaltırsın. Veya yine timer ya da bir thread yardımı ile GetCurrentTime fonksiyonunu kullanarak da bir algoritma geliştirebilirsin.mahmut yazdı: girilen bir saat sonunda geriye dogru sayacak...
Program istiyorsan yanlış yerdesin. "Sohbet" kısmına bunu iletebilirsin.mahmut yazdı: bir kronometre programı bilen varmı?
En son fatihtolgaata tarafından 31 Tem 2007 01:38 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Merhaba,
GetTickCount ile komutun calistigi andan itibaren sistemin acilisindan itibaren kac milisaniye gectigini bulabilirsin,
Butona bastin, result := 1000000 diyelim
Butona bastin, result := 1001000 diyelim
1 saniye gecmis demektir,
Tabi getTickCount'u while dongusune sokup her defasinda degerini cekip oldvalue ile newvalueyu karsilastirirsan aradan ne kadar süre gectigini hesaplarsin.. Eger fark 1000 ise, kronometre degerini azalt / artir..
Bir de TimeGetTime() diye bir function vardi, ancak hangisi daha yuksek performansliydi hatirlamiorum...
Bir arastirin, TimeGetTime() ve GetTickCount() arasindaki performans farkini... Kolay gelsin
GetTickCount ile komutun calistigi andan itibaren sistemin acilisindan itibaren kac milisaniye gectigini bulabilirsin,
Butona bastin, result := 1000000 diyelim
Butona bastin, result := 1001000 diyelim
1 saniye gecmis demektir,
Tabi getTickCount'u while dongusune sokup her defasinda degerini cekip oldvalue ile newvalueyu karsilastirirsan aradan ne kadar süre gectigini hesaplarsin.. Eger fark 1000 ise, kronometre degerini azalt / artir..
Bir de TimeGetTime() diye bir function vardi, ancak hangisi daha yuksek performansliydi hatirlamiorum...
Bir arastirin, TimeGetTime() ve GetTickCount() arasindaki performans farkini... Kolay gelsin
torry.ru sitesinde vede rx componentleri için analog veya dijital saati gösteren componentler var
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
hocam yanlis anladiniz ben program istemiyorum. sadece kendi yaptigim bir programcigin icerisine kronometre koymak istedim. fakat halledemedim. dediginiz gibi ontimer nesnesini kullanarak yapmaya calistim ama basaramadim lutfen yardim edebilirmisiniz
Kod: Tümünü seç
Timer1.Interval:=Timer1.Interval-1;
Saniye.Value:=Saniye.Value-1;
If Saniye.Value<=0 Then
Begin
Saniye.Value:=59;
Dakika.Value:=Dakika.Value-1;
If (Dakika.Value=0) Then
Begin
If Saat.Value=1 Then Begin
Dakika.Value:=0;
End;
If Saat.Value=0 Then Begin
Saat.Value:=0;
Dakika.Value:=59;
End;
Saat.Value:=Saat.Value-1;
End;
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
Kronometre için bir buton ekledi ise
bu botun da Timer i aktif edeceksin.
İnterval =1000 (bu bir saniye demekti yanılmıyor isem)
timer ın ontimer ında da yukardaki yazdığın kodları yazacaksın.
bu botun da Timer i aktif edeceksin.
İnterval =1000 (bu bir saniye demekti yanılmıyor isem)
timer ın ontimer ında da yukardaki yazdığın kodları yazacaksın.
Kod: Tümünü seç
var
Form1: TForm1;
var saniye,dakika,saat:integer ;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
saniye:=saniye-1;
edit1.Text:=inttostr(saat)+':'+ inttostr(dakika)+':'+inttostr(saniye);
If Saniye<=0 Then
Begin
Saniye:=59;
If (Dakika=0) Then
Dakika:=Dakika-1 else
Dakika:=59;
Begin
if saat<>0 then begin
Saat:=saat-1;
dakika:=59 ;
edit1.Text:=inttostr(saat)+':'+ inttostr(dakika)+':'+inttostr(saniye);
End;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
saniye:=59;
dakika:=59;
saat:=00;
Timer1.Enabled:=true
end;
En son conari tarafından 03 Ağu 2007 04:31 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bir kelimenin anlamını öğretsen bile yeter..



hocam cevap icin tesekkurler ama benim yapmak istedigim sey su
ben saat girecem
01: 01 : 15
Butona basınca Geri saymaya baslayacak
bu kodda benimkisi gibi calışıyor
01:01:01
01:01:0
0:0:59 oluyor
ben bunu yapıyorum zaten ama biraz daha ugrasayım bakalım kafayı yiyecem ya bi saatin çalışma mantıgını kodlayamadım
ben saat girecem
01: 01 : 15
Butona basınca Geri saymaya baslayacak
bu kodda benimkisi gibi calışıyor
01:01:01
01:01:0
0:0:59 oluyor
ben bunu yapıyorum zaten ama biraz daha ugrasayım bakalım kafayı yiyecem ya bi saatin çalışma mantıgını kodlayamadım

Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
hocam farkındayım oyle yaptıgından anladım benim derdim saatin aralıklı yada aralıksız gösterilmesi degil. bende tam senin kaldıgın noktada kaldım ondan sordum soruyu
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
Yardımdan TDateTime tipine ve DateUtils altındaki fonksiyonlara bakabilirsin. Tek tek dakika saat diye ayırmana gerek yok. Bütün toplama çıkarma işlemlerini TDateTime üzerinden yap. Ardından göstermek istediğinde TimeToStr() fonksiyonunu kullan.
Kronometre sadece çıkarma ve karşılaştırma işlemi. Kodun çalışmaya başladığı vakit ile mevcut vaktin çıkarılmasından elde edilir. Biraz uğraşırsan yapabilirsin.
Kolay gelsin.
Kronometre sadece çıkarma ve karşılaştırma işlemi. Kodun çalışmaya başladığı vakit ile mevcut vaktin çıkarılmasından elde edilir. Biraz uğraşırsan yapabilirsin.
Kolay gelsin.
hocam yardımların için saol ama incelemedigim sey kalmadi. kafam durdu acaba anlatabiliyormuyum bilmiyorum. gerçekten baska bir sey dusunemez oldum
bana biraz yardımcı olursanız kodu oluşturmanız mumkunmu
yalnız yanlış anlaşılmasın.ben saat girecem butona bastıgımda orada anlık olarak saniyenin geri sayması gerekiyor o yuzden ben bu sekilde ayırma olayına girdim. ama cıkmadım
bana biraz yardımcı olursanız kodu oluşturmanız mumkunmu
yalnız yanlış anlaşılmasın.ben saat girecem butona bastıgımda orada anlık olarak saniyenin geri sayması gerekiyor o yuzden ben bu sekilde ayırma olayına girdim. ama cıkmadım
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
Merhaba..
- Geriye sayma işini o kadar da gözünüzde büyütmeyin. Başlangıç saati ile bitiş saatini karşılaştıracağınıza, belirlenen geri sayım saatini normal zamana ekleyin ve o saat geldi mi diye sorgulayın. Her şey daha basit hal alacaktır. Bırakın yükü bilgisayar çeksin, siz ve kodlarınız değil
- Bu başlığı görünce Delphi'yi açtım birer tane TEdit, TButton, TLabel ve bir de TTimer koyup şunları yaptım.
- Timer1'in interval'ini 20 yaptım...
- xSaat ve xSonSaat global değişkenlerdir. xSaat değişkeni fazladan koydum aslında gerek yoktu aslında ama anlaşılır olsun diye eklendi.
Bu haliyle bir geri sayma işi yapıyor.. Araya LAP butonları konabilir veya sonunda mesaj eklenebilir.
- Çok karmaşık kod yok ve de bence işlevsel... Basit düşünmek lazım, bazen kafamız oldukça karışık olabiliyor...
- Geriye sayma işini o kadar da gözünüzde büyütmeyin. Başlangıç saati ile bitiş saatini karşılaştıracağınıza, belirlenen geri sayım saatini normal zamana ekleyin ve o saat geldi mi diye sorgulayın. Her şey daha basit hal alacaktır. Bırakın yükü bilgisayar çeksin, siz ve kodlarınız değil

- Bu başlığı görünce Delphi'yi açtım birer tane TEdit, TButton, TLabel ve bir de TTimer koyup şunları yaptım.
- Timer1'in interval'ini 20 yaptım...
- xSaat ve xSonSaat global değişkenlerdir. xSaat değişkeni fazladan koydum aslında gerek yoktu aslında ama anlaşılır olsun diye eklendi.
Kod: Tümünü seç
Var
xSaat : TTime;
xSonSaat : TDateTime;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '00:00:10,00';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
If Button1.Tag = 1 then Button1.Tag := 0
else begin
xSaat := StrToTime(Edit1.Text);
xSonSaat := Now() + xSaat;
Button1.Tag := 1;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Var
a,b,c,d : Word;
begin
If (Button1.Tag = 1) AND ( (xSonSaat - Now()) >= 0) then begin
DecodeTime( xSonSaat - Now(), a,b,c,d );
Label1.Caption := Format('%.2d:%.2d:%.2d,%.2d', [a,b,c,d div 10]);
end;
end;
- Çok karmaşık kod yok ve de bence işlevsel... Basit düşünmek lazım, bazen kafamız oldukça karışık olabiliyor...

hocam hay senden ALLAH razı olsun ya kafam beynim şişmişti bunun üstüne birde makineye virüs girdi onunla uğraşıp duruyordum terslik varda bugunlerde bende hayırlısı 
en iyisi okuyp üfleyip temiz bir uyku çekmek
yardımlarınız için hepinize teşekkürler

en iyisi okuyp üfleyip temiz bir uyku çekmek
yardımlarınız için hepinize teşekkürler
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.