Показать сообщение отдельно
  #8  
Старый 18.08.2009, 18:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Есть класс TObjectList.
У него есть свойство - OwnObjects. Тогда достаточно просто удалить объект из этого класса и объект будет удален.

Кнопка - для примера.
Код:
type
  TForm1 = class(TForm)
  ...
  private
     FList : TObjectList;
  ...
  end;

...

procedure TForm1.FromCreate(Sender : TObject);
begin
  FList := TObjectList.Create(True);
end;

procedure TForm1.FromDestroy(Sender : TObject);
begin
  FList.Free;
end;

procedure TForm1.CreateButton(ACaption : String);
var
  AButton : TButton;
begin
  AButton := TButton.Create(Nil); // !! Важно !! Если классы свои - то пофиг.
  AButton.Caption := ACaption;
  FList.Add(AButton);

  AButton.Parent := Self; // Это для визуальных контролов. Надо же ее показать :)
end;

// Удаляем по заголовку, просто пример.
procedure TForm1.DeleteButton(ACaption : String);
var
  I  : Integer;
begin
  For I := FList.Count-1 DownTo 0 Do
    If (Flist[i] As TButton).Caption = ACaption Then FList.Delete[i];
end;
Ответить с цитированием