Hallo Leute,
ich hoffe dass ich hier richtig liege, ist ja mehr oder weniger wie ein 6er im Lotto zu wissen wo genau hier ein beitrag reingehört.
Also nun zu meinem Problem:
Ich muss ein Programm schreiben dass Panels zur Laufzeit erstellt und per Knopdruck wieder alle brav entfernt.
Das mit dem Erstellen ist ja kein Problem, habe ich mit
NewPanel := TPanel.Create. Erst bei der 2. Frage fängt es an zu Hacken...
Ich habe mich entschlossen, für das Löschen der Panels eine TObjectList direkt zum Programmstart zu erstellen, in die ich alle erstellen Panels einordne. Wie ich die Panels lösche, zu dem Problem bin ich nicht einmal gekommen, denn es hackt bereits hier:
Aus irgenteinem Grund listet der die Neu erstellen Panels nicht in die Liste ein (k.a.wieso, wharcheinlich habe ich nur irgentetwas dummes übersehen. Hier mal schnell alles, was euch hierzu interessieren könnte:
Delphi-Quellcode:
var
NewPanel: TPanel;
PanelID: Integer = 1;
PanelsList: TObjectList;
{ ... }
procedure TfmPool.FormCreate(Sender: TObject);
begin
PanelsList := TObjectList.Create;
{ ... }
end;
procedure SpawnPanel(PanelX,PanelY: Integer);
begin
NewPanel := TPanel.Create(Application);
PanelsList.Add(NewPanel);
with NewPanel do
begin
Name := 'Panel' + IntToStr(PanelID);
PanelID := PanelID + 1;
Left := PanelX;
Top := PanelY;
Caption := ObjectCaption;
Parent := fmPool;
Enabled := False;
{ ... }
OnClick := fmPool.SelectObject;
end;
end;
procedure TfmPool.FormClose(Sender: TObject; var Action: TCloseAction);
begin
PanelsList.Free;
end;
Anzuumerken wäre vielleicht, dass keine Fehlermeldung erscheint.
Vielen Dank
--Dennis