AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Einen Button Click Event von anderem Formular aufrufen?
Thema durchsuchen
Ansicht
Themen-Optionen

Einen Button Click Event von anderem Formular aufrufen?

Ein Thema von Satyr · begonnen am 15. Mär 2012 · letzter Beitrag vom 16. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#1

Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 00:32
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
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 00:43
Evtl. so:

  Form2.Button1Click(nil);
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 00:56
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 01:04
@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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 01:10
Dann mach den Code zumindest zu einer öffentlichen Methode des Formulars, dann hast du immer noch Zugriff auf die Steuerelemente des Formulars.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 01:12
Unabhängig dessen ob es schön ist oder nicht und man es macht oder nicht, so solle es funktionieren.
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 01:15
@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...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 01:21
Formular2:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  ShowMessage('Test');
end;
Formular1:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Button1.Click;
end;
Funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 07:10
Kann es sein dass hinter der Variable Form1 gar nicht das Form liegt welches Du siehst ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

AW: Einen Button Click Event von anderem Formular aufrufen?

  Alt 15. Mär 2012, 09:13
Zitat:
Form2.Button1Click(nil);
Wenn Form2 (sehr schöner Name) nicht existiert (keine Instanz davon), dann kann man diese Funktion nicht aufrufen.

Und welche Daten sollen denn verarbeitet werden, also wo kommen die her?

@Bummi: Ja ja, immer diese bösen globalen Variablen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:53 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