çok basit ama yapamadım :(

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

çok basit ama yapamadım :(

Mesaj gönderen xegelix »

ya arkadaşlar çok basit bir şey üstünde deneme yapıyorum ama bir türlü olmuyor ya çıldıracam:( bir gauge bir buton ve bir timer var gaugenin addprogressi ile 100e kadar çıkarıyorum sayımı ama geri yani 0 a kadar saydırmak ta istiyorum aşağıdaki gibi bir kod yasdım ama 99 ile 100 arasında kalıp duruyor mantık hatası yapıyorum ama saatelerdir bulamadım bir bakabilirmisiniz?

procedure TForm1.Timer2Timer(Sender: TObject);
begin
gauge2.AddProgress(1);
if gauge2.Progress=100 then
begin
gauge2.AddProgress(-1);
end;

SAygılarımla
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Kod: Tümünü seç

if gauge2.Progress=100 then 
begin 
gauge2.AddProgress(-1); 
end; 
bu kod ile sadece gaugenin değeri 100 ise eksilt diyorsunçBir defa 100 olunca çalışıyor.Sonra 99 oluyor haliyle.Ama 99 olunca bu şarta uymadığından timer çalışsa da bu şart olmadığından 99 da kalıyor.

Bunun yerine kodunu şu hale getir.Bir adet daha timer al formuna ve enabled false yap.2.tmerine şu kodu yaz.

Kod: Tümünü seç

gauge2.AddProgress(-1); 
Yukardaki senin yazdığın kodu da şu hale getir.

Kod: Tümünü seç

procedure TForm1.Timer2Timer(Sender: TObject); 
begin 
gauge2.AddProgress(1); 
if gauge2.Progress=100 then 
begin 
timer2.enabled:=True;
timer1.enabled:=False;
end; 
Sanırım bu şekilde olur.
Kolay gelsin.
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

tşk

Mesaj gönderen xegelix »

ya çok tşk ederim evet dediğin gibi yaptığımda oldu ama ben yapamdım işte ne yapmam lasım bu işi öğrenmem için anlamadım ya tekrar teşekkür ederim iyi çalışmalar
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Gidip gelen Gauge istiyorsun anlaşılan...

Aşağıdaki kurgu işini görecektir.

Kod: Tümünü seç

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Case Timer2.Tag of
  0 : Gauge2.AddProgress(+10);
  1 : Gauge2.AddProgress(-10);
  end; // Case
  If Gauge2.Progress = 100 then Timer2.Tag := 1;
  If Gauge2.Progress =   0 then Timer2.Tag := 0;
end;
Resim
Resim ....Resim
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

ne ditim :(

Mesaj gönderen xegelix »

ben bu işi beceremeceğim sanırım ikiside çalıştı kodların ama ben bu kadar basit bir işi bile çözemedim tşk ederim yardımlarınız için iyi çalışmlar
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Hocam öyle düşünme.

- Algoritma mantığı yerleşecek ve gelişecek. Bunun için zamana ihtiyaç var. Bu yazılanları basit olarak algılama. Sadece tecrübe.

- İki timer'a gerek olmadığını tek bir tanesiyle de yapılabileceğini biliyorsun atrık. Şimdi burdan yola çıkarak sistemi kavradığında başka yerlerde benzer durumlara çözüm üreteceksin. Sana basit gelecek. :idea:
Resim
Resim ....Resim
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

saol

Mesaj gönderen xegelix »

inan bana mantık olarak nasıl yapılacağını biliyorum ama koda dökemiyorum bide 4 yıl ayrı kaldım bu işten sanırım çok çalışmam gerek kusura bakmayın sizleride ,meşgul ettim tekrar çok tşk ederim iyi çalışamalar
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

bu yazıları okurken Gauge diye bişeyin ne olduğunu bile bilmiyordum.
Hem buldum hem de öğrendim. Ama baya bi aradım :)
xegelix
Üye
Mesajlar: 21
Kayıt: 22 Kas 2005 12:04

:)

Mesaj gönderen xegelix »

ne güzel hiç olmasa böle br faydam oldu
Kullanıcı avatarı
uğur alkan
Üye
Mesajlar: 227
Kayıt: 29 Ağu 2004 04:49
Konum: Istanbul

Mesaj gönderen uğur alkan »

konu başlığıda düzelirse çok güsel olacak
Bazen sert rüzgarlar eser başını öne eğmekten asla korkma
Cevapla