hi,
Jedes VCL-Formular besitzt automatisch die
MDi-Methoden:
- MDiChildCount
- MDiChildren
- ..
Du solltest deswegen den Formularbezeichner immer vorne mit dazuschreiben!
MainForm ist in diesem Beispiel der Formularbezeichner.
Delphi-Quellcode:
if MainForm.MDiChildCount > 0 then
MainForm.MDiChildren[0].Caption := 'Hallo Welt...'; // 0 ist immer das aktive Child
Hier mal ein Beispiel, wie man es nicht machen sollte!:
Delphi-Quellcode:
if MDiChildCount > 0 then // falsch bzw. riskant
MDiChildren[0].Caption := 'Hallo Welt...'; // falsch bzw. riskant
Nun benutzt der Compiler automatisch
Self.
Und Self steht für das Formular deiner jeweiligen
Unit. (sofern es ein Formular ist)
Delphi-Quellcode:
if Self.MDiChildCount > 0 then // das macht der Compiler draus
Self.MDiChildren[0].Caption := 'Hallo Welt...'; // das macht der Compiler draus
Jedes MDiChild besitzt einen Klassennamen z. Beispiel: 'TChild'.
Über diese Klasse kannst du auf alle anderen Objekte/Eigenschaften zugreifen.
Ein Beispiel:
TChild(MainForm.MDiChildren[0]).Memo1.Text := 'Hallo Welt';
oder
(MainForm.MDiChildren[0] as TChild).Memo1.Text := 'Hallo Welt';
Schreib dir am besten eine Funktion, die du dann von überall aus aufrufen kannst.
Übrigens kann man Zugriffsverletzungen auch aus dem Weg gehen, indem man vorher (
MDi <> nil)
überprüft.
lg bigg