![]() |
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 |
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 |
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 :)
|
Re: MDIParent / MDIChild Komunikation
Zitat:
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 |
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 |
Re: MDIParent / MDIChild Komunikation
[edit] ich sollte zuerst lesen und dann schreiben...sorry [/edit]
Greetz Sergej |
Re: MDIParent / MDIChild Komunikation
Zitat:
|
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