Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: MDI Spezielles Child formular ansteuern

  Alt 30. Dez 2009, 14:56
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:
implementation

uses Unit2; // <-- hier die wichtige Zeile

{$R *.dfm}
und folgendes in Unit2 (MDIChild):
Delphi-Quellcode:
implementation

uses Unit1; // <-- hier die wichtige Zeile

{$R *.dfm}
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.

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...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat