PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Von fsNormal Formular auf fsMDIChild zugreifen



Gottfried Redel
07.08.2002, 23:50
Hallo,

ich habe eine Anwendung mit unterschiedlichen MDIChild Formularen. In einem MDIChild wird ein normales Formular (fsNormal) geöffnet. Dieses Formular soll nun Zugriff auf die Elemente des MDIChilds bekommen. Wie kann ich z.B. über einen Button in diesem normalen Formular auf ein Edit1 Feld im MDIChild zugreifen?

Vielen Dank im Voraus

Bernd Schulz
08.08.2002, 10:50
Hallo!<br>
Über eine Callback-Funktion läßt sich sowas (auch designtechnisch) sehr chick lösen.<br>
Im aufzurufenden Formular:<br>
type<br>
MyCallback = procedure of object;<br>
TForm2 = class(TForm)<br>
private<br>
F_Callback: MyCallback;<br>
public<br>
property P_Callback : MyCallback read F_Callback write F_Callback;<br>
end;<br>
<br>
Im aufrufenden Formular:<br>
with TForm2.create ( Appication ) do begin<br>
P_Callback := MeinCallback;<br>
end;<br>
<br>
procedure TForm1.MeinCallback;<br>
begin<br>
self.color := green;<br>
end;<br>
<br>
Klappt und ist eine saubere Trennung der beiden Formulare!<br>
Das Ganze geht natürlich auch mit einer Funktion als Callback.<br>
<br>
BYE BERND<br&gt

Hagen Reddmann
08.08.2002, 12:18
Da nur das MainForm ein fsMDIForm sein kann, kann man somit über Application.MainForm.MDIChildCount und Application.MainForm.MDIChildren[Index] auf die MDI Clients der Anwendung zugreifen.

Gruß Hage

Gottfried Redel
09.08.2002, 22:02
Dank