Buton problemime çözüm bulamıyorum.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
meo
Üye
Mesajlar: 16
Kayıt: 01 Nis 2008 12:56

Buton problemime çözüm bulamıyorum.

Mesaj gönderen meo »

S.a arkadaşlar.
Butonla ilgili bir problemim var yardımcı olursanız sevinirim.

Butona basıldığı müddetce label1.caption' un değeri 1 artacak . bırakıldığında duracak. bunu butonla yapmam gerek .updown kullanmıyacağım.
şimdiden teşekkür ederim.
cdmesut
Üye
Mesajlar: 29
Kayıt: 16 Mar 2008 02:40

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen cdmesut »

bilgisayarımda delphi yok ama yinede bişiler karaliyim .butonun mousedown olayına

label1.caption:=label1.caption+1;
meo
Üye
Mesajlar: 16
Kayıt: 01 Nis 2008 12:56

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen meo »

tşk ederim Mesut. Fakat,
button.mousedown, button.mouseup..vb olaylar hep butona tıklamayla bir arttırım yapıyor. Ben butona bastığım anda sayım başlayacak, tıklamayı bıraktığımda duracak şekilde istiyorum.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen ikra »

mousedown buton basili tutuldugu sürece aktif olur. mouseclick butona tiklayip biraktiginda tetiklenir.

Kod: Tümünü seç

procedure TForm1.ButtonDown(Sender: TObject);
var
  I: Integer;
begin
  I := StrToIntDef(label1.caption,0);
  inc(I);
  label1.caption := IntToStr(I);
end;
Kolay gelsin...
kıdemsiz üye
meo
Üye
Mesajlar: 16
Kayıt: 01 Nis 2008 12:56

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen meo »

Göndermiş oldugun buttonla ilgili örnek için teşekkür ederim. Fakat dediğiniz gibi yaptım ama butona tıklayınca "ı" değişkeni 1 arttırılıyor ve öyle kalıyor. ben buton basılı kaldığı sürece incerement işlemini yapmasını istiyorum.
Mousedown dediğiniz gibi basıl kaldığı sürece çalışmıyor. bendemi problem var bilemiyorum? Allah rızası için yardımcı olurmusunuz.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen unicorn64 »

buton yerine mesela bir label koyup onun mousedown eventine atayın kodu...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
meo
Üye
Mesajlar: 16
Kayıt: 01 Nis 2008 12:56

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen meo »

var
Form1: TForm1;
I: Integer;
say:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
say:=0;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
say:=0;
repeat
inc(I);
label1.caption := IntToStr(I);
sleep(5);
Application.ProcessMessages;
until say=1;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
say:=1;
end;
end.



böyle yaptım ama bundan daha kısa bir yolu olmalı. Çünkü çok buton var, program cok uzuyor ve karmaşıklaşıyor.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen CiTiZEN »

bir function veya procedure olarak yazarsanız butonların altında tek satır kod ile çalıştırırsınız karmaşıklığı azaltır.
UWESIS CORPORATION
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen Lost Soul »

meo yazdı:

Kod: Tümünü seç

var
  Form1: TForm1;
  I: Integer;
  say:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
say:=0;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=0;
repeat
inc(I);
label1.caption := IntToStr(I);
sleep(5);
Application.ProcessMessages;
until say=1;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
say:=1;
end;
end.

böyle yaptım ama bundan daha kısa bir yolu olmalı. Çünkü çok buton var, program cok uzuyor ve karmaşıklaşıyor.
bundan daha kısa yolu yok
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen CiTiZEN »

Kod: Tümünü seç

var
  Form1: TForm1;
  i,say:integer;
implementation

{$R *.dfm}

PROCEDURE ADD;
BEGIN
say:=0;
repeat
inc(I);
Form1.label1.caption := IntToStr(I);
sleep(5);
Application.ProcessMessages;
until say=1;
END;
//
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ADD;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=1;
//
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ADD;
end;

procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=1;
//
procedure TForm1.Button3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ADD;
end;

procedure TForm1.Button3MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=1;
//
procedure TForm1.Button4MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ADD;
end;

procedure TForm1.Button4MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=1;
//
procedure TForm1.Button10000MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ADD;
end;

procedure TForm1.Button10000MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
say:=1;
end;
böyle yaparsan pratik olur sadece..
UWESIS CORPORATION
meo
Üye
Mesajlar: 16
Kayıt: 01 Nis 2008 12:56

Re: Buton problemime çözüm bulamıyorum.

Mesaj gönderen meo »

Yardımcı olan arkadaşlardan ALLAH razı olsun. ALLAH ilminizi arttırsın...
Cevapla