iki prodecure Hakkında yardım ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

iki prodecure Hakkında yardım ?

Mesaj gönderen yazboz »

selamunaleyküm


procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('deneme');
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
// yükarıdaki procedureyi burada çalıştırmak istedim.

Button1Click; // bu işlem Hata veriyor.

Button2.OnClick:=Button1Click; //bu işlem 2 tıklama sonuçunda çalışıyor.
hatamı nasıl düzeltebilirim ?


end;

NOT:
Fakat button2 için events > Onclick (Button1Click) yolu ile değil.
kod yazarak
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
birinci yolunuzda verdiği hatayı yazmamışsınız. ama büyük ihtimalle parametreyi vermedin diye hata veriyordur.
şöyle yap.

Kod: Tümünü seç

button1click(sender);
ikinci yolun ise ilk tıklamanda button2nin clicki ni button1in clickine atıyorsun. yani button2 ye tıkladığında object insp. den button2nin onclick inie button1in onclickini atıyorsun. 2. tıklamanda button2 ye button1click atandığı için artık o çalışıyor.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: iki prodecure Hakkında yardım ?

Mesaj gönderen sabanakman »

yazboz yazdı:// yükarıdaki procedureyi burada çalıştırmak istedim.
Button1Click; // bu işlem Hata veriyor.
Button1.Click; kodu da kullanılabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

Mesaj gönderen yazboz »

çok teşekkürler sayın aslangeri ve sayın sabanakman

fakat sayın sabanakman

Kod: Tümünü seç

button1.click  denemiştim çalışmamıştı
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

Mesaj gönderen yazboz »

gene aynı yükardaki önek için

button1click(button1); // yazdığımda çalışıyor

button1click(button2); // yazdığımda da çalışıyor

pardon. bunu mantıkını kısa olarak açıklarsanız çok sevinirim. yani anlamak istediğim şu. her hangi bir procedure yi ismile çağırabiliriz, fakat
1'ci procedure nin ismi (Button1Click) değilmi ? yoksa sadece (button1)i ?




procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('deneme');
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
button1click(button1); // yazdığımda çalışıyor
// veya
button1click(button2); // yazdığımda da çalışıyor

//veya
button1click(Label1); //Form1 de mevcut herhangi bir nesnenin adını yazdığımda da çalışıyor. işte bu mantıkı kavrıyamadım ?

end;

veya

procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
s:='12';
button1click(s); // Incompatible types: 'TObject' and 'String' tip tamamlanmamış ?
( çok kısa anlatırsanız çok sevinirim. bu gibi mantıkları anlamadan delphide ilerlemek yanlış olur diye düşünüyorum )
end;


saygılarımla
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Son mesajınızda, tam olarak ne sorduğunuzu anlayamadım. Sender parametresini ne gönderdiğiniz yazdığınız kodlara göre önemli değil. Çünkü Sender parametresi sizin aynı tipten tüm eventları bir prosedürde toplamanız için tasarlanmıştır. Yani iki buttonun onClick eventını da aynı prosedüre yöneldirin ve aşağıdaki gibi kontrol edin:

Kod: Tümünü seç

if Sender is TButton1 then
  ShowMessage('Button1''e tıklandı')
else if Sender is TButton2 then
  ShowMessage('Button2''e tıklandı');
gibi. Eğer Delphiyi derinlerine kadar öğrenmek istiyorsan nesne tabanlı programlamayı ve bileşen yazımını öğrenmelisin. Bileşen yazmasan bile, Delphi'nin nasıl çalıştığını öğrenirsin ve kafanda soru işaretleri kalmaz.
En son fatihtolgaata tarafından 25 Tem 2007 08:45 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

Mesaj gönderen yazboz »

teşekkürler sayın fatihtolgaata
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

yazboz yazdı:button1click(button1); // yazdığımda çalışıyor

button1click(button2); // yazdığımda da çalışıyor
not:button1click(button1); ile button1.click; aynı işlevi görür.
yazboz yazdı:button1.click denemiştim çalışmamıştı
eğer button1click(button1); çalışıyorsa button1.click; kodunun çalışmaması mümkün değil. Bu noktada bir hatan var.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

Mesaj gönderen yazboz »

Kod: Tümünü seç

button1click(button1); ile button1.click; aynı işlevi görür. .
sayın sabanakman merhaba

benim ilk denediğim işlem ( button1.click; ) 'idi. fakat çalışmadığı için başka yol aramaya başladım. fakat çok ilginç az önce denedim evet doğru bu formul ( button1.click; ) ile çalışıyor ve mantıkı olan bir formuldur. yani bu gibi işlemde herkesin ilk aklına gelen formuldur.

Ve inanın bana yemin etmeme gerek yok acaba neden 2 gün önce
çalışmadı. acaba bilgisayardamı bir sorun var :?: yoksa delphi nin kurulumunda mı bir hata var :?: yada kaspersky internet güvenliği sorun çıkartıyor. çünki delphide çalışırken kaspersky pro. kapatıyorum.

sayın sabanakman çok sağolun helal olsun.
çünki bu gibi basit bir konu olsa bile yanlış yoldan geri dönmek gerekir.
genede sizin ve sağolsun değer arkadaşalar sayasında bu konudan 5-6
konu öğrenmiş olduk

saygılarımla
delphi_programmer
Üye
Mesajlar: 53
Kayıt: 01 Haz 2005 11:47

Mesaj gönderen delphi_programmer »

yazboz yazdı:

Kod: Tümünü seç

button1click(button1); ile button1.click; aynı işlevi görür. .
sayın sabanakman merhaba

benim ilk denediğim işlem ( button1.click; ) 'idi. fakat çalışmadığı için başka yol aramaya başladım. fakat çok ilginç az önce denedim evet doğru bu formul ( button1.click; ) ile çalışıyor ve mantıkı olan bir formuldur. yani bu gibi işlemde herkesin ilk aklına gelen formuldur.

Ve inanın bana yemin etmeme gerek yok acaba neden 2 gün önce
çalışmadı. acaba bilgisayardamı bir sorun var :?: yoksa delphi nin kurulumunda mı bir hata var :?: yada kaspersky internet güvenliği sorun çıkartıyor. çünki delphide çalışırken kaspersky pro. kapatıyorum.

sayın sabanakman çok sağolun helal olsun.
çünki bu gibi basit bir konu olsa bile yanlış yoldan geri dönmek gerekir.
genede sizin ve sağolsun değer arkadaşalar sayasında bu konudan 5-6
konu öğrenmiş olduk

saygılarımla

Aynı koşullarda aynı kondisyonlar aynı sonucu döndürür.
Daha önce çalışmayan bir kod, şu anda çalışıyorsa bir sorun vardır :)
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Hata başka bir sebeptendir. Mesela tahminime göre en büyük ihtimali bir üst satırda unutulan bir noktalı virgül karakteri size bu satırda hata varmış gibi gösterebilir. Başka sebepleri de olabilir ama hatayı sanırım başka bir noktada yapmış olmalısınız.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla