Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизУничтожение компонента в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c