AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Button1Click(Sender:Tobject) direkt ohne Mausklick aufrufen

Button1Click(Sender:Tobject) direkt ohne Mausklick aufrufen

Ein Thema von Go2EITS · begonnen am 28. Jun 2006 · letzter Beitrag vom 28. Jun 2006
Antwort Antwort
Seite 1 von 3  1 23   
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

Button1Click(Sender:Tobject) direkt ohne Mausklick aufrufen

  Alt 28. Jun 2006, 11:42
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

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

  Alt 28. Jun 2006, 11:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

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

  Alt 28. Jun 2006, 11:45
Delphi-Quellcode:
procedure TForm1.FormCreate (Sender: TObject);
begin
  Button1Click(nil); //oder
  Button1Click(Form1); //oder
  Button1Click(Sender);
end;
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#4

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

  Alt 28. Jun 2006, 11:45
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;
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#5

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

  Alt 28. Jun 2006, 11:46
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

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

  Alt 28. Jun 2006, 11:50
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: 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.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#7

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

  Alt 28. Jun 2006, 11:54
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!
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#8

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

  Alt 28. Jun 2006, 12:06
Zitat von Mavarik:
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
Weil men keine Geschäftslogik in Ereignisbehandlungsroutinen haben sollte..
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

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

  Alt 28. Jun 2006, 12:21
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

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

  Alt 28. Jun 2006, 12:46
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.
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