iki prodecure Hakkında yardım ?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
iki prodecure Hakkında yardım ?
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
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
s.a.
birinci yolunuzda verdiği hatayı yazmamışsınız. ama büyük ihtimalle parametreyi vermedin diye hata veriyordur.
şöyle yap.
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.
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);
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
- 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 ?
Button1.Click; kodu da kullanılabilir.yazboz yazdı:// yükarıdaki procedureyi burada çalıştırmak istedim.
Button1Click; // bu işlem Hata veriyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
çok teşekkürler sayın aslangeri ve sayın sabanakman
fakat sayın sabanakman
fakat sayın sabanakman
Kod: Tümünü seç
button1.click denemiştim çalışmamıştı
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
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
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
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:
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.
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ı');
En son fatihtolgaata tarafından 25 Tem 2007 08:45 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
not:button1click(button1); ile button1.click; aynı işlevi görür.yazboz yazdı:button1click(button1); // yazdığımda çalışıyor
button1click(button2); // yazdığımda da çalışıyor
eğer button1click(button1); çalışıyorsa button1.click; kodunun çalışmaması mümkün değil. Bu noktada bir hatan var.yazboz yazdı:button1.click denemiştim çalışmamıştı
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kod: Tümünü seç
button1click(button1); ile button1.click; aynı işlevi görür. .
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


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
-
- Üye
- Mesajlar: 53
- Kayıt: 01 Haz 2005 11:47
yazboz yazdı:sayın sabanakman merhabaKod: Tümünü seç
button1click(button1); ile button1.click; aynı işlevi görür. .
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 varyoksa 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

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
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. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .