Hallo,
bei mir raucht's mal wieder!
Also, ich habe da einen Editor als
MDI-Anwendung und möchte mir die göffneten Child-Fenster als TabSheets in einem PageControl anzeigen lassen.
Dazu nutze ich folgende Prozedur:
Delphi-Quellcode:
procedure TFrameForm.MakeChilds;
var
i, c: integer;
begin
i := 0;
c := 0;
for i := 0 to PageControl1.PageCount -1 do
PageControl1.Pages[i].Free;
for c:=0 to MDIChildCount -1 do
with tTabSheet.Create(Self) do
begin
PageControl := PageControl1;
caption := MDIChildren[c].caption;
end;
if MDIChildCount = 0 then CoolBar1.Height := Toolbar2.Height +4
else CoolBar1.Height := Toolbar2.Height + PageControl1.Height +8;
end;
Diese Prozedur rufe ich nun beim OnCreate des ChildFensters auf. Soweit so gut.
Bei zwei Childs funzt das auch, siehe Bild 'korrekt.jpg';
beim Öffnen des dritten Childs kommt's dann, siehe 'unkorrekt.jpg';
beim vierten ist dann wieder alles in Butter -> 'geht_wieder.jpg'.
Hat jemand eine halbwegs logische Erklärung dafür?
Ach ja, irgendwie muss ich noch auf das Beenden eines Childs reagieren, aber wie?
Beim OnDestroy mit o.g. Prozedur zählt immer noch das gerade geschlossene Fenster mit.