Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#9

Re: Komponenten löschen > Abstracter Fehler

  Alt 27. Aug 2006, 15: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.
  Mit Zitat antworten Zitat