Как удалить удаленный объект из списка tobjectlist
У меня есть TButtons, которые пользователь может создавать во время выполнения. Когда они создаются, кнопка добавляется в свой собственный список TObjectlist в зависимости от того, какую кнопку они создают. Я считаю, что в списке хранятся все свойства кнопки. Первый код-это то, где кнопка создается и добавляется в свой собственный TObjectlist. Я попытался использовать тег buttons в качестве местоположения индекса в списке и удалить его, но это, похоже, не работает.
(Я знаю, что это не работает, потому что я могу сохранить местоположение, а затем загрузить его. Если бы это сработало, то при удалении кнопки и сохранении, загрузке она бы ничего не показывала).
Что я уже пробовал:
Function TForm1.Createbutton1(Number: Integer):TButton; var button1 : TButton; begin button1 := TButton.Create(nil); try button1.Parent := Self; button1.Caption := ('Button1'); button1.Tag := Number; button1.Top := 100; button1.Left := 100;; button1.Width := 145; button1.Height := 25; button1.OnMouseDown := ButtonMouseDown; button1.OnMouseMove := ButtonMouseMove; button1.OnMouseUp := ButtonMouseUp; button1s.Add(button1); except button1.Free; raise; end; Result := button1; end;
Procedure TForm1.ButtonRightMouseDown(Sender: TObject; Button : TMouseButton); var ButtonTag : Integer; begin if Button = mbRight then Begin if (Sender as TButton).Caption = 'Button1' then begin ButtonTag := (Sender as TButton).Tag; Button1s.Delete(ButtonTag); end; PostMessage( Form1.WindowHandle, WM_DELETE_CONTROL, WPARAM( Sender ), 0 ); FTableButtonDragging := False; end; end;