Member 13102568 Ответов: 0

Как удалить удаленный объект из списка 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;

0 Ответов