Butonun tıklandığını nereden anlayabiliriz

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen dtgb »

Merhabalar arkadaşlar,
Butonun tıklandığını nereden anlayabilirim buton tıklandığında bi değer dönüşü varmı acaba
yapmak istediğim şu

if ((buton1 tıklandıysa ) veya( buton2 tıklandıysa)) then
begin
// şu işlemleri gerçekleştir...
end;

bu işlemi nasıl yapabilirim
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen qamyoncu »

çok kullanışlı bi yöntem deil ancak, global bir değişken tanımlarsın.. button1onClick yordamında o değişkene '1' değerini atarken button2onclick yordamında '2' değerini atarsın ve döngüde bunu sorgularsan istediğine ulaşmış olursun:)

tekrar ediyorum kullanışlı bir yöntem deil..

ve... güzel bir örnek.. işine yarıyacağını umuyorum.

http://www.delphi3000.com/articles/article_2490.asp?SK=

koLay geLsin. .
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen ZeynelAbidin »

ben bir formda bulunan 2 farklı butonla tek bir bir formu çağırdım ve sonuç için hangi butona tıklandığını bulmak için tıkladığım butonun captionunu değiştirirek dönüşün eğer captiounu şu ise buna tıklanmıştır dedim ve böyle bir çözüm buldum.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen unicorn64 »

button_click eventindeki sender parametresini kullanabilirsiniz

Kod: Tümünü seç

procedure frmMAIN.Buton_click(sender:Tobject)
var
 basilan:Tbutton;
begin
  basilan:=sender as Tbutton;
  if basilan.name='btn1' then
  begin
  end;
end;
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
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen aslangeri »

s.a.
Asıl amacını söylersen ona göre çözüm üretelim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
LifeTime
Üye
Mesajlar: 19
Kayıt: 09 Oca 2009 06:59

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen LifeTime »

Çok daha pratik ve basit (bence) bir yöntemde şu;

Forma koyduğun buton, Button1 olsun. Bunun Event'ının OnClick alanına çift tıklarsan, Delphi ototmatik olarak aşağıdaki procedure'ü oluşturur. Bunun içine de istediğim kontrolü yada işlemi koyabilirsin. Çünki bu Button1 tıklandığı anda bu proc çalışacaktır.

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('Basılan "Button1"');
end;
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen qamyoncu »

LifeTime yazdı:Çok daha pratik ve basit (bence) bir yöntemde şu;

Forma koyduğun buton, Button1 olsun. Bunun Event'ının OnClick alanına çift tıklarsan, Delphi ototmatik olarak aşağıdaki procedure'ü oluşturur. Bunun içine de istediğim kontrolü yada işlemi koyabilirsin. Çünki bu Button1 tıklandığı anda bu proc çalışacaktır.

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('Basılan "Button1"');
end;
yapmak istediğinin bu olduğunu sanmıyorum..
Ama anlamışda değilim :)
aslangeri'ye katılarak daha açık ifade edersen seviniriz..
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen dtgb »

bunu yapmak istemekteki amacım şudur
ekle
kaydet
düzelt
değişikliği kaydet
iptal

gibi butonlarım mevcut açılışta yada butonların tıklanmasına göre bazı butonların enable olayı true bazılarınınki false olacak tüm bunları herbir butonun altına yazmaktansa tekbir procedure altında yapılacakları toplamak istiyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen aslangeri »

s.a.
buttonların tag özelliği var.
click olayında

Kod: Tümünü seç

(sender as tbutton).tag
diyerek hangi buttonun basıldığını anlayabilirsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen akdatilla »

bir butona string ifade ile ulaşıp özelliğini değiştirmek için:

Kod: Tümünü seç

procedure TForm1.BtnEnable(bn:string);
var
    b:TComponent;
begin
      b:=FindComponent(bn);
     if b<>nil then
        (b as TButton).Enabled:=True;
end;
Bir butona basıldığında özelliğini alabilmek için:

Kod: Tümünü seç

procedure TForm1.ButtonxClick(sender:tobject);
begin
   if (sender is TButton) then
   with (sender as TButton) do
   begin
       if Caption='Ekle' then
       Begin
            EkleProc;
            Caption:='Sil';
       end else
       if Caption='Sil' Then
       Begin
            silproc;
            Caption:='Ekle';
       end;
   end;
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen conari »

dtgb yazdı:bunu yapmak istemekteki amacım şudur
ekle
kaydet
düzelt
değişikliği kaydet
iptal

gibi butonlarım mevcut açılışta yada butonların tıklanmasına göre bazı butonların enable olayı true bazılarınınki false olacak tüm bunları herbir butonun altına yazmaktansa tekbir procedure altında yapılacakları toplamak istiyorum.
Kaydet ile değişikliği kaydet arasında ki fark ne?

Bunları vt nin moduna göre ayarlayabilirsin.
işte Edit modda ise Kaydet vazgeç active olsun yeni olmasın gibi.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen dtgb »

Aslında kaydet ile değkaydet isleminin aynı olması doğru olan yol ,
fakat bazen yeni kayıt işlemlerinde default olarak eklenmesini istediğiniz değerler olabiliyor
bu durumda iki ayrı kaydet islemi gerekiyor değkaydet isleminde hesaplama yapmak durumundaydım.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen conari »

dtgb yazdı:fakat bazen yeni kayıt işlemlerinde default olarak eklenmesini istediğiniz değerler olabiliyor
default değerleri vt den ayarlayabilirsiniz.

Kod: Tümünü seç

create table stok(
[KOD] [varchar](8) NOT NULL,
[ISKONTO1] [smallint]  DEFAULT (0)
...................)
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Butonun tıklandığını nereden anlayabiliriz

Mesaj gönderen csunguray »

Hemen bütün örneklerde Caption lar veya Name ler karşılaştırılmış. Halbuki doğrudan

Kod: Tümünü seç

if Sender=BtnKaydet then
begin
  bla bla
  bla bla
  if ADOQuery1.State = dsEdit then bla bla;
  if ADOQuery1.State = dsInsert then bla bla;
end;
deme şansımız var.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Cevapla