AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation Mutter - Tochterformular

Ein Thema von oghma · begonnen am 12. Sep 2007 · letzter Beitrag vom 12. Sep 2007
Antwort Antwort
oghma

Registriert seit: 8. Aug 2007
Ort: Wien
15 Beiträge
 
Delphi 2007 Professional
 
#1

Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 16:06
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 16:13
Die schönste Variante finde ich per Event(Callback):
Delphi-Quellcode:
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;
in Form1 sieht es dann so aus:
Delphi-Quellcode:
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;
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 16:14
du musst die mutter in den uses im implementation-Bereich einfügen
Delphi-Quellcode:
...
implementation

uses
  Mutter;

{$R *.dfm}
...
und dann wie gewohnt
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
oghma

Registriert seit: 8. Aug 2007
Ort: Wien
15 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 16:19
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
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 17:02
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Kommunikation Mutter - Tochterformular

  Alt 12. Sep 2007, 17:06
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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:14 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