Ich habe mal was ähnliches für Menü-Punkte gemacht:
Delphi-Quellcode:
procedure TfrmMain.mnuFensterClick(Sender: TObject);
var
cnt : Integer;
mnuItem : TMenuItem;
begin
while mnuFenster.count > 1 do
begin
mnuFenster.Delete(mnuFenster.Count-1);
end;
for cnt := MDIChildCount downto 1 do
begin
mnuItem := TMenuItem.Create(mnuFenster);
mnuItem.Caption := MDIChildren[cnt-1].Caption;
mnuItem.OnClick := FensterMenuItemClick;
mnuFenster.Add(mnuItem);
end;
end;
Etwas ähnliches müsstest du mit deinen Button machen. Allerdings müsstest du den Eintrag für die Button beim Erstellen, bzw. beim Zerstören des
MDI-Childs machen. Bei meiner Variante über das Menü ist das einfacher. Ich schaue beim Klick auf das Fenster-Menü einfach nach, welche Menü-Einträge ich erstellen muss.