Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как удалить компонент


Автор: Rennigth 11.8.2004, 13:23
Всем привет.
Мне нужно удалить компонент из егоже Onclick ,
при попытки сделать free вылетает то аксесвылатион то абстракт ерор
я как понимаю надо как-нибудь отловить завершение onclick но как я незнаю.
Буду благодарен за любую помощь.

Автор: <Spawn> 11.8.2004, 14:07
Rennigth Была недавно такая тема - один из вариантов это послать окну сообщение и в его обработчике убить нужный тебе экземпляр компонента.

Автор: Rennigth 11.8.2004, 15:21
<Spawn> 10 страниц просмотрел - ничего ненашел похожего
Можно чуть чуть поподробнее, какому окну и чего посылать?

Автор: decoder 11.8.2004, 18:25
Попробуй так: SendMessage(Somecomponent.Handle, WM_DESTROY, 0, 0);

Автор: Rennigth 11.8.2004, 19:24
decoder
Спасибо, я уже справился =)
PostMessage лутше наверно подойдет
если кому то вот...

Код

procedure DeleteClick(Sender: TObject);
procedure WMDeleteClick(var Message: TMessage); message WM_DeleteClick;

implementation
procedure TfmPlanirovanie.DeleteClick(Sender: TObject);
begin
 PostMessage(Handle, WM_DeleteClick, Integer(Sender), 0);
end;

procedure TfmPlanirovanie.WMDeleteClick(var Message: TMessage);
var
 Sender: TObject;
begin
 Sender := TObject(Message.WParam);
 ...........................

 Sender.Free;
end;
.........
AnyComponent.onclick:=DeleteClick;


Автор: decoder 17.8.2004, 15:03
Я кАнеШнА извиняюсь - грят, кровь у меня эстонцкая есть...
Rennigth
Как-то глуповато...
В ОнКлике компонента напиши
Цитата(Rennigth @ 11.8.2004, 19:24)
...........................

PostMessage(Component.Handle,WM_DESTROY,0,0)
и всё! smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)