Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Procedure ButtonClick(Sender: TObject) erneut aufrufen (https://www.delphipraxis.net/128426-procedure-buttonclick-sender-tobject-erneut-aufrufen.html)

Ykcim 29. Jan 2009 16:18

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!

mkinzler 29. Jan 2009 16:24

Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
 
Eine Eventbehandlungsroutine ist ja eine normale Methode, diese kannst man natürlich wie jede andere aufrufen

craash 29. Jan 2009 16:25

Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
 
du schreibst deinen wert in das feld und rufst dann

Delphi-Quellcode:
button.click(stringgrid);
auf. :gruebel:

Ykcim 29. Jan 2009 16:51

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!

himitsu 29. Jan 2009 16:56

Re: Procedure ButtonClick(Sender: TObject) erneut aufrufen
 
Zitat:

Zitat von Ykcim
Ich hatte immer FormUnit.Procedure() versucht, aber damit kam ich nicht weiter.

kann ich garnich verstehen?

es gibt da sogar 3 einfache Varianten:
Delphi-Quellcode:
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;
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.

Ykcim 30. Jan 2009 08:10

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

Luckie 30. Jan 2009 09:04

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.

himitsu 30. Jan 2009 09:26

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:

Schorschi_jg 8. Feb 2009 20:03

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...

mkinzler 8. Feb 2009 20:06

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz