![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: C-Api
Procedure ButtonClick(Sender: TObject) erneut aufrufen
Hallo Zusammen,
Damit ich meinen Code verkürzen kann, würde ich gerne eine ButtonClick(Sender: TObject) Procedure bei einem anderen Ereignis ausführen. Ich mache einen Doppelklick in ein StringGrid, schreibe dann einen Wert aus dem StringGrid in ein Feld (das wird bei der ButtonClick(Sender: TObject) Procedure heraungezogen) und möchte dann erst die ButtonClick(Sender: TObject) Procedure ausführen. Geht das? Gruß Ykcim Sorry, das ist mir in ein falsches Forum gerutsch! |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Eine Eventbehandlungsroutine ist ja eine normale Methode, diese kannst man natürlich wie jede andere aufrufen
|
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
du schreibst deinen wert in das feld und rufst dann
Delphi-Quellcode:
auf. :gruebel:
button.click(stringgrid);
|
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Super, das klappt ja wirklich....!
Ich hatte immer FormUnit.Procedure() versucht, aber damit kam ich nicht weiter. Aber jetzt klappt es Danke! |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Zitat:
es gibt da sogar 3 einfache Varianten:
Delphi-Quellcode:
statt nil könnte man auch Button1, Sender oder sonstein Objekt verwenden ... kommt darauf an, ob man kennzeichnen will von wo aus die Ereignisprozedur aufgerufen wurde und ob/wie man den Sender in der Ereignisprozedur ausgewertet wird.
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; procedure TForm1.Button1Click(Sender: TObject); begin Button1.Click; Button1.OnClick(nil); Button1Click(nil); end; |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Guten Morgen,
vielen Dank für die ausführliche Antwort. Da habe ich mal wieder einiges gelernt... :-D |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Gelernt schon, aber etwas nicht sehr schönes. Lager den Code von dem Ereignis der Schaltfläche in eine separate Prozedur aus und rufe diese bei Bedarf auf. So kann man auch die Logik und die Daten von der Oberfläche trennen.
|
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
och, bei "einfachen" Projecten reichte es doch schon, wenn man Button1 'nen hübschen Namen verpaßt
und Button1Click kann man notfalls auch 'nen eigenen und aussagekräftigen Namen geben. :angel2: |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
nja...soweit ich weis geht das auch mit "SELF"
wenn man z.B. einen Button anklickt und dabei gleichzeigtig per Programm einen zweiten Button "anklicken" will sieht das dann so aus: procedure TForm1.Button2Click(Sender: TObject); begin Button1Click(Self); end; Damti wird die procedure von Button1 aufgerufen, wenn der zweite Button angeklickt wird... |
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Sender weist auf die Form, was hier imho wenig Sinn macht. Ein sinnvoller Wert wäre eher Button2.
|
Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
Zitat:
- Entweder man übergibt die Instanz der entsprechenden Komponente > Button1Click(Button1) da macht man meißt nichts falsch, da es so aussieht, als wenn das Ereignis vom Button selbst kommt - oder man übergibt ein anderes Control ... wenn man z.B. möchte, daß es so aussieht, daß der Aufruf von diesem Control gekommen sei - oder einfach NIL ... mach ich oftmals gern, wenn ich kennzeichnen möchte, daß der Aufruf intern abgesetzt wurde so kann man z.B. in der Ereignisprozedur den Aufruf unterschiedlich behandeln ... halt jenachdem wer die Prozedur aufrief. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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 by Thomas Breitkreuz