![]() |
Einen Button Click Event von anderem Formular aufrufen?
Guten Abend,
mein Problem ist folgendes: Ich habe ein Programm mit 2 Formularen. Auf dem ersten ist ein Button der Daten verarbeitet, wenn er angeklickt wird. Soweit funktioniert es. Jetzt habe ich aber auf dem 2. Formular eine Situation, in der ich gerne das Klicken auf oben genannten Button nutzen würde. Ist einfach, dachte ich mir: Form1.button.click; Leider funktioniert das aber nicht. Es gibt keine Fehlermeldung oder so. Das Click Ereignis vom Button wird schlicht nicht ausgeführt. Wenn ich aber per Hand bzw. Maus auf den Button klicke, funktioniert es. Was läuft da schief? Ich habe das onClick Event eines Buttons schon öfter fremdbenutzt. Allerdings immer vom gleichen Formular aus. Da hatte ich nie Probleme. Was also jetzt? Gruß, Andreas |
AW: Einen Button Click Event von anderem Formular aufrufen?
Evtl. so:
Delphi-Quellcode:
Form2.Button1Click(nil);
|
AW: Einen Button Click Event von anderem Formular aufrufen?
Das macht man nicht. Lager den Code von dem Button-Klick Ereignis in eine öffentliche Methode aus, die du dann von dem anderen Formular aus aufrufen kannst. Und noch besser wäre es, wenn du den Code von der Oberfläche trennst, dann hast du solche Probleme erst gar nicht.
|
AW: Einen Button Click Event von anderem Formular aufrufen?
@popov
Leider tut sich auch da nichts... @Luckie Ich weiß das dies kein schöner Code ist. Ich hatte das auch so nicht geplant. Der Button interagiert mit anderen Controls auf dem Formular (Edits und Labels). Das zweite Formular kam später als nicht geplanter Zusatz, sonst hätte ich es direkt anders aufgebaut. Anstatt jetzt alles umzuschreiben, fänd ich ein Button.Click schlicht am einfachsten und - wenn es funktionieren würde - auch die Zeitsparendste Anpassung momentan. Deshalb ging meine Frage auch eher in die Richtung warum Delphi das nicht mag und wie man das "mal eben" umgehen könnte. Das dieser Code keinen Schönheitswettbewerb gewinnen wird, ist mir bewusst. |
AW: Einen Button Click Event von anderem Formular aufrufen?
Dann mach den Code zumindest zu einer öffentlichen Methode des Formulars, dann hast du immer noch Zugriff auf die Steuerelemente des Formulars.
|
AW: Einen Button Click Event von anderem Formular aufrufen?
Unabhängig dessen ob es schön ist oder nicht und man es macht oder nicht, so solle es funktionieren.
|
AW: Einen Button Click Event von anderem Formular aufrufen?
@Luckie
Ok, das ist ne Idee. Probiere ich morgen als erstes, danke :). Gibt es trotzdem nen Grund warum Delphi damit Probleme hat? Will es wenigstens nachvollziehen können... |
AW: Einen Button Click Event von anderem Formular aufrufen?
Formular2:
Delphi-Quellcode:
Formular1:
procedure TForm2.Button1Click(Sender: TObject);
begin ShowMessage('Test'); end;
Delphi-Quellcode:
Funktioniert.
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.Button1.Click; end; |
AW: Einen Button Click Event von anderem Formular aufrufen?
Kann es sein dass hinter der Variable Form1 gar nicht das Form liegt welches Du siehst ...
|
AW: Einen Button Click Event von anderem Formular aufrufen?
Zitat:
Und welche Daten sollen denn verarbeitet werden, also wo kommen die her? @Bummi: Ja ja, immer diese bösen globalen Variablen. :twisted: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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