![]() |
ButtonClick Prozedur in eigene Methode definieren
Hallo,
ist es möglich, in eine eigene definierte Funktion, einen ButtonClick Event zu definieren? Vielen Dank |
AW: ButtonClick Prozedur in eigene Methode definieren
Was hast du vor?
So wie du das geschrieben hast macht der Satz nämlich keinen Sinn. Daher schätze ich bist du Anfänger (?), hast irgendwas vor und versuchst etwas zu tun was nicht geht bzw. keinen Sinn macht. Von daher: Was ist dein Ziel? |
AW: ButtonClick Prozedur in eigene Methode definieren
Was meinst Du damit? Möchtest du Deine eigene Methode durch einen ButtonClick auslösen lassen?
Delphi-Quellcode:
Sherlock
procedure TForm1.MeineMethode;
begin ShowMessage('Tadaa'); end; procedure TForm1.Button1Click(Sender: TObject); begin MeineMethode; end; |
AW: ButtonClick Prozedur in eigene Methode definieren
Ich brauche eine Funktion x. In dieser Funktion sind die ganzen Button Click Ereignisse und der dazugehörige Code.
Ich möchte |
AW: ButtonClick Prozedur in eigene Methode definieren
Du kannst die gleiche Ereignisbehandlungsmethode mehreren OnClicks zuweisen. Das geht entweder über den Objektinspektor oder eben im Code zur Laufzeit:
Delphi-Quellcode:
Wichtig ist dabei eigentlich nur, daß im obigen Beispiel MultiClicker die korrekte Signatur hat also eine procedure ist und als Parameter Sender:TObject hat. Innen drin sollte sie natürlich unterschiedlich auf die verschiedenen Buttons reagieren, aber dafür ist ja der Sender da.
...
Button1.OnClick := MultiClicker; Button2.OnClick := MultiClicker; ... Sherlock |
AW: ButtonClick Prozedur in eigene Methode definieren
Was meinst Du?
Möchtest Du aus einer Prozedur heraus einen ButtonClick auslösen? Dann rufe in der Prozedur die Routine auf, die Du dem ButtonClick-Ereignis zugeordnet hast. Oder willst Du innerhalb einer Prozedure einem Button eine Routine zuweisen, die er beim Click ausführen soll? Auch das geht.
Delphi-Quellcode:
procedure TForm1.button1Click(Sender: TObject);
begin ShowMessage('Button1Click'); end; procedure TForm1.irgendwas; begin ... button1Click(Sender); // oder button1Click(Nil); // oder button1Click(Self); ... end; procedure TForm1.IrgendwasZumClickenClick(Sender: TObject); begin ShowMessage('IrgendwasZumClickenClick'); end; procedure TForm1.irgendwas; begin ... Button1.OnClick := IrgendwasZumClickenClick; ... end; procedure TForm1.IrgendwasZumClickenFuerVieleButtonsClick(Sender: TObject); begin if Sender is TButton then begin if Sender = Button1 then ShowMessage(Format('Button.Name = %s',[TButton(Sender).Name])) else if Sender = Button2 then FormatC else if Sender = Button3 then ...; end; end; procedure TForm1.irgendwas; begin ... Button1.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button2.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button3.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button4.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button5.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button6.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; Button7.OnClick := IrgendwasZumClickenFuerVieleButtonsClick; ... end; |
AW: ButtonClick Prozedur in eigene Methode definieren
Willst du innerhalb einer Prozedur/Funktion ein Ereignis (onClick, o.ä.) deklarieren und auch quasi auch dort handeln?
Code:
Denke nicht das soetwas möglich ist. Vielleicht weiß da ja jemand was :lol:
procedure IchBinEineProzedur;
procedure btnTest.onButtonClick; begin macheEtwas(); end; begin if btnTest.Clicked then btnTest.onButtonClick; end; |
AW: ButtonClick Prozedur in eigene Methode definieren
Hallo,
Zitat:
Definiere dir für jeden Button eine eigene Methode, Bsp: Du hast 2 Buttons. BtnNeu, BtnAendern Das ergibt 2 Methoden:
Delphi-Quellcode:
Und jetzt kannst du auch den den Button "Neu" im Code klicken lassen (naja, so in etwa),
procedure TForm1.ArbeiteNeuAb;
begin end; procedure TForm1.ArbeiteAendernAb; begin end; Und in die BtnNeuClick kommt der Aufruf: procedure TForm1.BtnNeuClick(); begin ArbeiteNeuAb; end; indem Du in der Procedure XYZ einfach ArbeiteNeuAb aufrufst. |
AW: ButtonClick Prozedur in eigene Methode definieren
Ich meine das so.
1) Kann man die Prozedur Button1Click und Button2Click auch innerhalb der addiere Funktion definieren. Auch, wenn es an dieser Stelle keinen Sinn macht, würde es mich interessieren, ob sowas überhaupt möglich ist? 2) Falls, das nicht möglich ist, kann man wenigstens, die Prozedur Button1Click und Button2Click in der addiere Funktion aufrufen? Anstatt das hier:
Code:
Sowas hier(Compiler gibt hier Fehler aus)
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage('Message 1'); end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage('Message 2'); end; function TForm1.addiere(z1,z2:Integer): Integer; begin result:=z1+z2; end;
Code:
function TForm1.addiere(z1,z2:Integer): Integer;
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Message 1'); end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage('Message 2'); end; begin result:=z1+z2; end; |
AW: ButtonClick Prozedur in eigene Methode definieren
Du kannst lokale Proceduren/Funktionen definieren, die haben aber auch nur eine lokale Sichtbarkeit und du kannst diese somit auch nur lokal verwenden.
Delphi-Quellcode:
procedure MyProcedure();
// lokale procedure/function procedure MyLocalProc(); begin end; function MyLocalFunc() : Integer; begin Result := 10; end; var r : Integer; begin MyLocalProc(); r := MyLocalFunc(); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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