![]() |
MDI Spezielles Child formular ansteuern
Hallo ihr.
Ich habe ein Problem mit einem MDI Anwendung. Es geht um folgendes: Ich habe einen Form, in diesen Fall "Form1" als MDI-Form angelegt. Nun habe ich über Datei -> Neu -> Formular einen neuen Formular erstellt und diesen mit den Option MDI-Child gesetzt In Form1 befindet sich einen Socket-Komponennt diese kann ich wohl über Form2 ansprechen. Jedoch möchte ich auch gerne, dass der OnRead ereignis vom Socket auf Form1 auf labels, Textfelder von Form2 zugreifen kann. damit meine ich nicht das lesen, sondern das setzen. Gedacht hätte ich folgendes:
Delphi-Quellcode:
jedenfalls sowas ähnlich jedoch ist dies nicht möglich.
Form2.label2.Caption := 'Blub';
Gibt es eine möglichkeit einen speziellen Formular anzusprechen?? Vorraussgesetz der ist geöffnet. Ich hoffe ich konnte die Frage einigemaßen richtig formulieren. Falls diesen Thema bereits behandelt wurde, dann bitte ich um Entschuldigung. |
Re: MDI Spezielles Child formular ansteuern
Grüß dich,
ich habe das recht leicht geschafft. Und zwar habe ich mir gerade eine Form erzeugt mit fsMDIForm und eine weitere mit fsMDIChild. Dann habe ich folgendes bei Unit1 (MDIForm) geschrieben
Delphi-Quellcode:
und folgendes in Unit2 (MDIChild):
implementation
uses Unit2; // <-- hier die wichtige Zeile {$R *.dfm}
Delphi-Quellcode:
Was passiert hier nun? Und zwar ist in Unit1 ja die globale Variable Form1 definiert, auf welche ich dann in Unit2 zugreifen kann und umgekehrt. Das geht eben über das Verknüpfen der Units.
implementation
uses Unit1; // <-- hier die wichtige Zeile {$R *.dfm} Allerdings ist diese Lösung nicht wirklich toll. Es sollte eher wie folgt sein: Deine MDI-Form sollte deine Unit2 und das MDI-Formular kennen. Das MDIChild sollte zwar beim Start erzeugt werden, aber nicht automatisch, sondern von der MDIForm (beim OnCreate z.B.). Das erzeugte Child kommt dann in eine private-(oder auch public)-Variable von der MDIForm und kann so von der MDIForm genutzt werden. Beim Erzeugen vom Child kannst du dem Child auch eine Referenz auf die MDIForm geben -- es muss also eine schreibbare Eigenschaft beim MDIChild geben. Über diese Referenz kannst du dann vom Child auf die MDIForm zugreifen. Das wäre eine (halbwegs) saubere Programmierung... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 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