Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - MDIChild --> HauptChild herausfinden
AndreM - Mi 24.03.04 19:36
Titel: MDIChild --> HauptChild herausfinden
Moin Community,
ich habe eine kurze Fragen zum Thema MDIChidls. Und zwar rufe ich in meiner Anwendung über ein Chield ein weiteres Chield auf und möchte nun auf das jeweilige HauptChild zugreifen können. Gibt es da irgendeine Möglichkeit das zu realisieren?
Zur Besseren erläuterung habe ich noch folgendes Beispiel.
Ich habe also 2 Chields (Chield1 und Chield2). Auf beiden Chields befindet sich jeweils ein Editfeld. Chield1 wird über einen Button, der sich auf den MainForm befindet, aufgerufen. Chield2 rufe ich dann über einen weiteren Button, der sich auf Chield1 befindet auf. Jetzt möchte ich über einen Button die beiden Editfelder miteinander vergleichen, und müßte somit wissen von welchem Chield genau das jeweilige Chield geöffnet worden ist, da es ja gut sein kann das der Anwender zunächst 2 mal Chield1 geöffnet hat.
Das eine Verbindung zwischen den einzelnen Chields besteht, habe ich bereits herausgefunden, denn wenn ich das HauptChield schließen, werden alle darüber geöffneten Chields ebenfalls geschlossen.
Hoffe mal, ihr habt einigermaßen verstanden, was ich meine! :lol:
Moderiert von
tommie-lie: Topic verschoben
tmc2004 - Mi 24.03.04 20:01
Bringt es dich weiter wenn sich ein child nur einmal öffnet und wenn es geöfner ist in den vordergrund kommt?
Gruß
tmc
MSCH - Mi 24.03.04 21:34
Titel: Re: MDIChild --> HauptChild herausfinden
AndreM hat folgendes geschrieben: |
Moin Community,
Das eine Verbindung zwischen den einzelnen Chields besteht, habe ich bereits herausgefunden, denn wenn ich das HauptChield schließen, werden alle darüber geöffneten Chields ebenfalls geschlossen.
|
Das hat nichts mit Verbindungen zu tun, sondern is MDI-Typisch - Hauptanwendung beendet MDI-Child (s) closed.
Dein Problem ist logischer Natur - nicht programmtechnischer. Auswertungen von Eingaben unterschiedlicher Quellen erfolgen immer dort, wo die Eingabequellen erstellt wurden.
Sprich die Auswertung sollte nicht wie in deinem Beispiel im MDI-Child sondern in der MDIApp erfolgen, nur diese kennt die Fenster (Validierung).
kurz und simple (Pseudocode)
MDIApp.Create
begin
MDIChild1:= TMDIChild1.Create
MDIChild2:= TMDIChild1.Create
Ergebniss:= MDIChild1.Eingabe + MDIChild2.Eingabe
MDIChild1.Free;
MDIChild2.Free;
end
grez
msch
SvenAbeln - Do 25.03.04 18:10
Hallo,
Zitat: |
Dein Problem ist logischer Natur - nicht programmtechnischer. Auswertungen von Eingaben unterschiedlicher Quellen erfolgen immer dort, wo die Eingabequellen erstellt wurden.
Sprich die Auswertung sollte nicht wie in deinem Beispiel im MDI-Child sondern in der MDIApp erfolgen, nur diese kennt die Fenster (Validierung). |
Das funktioniert in diesem Fall aber nicht, da Child2 von Child1 erzeugt wird und auch mit nur diesem zusammen arbeiten
soll. Vor allem wird es Problematisch wenn der Benutzer mehrere Fenster von TChild1 öffnet.
Wenn Delphi keine Verbindung zwischen den Fenstern anbietet schreib sie dir doch einfach selber.
Also neue Eigenschaft in TChild2
und nach dem Erzeugen von Child2 wird sie auf Child1 gesetzt, dieses kann Child1 im ButtonClick erledigen.
z.B.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Type TChild2 = class(TForm); .... public MainChild : TChild1; ....
TChild1.ButtonClick(Sender :TObject); var Child2 : TChild2; begin Child2:=TChild2.Create(Application); Child2.MainChild:=Self; end; |
Nun kannst du jederzeit von Child2 aus auf das aufrufende Child1 zugreifen.
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!