Вниз
Скачать: CL | DM;

Уничтожение компонента в Run Time.   Найти похожие ветки 

← →
Leaner ©   (2004-11-03 12:25) [0]

Здравствуйте ! Помогите, пожалуйста, разобраться.
Создаю в режиме Run Time дополнительные кнопки на ToolBar
Все работает, пока я не пытаюсь уничтожить, созданную раньше кнопку.

procedure TMainForm. NewBtnClick(Sender: TObject);
begin
ShowMessage(TControl(Sender).Name);
TToolButton(Sender).Free;
ShowMessage("Deleted.");
Beep;
end;  <---   здесь возникает  AV

procedure TMainForm.mnuThirdTestClick(Sender: TObject);
var
 Btn:TToolButton;
begin
 Btn:=TToolButton.Create(ProgramTBar);//ProgramTBar – это   ToolBar на форме
 Btn.Style:=tbsButton;
 Btn.OnClick:=NewBtnClick;
 Btn.Name:="ButtonName"+IntToStr(ProgramTBar.ButtonCount);
 Btn.Caption:="ButtonCaption"+IntToStr(ProgramTBar.ButtonCount);
 Btn.Parent:=ProgramTBar;
end;


← →
begin...end ©   (2004-11-03 12:27) [1]

Нельзя уничтожать в обработчике.


← →
Leaner ©   (2004-11-03 12:31) [2]

> begin...end
Спасибо !


← →
Юрий Зотов ©   (2004-11-03 13:04) [3]

> Leaner

Если кнопка должна уничтожить "сама себя", то из ее обработчика отправьте форме через PostMessage какое-нибудь сообщение, а вот в ЕГО обработчике кнопку уже можно спокойно уничтожать.


← →
Leaner ©   (2004-11-03 13:26) [4]

> Юрий Зотов
Огромное спасибо !
А еще прибедняються: мол, телепатов на форуме нет !


← →
TUser ©   (2004-11-03 13:37) [5]

С обычной кнопкой такой фокус у меня прошел нормально

procedure TForm1.Button1Click(Sender: TObject);
begin
  TButton(Sender).Free;
end;


← →
Семен Сорокин ©   (2004-11-03 13:53) [6]

procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(TButton(Sender).Handle, CM_RELEASE, 0, 0)
end;

вот незадача, но это только для наследников TWinControl, иначе см. [3]


> TUser ©   (03.11.04 13:37) [5]
> С обычной кнопкой такой фокус у меня прошел нормально

после Click"а происходит еще MouseUp, а что там будет - AV (но не всегда, не мне Вам это объяснять :))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.053 c
3-1098455993
мыш
2004-10-22 18:39
2004.11.21
Как установить выделение в dbgrideh?


1-1099661604
GIL
2004-11-05 16:33
2004.11.21
как узнать запущен ли процесс с определенным именем?


1-1099910119
Megabyte
2004-11-08 13:35
2004.11.21
Как в проекте другую форму сделать главной?


14-1099517516
Тохирбек
2004-11-04 00:31
2004.11.21
винт не работает


6-1093911720
Ace Cooper
2004-08-31 04:22
2004.11.21
Передача данных из Делфи в php-скрипт и получение результата.




   Наверх