![]() |
Fertige Procedure über Button ausführen?
Hallo Leute habe da mal wieder ein kleines dummes Problem.
Ich habe ein button, mit einem onclick ereignis. Nun möchte ich über ein anderen Button die OnCliclick procedure ausführen. Wie mache ich das? Mit dem Namen des Buttons geht es nicht. Z.B Name = Ok_btn und ptocedure ausführen mit:
Delphi-Quellcode:
Ok_btn;
|
Re: Procedure Problem!
Delphi-Quellcode:
ok_btnClick(nil);
|
Re: Procedure Problem!
Thanx :cheers:
|
Re: Procedure Problem!
Warum nil und nicht ok_btnClick(Self)?
|
Re: Procedure Problem!
Warum Self und nicht nil? :P
Ich gehe mal davon aus, dass er, da er nicht mal wusste, wie es geht, auch nicht auf den Sender überprüft. |
Re: Procedure Problem!
Ok, das ist ein Argument!
8) |
Re: Procedure Problem!
Und wenn nicht nil dann am besten gleich Ok_btn weil es ja so aussehen soll als ob der Ok_btn geklickt wurde ;-)
@thiagojonas: kannst du dem Beitrag bitte einen aussagekräftigen Titel geben? :) |
Re: Procedure Problem!
Hmmmm, diesem Ansatz kann ich nicht folgen.
Es hat in jedem Fall den selben Effekt, als wenn der originale Button betätigt wurde. Als Sender sollte aber der tatsächlich Aufrufende mitgegeben werden - vielleicht braucht man diese Information später doch noch einmal... |
Re: Procedure Problem!
Hallo,
für so eine Anforderung schreibe ich immer eine separate Prozedur, die halt nicht OnButton1Click heisst, sondern im Namen die Funktion auch beschreibt.
Delphi-Quellcode:
Beide OnClick-Methoden (oder was auch immer)
procedure TForm1.DoSomeThing;
begin bla ... end; rufen dann die DoSomeThing methode auf.
Delphi-Quellcode:
procedure TForm1.Button1OnClick; // oh Gott Button 1 ???
begin DoSomeThing; end; procedure TForm1.Button2OnClick; begin DoSomeThing; end; Heiko |
Re: Procedure Problem!
Auch wenn es im Augenblick vielleicht etwas übertrieben erscheint,
besser ist das! :thumb: |
Re: Procedure Problem!
Zitat:
PS: wenn du DoSomeThing auch soeinen Parameter gibst und DoSomeThing in einer Klasse definierst (halt irgendeine Art 'ner Klassen-Methode), dann kannst du DoSomeThing dem Button auch direkt zuweisen.
Delphi-Quellcode:
dank dem =nil im Parameter kann man DoSomeThing; auch weiterhin ohne Parameter direkt aufrufen.
T... = class(...)
public { Public-Deklarationen } procedure DoSomeThing(Sender: TObject = nil); end; // "..." kann auch etwas von TForm sein, muß es aber nicht Wichtig: die Sichtbarkeit der Methode muß public oder published sein und wird =nil weggelassen muß bei direktem Aufruf der Methode der Parameter angegeben werden |
Re: Fertige Procedure über Button ausführen?
Die Methode von hoika ist auf alle Fälle vorzuziehen. Es ist einfach sauberer, weil die Funktionalität von der Oberfläche getrennt wird. Ausserdem sieht man gleich was passiert, wenn man der Funktion einen aussagekräftigen Namen gibt.
|
Re: Fertige Procedure über Button ausführen?
Zitat:
(bei Definition in der Form, kann die Prozedur direkt über den OI zugewiesen werden und bei Definition an anderer Stelle, dann via QuellCode) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz