Delphi-Quellcode:
...
public
{ Public-Deklarationen }
dateiname:
string;
datei:
file of tDaten;
daten: tDaten;
// speichert die Handles deiner Childs
Fenster:
array of Cardinal;
end;
...
procedure TObjekt.CreateSachverhaltdaten(
const Name:
string);
// Sachverhalt
var // Sachverhalt
Child: TSachverhaltForm;
// Sachverhalt
begin
try // Sachverhalt
Child := TSachverhaltForm.Create(Application);
// Sachverhalt
Child.Caption :=
Name;
// Sachverhalt
// erhöht das Handlearray
SetLength(Fenster, High(Fenster) + 1);
// speichert das Handle des Childs
Fenster[High(Fenster)] := Child.Handle;
Child.Tag := High(Fenster);
finally
// das hast du noch vergessen!
FreeAndNil(Child);
end;
end;
und dann vom Child aus etwas in dieser Art.
Delphi-Quellcode:
procedure TSachverhaltForm.EtwasInAnderemChildTun(ChildTag: Integer);
var
Child: TSachverhaltForm;
begin
try
// Child := TSachverhaltForm.Create;
Child.Handle := Form1.Fenster[ChildTag];
Child.Edit1.Text := 'test';
finally
FreeAndNil(Child);
end;
end;
Genau so wirds wahrscheinlich nicht funktionieren, aber ich hab nun mal immer noch kein Delphi vorhanden um das zu testen.
Aber irgendwas in der Richtung könnte man tun. Musste halt selber auch noch ein bissl studieren...
Du musst natürlich aufgrund irgendwelcher Kriterien dein Fenster ausfindig machen und dafür sorgen, dass wenn du ein Child schliesst das array Fenster entsprechend angepasst wird...