![]() |
Kommunikation Mutter - Tochterformular
Hallo!
Ich habe 2 Formulare. Eines wird immer gezeigt, eines wird bei Bedarf eingeblendet und versteckt (mittels schow und hide). Die Kommunikation Mutter->Tochter ist klar. Ich hab Unit2 in den uses und somit kann ich einfach über Form2.Funktion die Funktionen starten. Jetzt würde ich gerne beim Tochterformular im OnHide-Event eine Funktion im Mutterformular aufrufen. Wie mach ich das? Danke, Oghma |
Re: Kommunikation Mutter - Tochterformular
Die schönste Variante finde ich per Event(Callback):
Delphi-Quellcode:
in Form1 sieht es dann so aus:
TForm2 = class(TForm)
[...] public ClbOnHide: TNotifyEvent; end; [...] procedure TForm2.FormHide(Sender: TObject); begin if Assigned(ClbOnHide) then //Entspricht: if (ClbOnHide <> nil) then ClbOnHide(Self); end;
Delphi-Quellcode:
Ich finde diese Variante so schön weil es keine Querverweise bei Units gibts und auch die Objectorientierung gewahrt bleibt da nicht auf globale Variablen zugegriffen werden muss.
TForm1 = class(TForm)
[...] private fYourSubForm: TForm2; procedure OnSubFormHideClb(Sender: TObject); end; [...] procedure TForm1.OnSubFormHideClb(Sender: TObject); begin ShowMessage('Form2 wurde ausgeblendet'); end; [...] procedure TForm1.FormCreate(Sender:TObject); begin fYourSubForm := TForm2.Create(Self); fYourSubForm.ClbOnHide := OnSubFormHideClb; end; |
Re: Kommunikation Mutter - Tochterformular
du musst die mutter in den uses im implementation-Bereich einfügen
Delphi-Quellcode:
und dann wie gewohnt
...
implementation uses Mutter; {$R *.dfm} ... |
Re: Kommunikation Mutter - Tochterformular
Hallo!
Wahnsinn, ihr seid schnell! Dickes Lob. Ich hab es jetzt mal mittels uses im implementation Teil gemacht. Aber das CallBack werd ich mir auch noch genauer anschauen. Danke, Oghma |
Re: Kommunikation Mutter - Tochterformular
Du kannst auch mit Windows-Messages arbeiten.
Dazu muss das Empfängerform einen Message-Handler (Message-Methode) implementieren. Dann kannst Du mit SendMessage und PostMessage das Form steuern. |
Re: Kommunikation Mutter - Tochterformular
wobei bei Messages auch das Problem besteht, dass wenn man vom Tochterformular zum Mutterformular was senden will, das Tochterformular das Mutterformular kennen muss. Natürlich greifen da viele auf die globale Variable Form1 und Form2 zu aber dann gibt es auch riesen probleme wenn man mehrere Instanzen vom Mutterformular hat weil das Tochterformular dann nicht weiß zu welchem Mutterformular es gehört.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 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