Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
|
Re: Komponenten löschen > Abstracter Fehler
27. Aug 2006, 16:38
Vielleicht muss tatsächlich beides gemacht werden: das jeweilige Control aus der Panel-Liste entfernen und getrennt löschen, und das geht erst nach dem Entfernen. Probiere einmal Folgendes (die eingefügten Zeilen habe ich markiert):
Delphi-Quellcode:
procedure TForm1.PanelFree(Sender:Tobject);
var
test:TWinControl;
ctl: TWinControl; // eingefügt
MenuItem:TMenuItem;
i:Integer;
begin
test:=TJvCaptionPanel((Sender as TWinControl).Parent);
TMenuItem(form1.FindComponent('MenuItem' +InTTostr(test.tag))).Destroy;
form1.ActiveControl:=niL;
for i:=test.ControlCount-1 downto 0 do
begin
if test.Controls[i] <> NIL then
begin // begin...end eingefügt, weil jetzt mehrere Befehle kommen
ctl := test.Controls[i]; // damit auf ctl noch später zugegriffen werden kann
test.RemoveControl(test.Controls[i]);
ctl.Free; // löschen
end; // Gegenstück zum eingefügten begin
end;
test.free;
end;
Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
|