Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Button1Click(Sender:Tobject) direkt ohne Mausklick aufrufen (https://www.delphipraxis.net/72299-button1click-sender-tobject-direkt-ohne-mausklick-aufrufen.html)

Go2EITS 28. Jun 2006 11:42


Button1Click(Sender:Tobject) direkt ohne Mausklick aufrufen
 
Hallo, DP!
Mit der objektiorientierten Programierung bin ich noch nicht fit.
Daher meine Frage:

Ich habe eine Procedur wie z. B.

Procedure TForm1.Button1Click(Sender: TObject);

Wie kann ich die Procedure OHNE Mausklick aufrufen.
(Natürlich ohne die unter Button1 befindlichen Aktionen wie z.B. in Form1.Create o. ä. nochmals einzufügen, was den Code unnötig aufblähen würde.)

Danke für Eure Mühe.

Muetze1 28. Jun 2006 11:44

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Das wäre der falsche Weg. Wenn, dann lege dir eine Methode an welche den Code vom Button1 Click enthält und rufe diese im Button1Click() auf und auch an der Stelle wo du nun diesen Code nochmals brauchst.

Eine Hilfe wie du dies Ereignis nochmal aufrufst ohne das das Event vorhanden ist, würde dir was falsches lehren.

Kroko1999 28. Jun 2006 11:45

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Delphi-Quellcode:
procedure TForm1.FormCreate (Sender: TObject);
begin
  Button1Click(nil); //oder
  Button1Click(Form1); //oder
  Button1Click(Sender);
end;

Mavarik 28. Jun 2006 11:45

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Zitat:

Zitat von Go2EITS
Hallo, DP!

Procedure TForm1.Button1Click(Sender: TObject);

Wie kann ich die Procedure OHNE Mausklick aufrufen.

Hallo!

hmmm....
Delphi-Quellcode:
begin
  Button1Click(NIL); // oder auch self
end;

Mavarik 28. Jun 2006 11:46

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Zitat:

Zitat von Muetze1
Eine Hilfe wie du dies Ereignis nochmal aufrufst ohne das das Event vorhanden ist, würde dir was falsches lehren.

Wieso das den?

Frank :gruebel:

Muetze1 28. Jun 2006 11:50

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Weil das nunmal Ereignis-Behandlungroutinen sind, welche ein Ereignis behandeln sollen. Wenn er das nun aber so aufrufen will, liegt kein Ereignis vor. Das macht zum einen den Quelltext unlesbarer und verwischt die Strukturen. Wenn, dann soll er das Eregnis erneut auslösen!

Siehe hier:
Delphi-Quellcode:
 Button1.Click;
Aber nicht Ereignisroutinen falsch missbrauchen.

Wenn ein Code an 2 Stellen gebraucht wird, dann baut man sich eine Methode oder Procedure und ruft diese dann von den 2 Stellen auf. Vor allem gewährt das eine grundlegenden Anfang für die ordentliche Trennung von Oberfläche und Funktion.

Go2EITS 28. Jun 2006 11:54

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Mensch, Ihr seit aber schnell!

Herzlichen Dank an Alle. Ich habe ja kaum meine Frage abgesendet und schon Antworten!

@Muetze1:
Sorry Muetze1, damit komme ich nicht klar. OOP noch nicht mein Ding.

@Kroko1999:
Genial, das ist es. Und so einfach. Super!

@Maravik:
Danke, bestens.

Mit Euch bin ich wieder ein Stück weiter..

CU! :lol:

mquadrat 28. Jun 2006 12:06

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Zitat:

Zitat von Mavarik
Zitat:

Zitat von Muetze1
Eine Hilfe wie du dies Ereignis nochmal aufrufst ohne das das Event vorhanden ist, würde dir was falsches lehren.

Wieso das den?
Frank :gruebel:

Weil men keine Geschäftslogik in Ereignisbehandlungsroutinen haben sollte..

SirThornberry 28. Jun 2006 12:21

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Also ich bin der Meinung das man Ereignisroutinen auch direkt aufrufen können soll.
Wenn meine Ereignisroutine wie folgt aussieht
Delphi-Quellcode:
procedure TMyObject.MyEventProc(Sender: TObject);
begin
  if (Sender = Object1) then
  begin

  end
  else if (Sender = Object2 then
  begin

  end;
end;
wäre es doch Irsinn und Performanceverschwendung eine weitere Methode zu schreiben die zu 100% genau so aussieht um den Aufruf in der Ereignisroutine nur weiterzuleiten.

Muetze1 28. Jun 2006 12:46

Re: Button1Click(Sender:Tobject) direkt ohne Mausklick aufru
 
Wieso Resourcenverschwendung? Es ist viel besser wiedervendbarer und leichter zu durchschauen.

Schon allein als ein Argument: Wenn du es in einer extra Methode implementierst ist es für spätere Anwendungen einfacher und viel leichter (bzw. wohl überhaupt möglich) diese virtuell zu markieren und somit bei Ableitungen überschreibbar zu machen. Ereignisbehandlungsroutinen dürfen bzw. sollten nicht virtuell oder dynamisch sein, afair.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Seite 1 von 3  1 23      

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