![]() |
Mehrere Ereignisse zusammenfassen
Hallo zusammen,
wie kann ich mehrere Ereignisse zusammenfassen, die die gleiche Prozedur auslösen sollen? Beispiel:
Delphi-Quellcode:
So funktioniert es natürlich leider nicht.
procedure TForm1.Button1.Click, TForm2.Button2.Click;
begin Close; end; Aber irgendwie ist das doch bestimmt machbar oder? Freue mich schon auf Eure Hilfe. |
AW: Mehrere Ereignisse zusammenfassen
Um ein EventHandler zu schreiben der für mehrere Buttons gilt, sollte der so aussehen:
Delphi-Quellcode:
Und nun allen Buttons im Objektinspektor beim OnClick Event diesen EventHandler zuweisen.
procedure TForm1.AlleButtonClick(Sender: TObject);
begin // Some Code end; |
AW: Mehrere Ereignisse zusammenfassen
Und wenn die Form modal angezeigt wird (
![]() |
AW: Mehrere Ereignisse zusammenfassen
Ich schätze mal, dass das ein Formular mit OK- und Abbrechen-Button ist, oder?
Da würde sich ein ShowModal mit ModalResult doch anbieten. Edit: mist, der Rote Kasten wurde nicht angezeigt :P |
AW: Mehrere Ereignisse zusammenfassen
Oha, das ging ja schnell.
Vielen Dank, das klinkt einleuchtend, hätte ich auch von selbst drauf können. xD Ja, also hier speziell geht es jetzt um das Hauptformular, welches eine Benutzeranmeldung ist. Aber ich werde das wohl noch in einigen anderen Fällen anwenden. Was genau ist ModalResult? Ein Close für eine modale Form? |
AW: Mehrere Ereignisse zusammenfassen
Doku
![]() |
AW: Mehrere Ereignisse zusammenfassen
Hm ok.
Das bringt mich dann also z.B. weiter, wenn ich wissen will, wie die Form geschlossen wurde und ich brauche keine extra Prozedur fürs Schließen. Aber ist es rein programmiertechnisch nicht schöner, wenn man im Code sieht, was durch den Klick passiert? Also in Form einer Prozedur? |
AW: Mehrere Ereignisse zusammenfassen
Vielleicht noch soviel: Events sind Zeiger auf Methoden (also
Delphi-Quellcode:
). Den kannst Du zuweisen, was Du willst, solange die Signatur (also die Parameterliste) stimmt und es sich -wen wunderts- um eine Methode handelt.
Procedure of Object
|
AW: Mehrere Ereignisse zusammenfassen
Kommt drauf an?
Wenn ich weiß, daß ein OK- und ein Abbrechen-Button ein Fenster schließen und jeweil einen bestimmten Status zurückliefern, bzw. daß ein Schließen-Button das Fenster schließt, dann muß ich nicht mehr in den Code gucken, da mir "bekannt" ist, was im Property "ModalResult" dieser Knöpfe steht und was Diese damit machen. :stupid: Bei deinem Code würde ich mich da viel mehr fragen: - Was sind eigentlich Button1 und Button2 und was machen die? (an deren Namen erkennt man das ja nicht wirklich) - Warum machen zwei Button, auf der selben Form, das Gleiche? (hatte erst übersehn, daß dort TForm1 und TForm2 steht) |
AW: Mehrere Ereignisse zusammenfassen
Ok, dass ich das weiß, das ist schon richtig. xD
Aber was ist, wenn man ein Projekt zum Beispiel an eine andere Person übergibt oder man länger ausfällt und ein Kollege übernehmen muss oder sowas. Oder macht sowas dann die Erfahrung, dass er sich denkt "Oh, im EventHandler ist nichts zugewiesen, dann muss der Button ja ein ModalResult liefern."? Da habe ich mich vertan, die sind tatsächlich in der gleichen Form und Button1 und 2 habe ich sie nur hier im Beispiel genannt. Es gibt zum Beispiel einen normalen Button auf der Form, der das Programm schließt. Außerdem habe ich eine MenuBar, wo man auch die Möglichkeit hat, das Programm zu schließen und das Drücken von ESC führt auch dazu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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-2025 by Thomas Breitkreuz