Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Aus welcher Form wurde das Modale Fenster geöffnet?
BrixxtoN - Di 21.09.10 13:06
Titel: Aus welcher Form wurde das Modale Fenster geöffnet?
Hallo,
ich habe drei Forms, aus zwei wird die dritte Form Modal geöffnet.
Form3 := TForm3.Create(self);
Form3.ShowModal;
Form3.Release;
Gibt es eine möglichkeit in der dritten Form bei FormCreate zu erfahren aus welcher Form die geöffnet wurde.
Oder muss ich da eine Variable an die dritte Form übergeben.
Tilman - Di 21.09.10 13:11
Statt "Self" "Sender" eintragen, dann kannst du OnCreate den Sender auswerten, er zeigt dann auf das aufrufende Formular. Du kannst z.B. die Eigenschaft "Tag" setzen. Du musst "Sender" dann allerdings noch nach TComponent casten.
BrixxtoN - Di 21.09.10 13:37
Habe das schon so probiert, aber das funktioniert nicht wie ich mir das gedacht habe.
Form1:
Form3 := TForm3.Create(Form1);
Form3.ShowModal;
Form3.Release;
Form3:
procedure TForm3.FormCreate(Sender: TObject);
begin
ShowMessage(Sender.UnitName);
end;
Bei ShowMessage wird noch immer der UnitName von Form3 zurück gegeben.
JoelH - Di 21.09.10 13:46
überlade doch einfach den Constructor der der Modalform und übergib einen eindeutigen Integerwert oder sowas.
Gausi - Di 21.09.10 13:57
BrixxtoN hat folgendes geschrieben : |
| Oder muss ich da eine Variable an die dritte Form übergeben. |
Das dürfte die einfachste Möglichkeit sein. ;-)
BrixxtoN - Di 21.09.10 14:01
Das denke ich mir auch.
Ich dachte nur es würde vieleicht eine einfachere möglichkeit geben z.B. über Sender, aber das hat irgend wie nicht funktioniert.
Das reicht mir alls Antwort, allen Danke für die Hilfe.
Tilman - Di 21.09.10 14:15
Habs grad mal ausprobiert, mit property will es unter Delphi 7 bei mir nicht funktionieren, warum auch immer, aber so geht es:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| type TForm2 = class(TForm) private public procedure ShowModalvar(v: String); end;
var Form2: TForm2;
implementation
{$R *.dfm}
procedure tForm2.ShowModalvar; begin self.Caption := v; self.ShowModal; end;
und
Form3 := TForm2.Create(self); form3.ShowModalvar('blabla'); Form3.Release; |
bummi - Di 21.09.10 15:57
Den Anzeigenden bekommst Du nicht aber den Owner ..
Delphi-Quelltext
1:
| if Assigned(Owner) then Showmessage(Owner.Unitname); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!