Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: 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 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.081 c
1-1099580627
3APA3A
2004-11-04 18:03
2004.11.21
Canvas не обновляется...


4-1097491005
rainy_2002'
2004-10-11 14:36
2004.11.21
Как получить информацию о пользователе?


3-1098563512
Wint_
2004-10-24 00:31
2004.11.21
You have an error in your SQL syntax


14-1099210504
Lenor
2004-10-31 11:15
2004.11.21
EAC: глюки или ?..


14-1099383516
peypivo
2004-11-02 11:18
2004.11.21
Объявление процедуры внутри процедуры