Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MDIParent / MDIChild Komunikation (https://www.delphipraxis.net/46826-mdiparent-mdichild-komunikation.html)

TUX_der_Pinguin 1. Jun 2005 09:07


MDIParent / MDIChild Komunikation
 
Hallo,

ich habe 2 Probleme mit meiner MDI Anwendung.

1. Wie kann ich von einem MDIChild auf eine Komponente des Parent-Forms
zugreifen.

2. Ein zuvor Maximiertes Form wird durch aufruf eines Childs verkleinert.


Zu 1:
In der MDI Anwendung wird ein MDIChild aufgerufen welches ein ListView
enthält, dort kann man via Popup ein neues MDIChild Aufrufen, dort
soll man Änderungen an den ListView einträgen machen können, es soll eine
Art "Eigenschaft-Dialog" werden.

Programm -> Aufruf Form_Liste -> Eintrag auswählen, Kontext-Menü ->
"Eigenschaft-Dialog" wird aufgerufen -> Änderung an einem Eintrag
=> ListView im Form_Liste soll aktuallisiert werden.


Zu 2:
Besagtes Form_Liste ein MDIChild der Anwendung wird maximiert, rufe ich
nun via Popup Menü den "Eigenschaft-Dialog" ein weites MDIChild auf
so wird dieses ebenfalls Maximiert, schalte ich in den Eigenschaften
BorderIcon.Maximized := False, so wird beim Aufruf des MDIChilds
das ParentForm ( Form_Liste ) verkleinert und bleibt nicht Maximiert
so wie es eigentlich sollte.

Ich hoffe ich habe es einigermaßen verständlich erklären können, habe bis
her keine Lösungen gefunden für mein Problem :-(

mfg

TUX

Sergej 1. Jun 2005 10:21

Re: MDIParent / MDIChild Komunikation
 
also zu 1) Einfach in der MDI-Child-Unit die MDI-Parent-Unit in die uses aufnehmen, dann hast du Zugriff auf die Mainform


z.B.

[...]
uses uMainform;

procedure TMdiForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
MainForm.ClassBrowser.Items.Clear;
if MainForm.MdiChildCount <= 1 then
begin
Mainform.TBXLabelItem1.Visible := true;
MainForm.statusbar.Panels[3].Caption := '';
end;
end;


zu 2) hab ich jetzt so keine Idee...


Greetz Sergej

barf00s 1. Jun 2005 10:47

Re: MDIParent / MDIChild Komunikation
 
wennd dein formular was da minimiert wird mit "parentform.Restore;" versuchst "wiederherszustellen" und dann nochmal zusätzlich dein formular was du grad aktiviert hast mit "frmNew.BringToFront;" öhm ... kA, ob ich deine komische Frage auch richtig verstanden habe :)

Igotcha 1. Jun 2005 11:21

Re: MDIParent / MDIChild Komunikation
 
Zitat:

Zitat von barf00s
wennd dein formular was da minimiert wird mit "parentform.Restore;" versuchst "wiederherszustellen" und dann nochmal zusätzlich dein formular was du grad aktiviert hast mit "frmNew.BringToFront;" öhm ... kA, ob ich deine komische Frage auch richtig verstanden habe :)

Habe ein ähnliches Problem wie der Threadersteller bzw. auch noch keine Lösung dafür gefunden.

Evtl. ist diesed MDI-Verhalten ja so spezifiziert und gewollt, aber es stört in einigen Anwendungen.

Du hast eine MDI-Form (1) mit wsmaximize. Dann öffnest Du eine weitere (2), auch wsmaximized. Dann schließt Du (2) wieder und (1) ist nicht mehr maximiert.

Gruß Igotcha

TUX_der_Pinguin 1. Jun 2005 12:21

Re: MDIParent / MDIChild Komunikation
 
Hi,

also das 1. Problem läßt sich nicht lösen in dem ich einfach das
ParentForm in den Uses Teil schreibe, es liegt denke ich daran das das
ParentForm ebenfalls ein MDIChild ist und nicht das MDI-MainForm ?!

MainForm -> Aufruf einer oder mehrer FormListe ( MDIChilds ) dort kann
jeweils mehrfach ein weiteres MDIChild aufgerufen werden welches
Manipulationen vornehmen soll am darunter liegenden ListView im entsprechnden Form.


MainForm -> FormListe (1) -> FormEigenschaften von Item 1
-> FormEigeschaften von Item 25

-> FormListe (2) -> FormEigenschaften von Item 2
-> FormListe (3)

usw. So ist ungefähr der Aufbau der Formulare. Dabei ist FormListe ein
MDIChild von MainForm und FormEigenschaften ist ein MDIChild von FormListe.


Noch mals zu Problem 2. FormListe ist Maximiert, soll es auch sein.
Nun wird FormEigenschaften aufgerufen und zack FormListe ist nicht mehr
Maximiert, weil FormEigenschaften NICHT maximiert werden kann da
BorderIcon.Maximized := False ist!

Setze ich das auf True bleib FormListe maximiert jedoch wird
FormEigenschaften auch maximiert, was NICHT soll.

Alles etwas kompliziert ;-)

mfg

TUX

Sergej 1. Jun 2005 12:25

Re: MDIParent / MDIChild Komunikation
 
[edit] ich sollte zuerst lesen und dann schreiben...sorry [/edit]


Greetz Sergej

Igotcha 1. Jun 2005 12:48

Re: MDIParent / MDIChild Komunikation
 
Zitat:

Zitat von TUX_der_Pinguin
Noch mals zu Problem 2. FormListe ist Maximiert, soll es auch sein.
Nun wird FormEigenschaften aufgerufen und zack FormListe ist nicht mehr
Maximiert, weil FormEigenschaften NICHT maximiert werden kann da
BorderIcon.Maximized := False ist!

Setze ich das auf True bleib FormListe maximiert jedoch wird
FormEigenschaften auch maximiert, was NICHT soll.

Ja, ist das von mir beschriebene Problem (Feature) nur aus einer anderen Sicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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