Текущий архив: 2002.04.18;
Скачать: CL | DM;
Вниз
Динамическое создание объекотв и методы Найти похожие ветки
← →
AlexanderSK (2002-04-05 14:34) [0]Проблемма следующая: в run-time создаем объект (например TLabel), далее происходит какое-либо событие, инициируемое этим объектом (например OnClick), в обработчике этого события нужно удалить экземпляр его вызвавший! Совершенно понятно, что после завершения выпонения этого обработчика, происходит ошибка выполнения (возвращаьтся то не куда - объект уже удален)! Можно ли и если можно то как этого избежать?
← →
MBo (2002-04-05 14:53) [1]можно - определяем сообщение, например,
const WM_DELLabel=WM_USER+100;
делаем метод
procedure WMWM_DELLabel(var Msg:TMessage);message WM_DELLabel;
а из обработчика посылаем
sendmessage(handle,WM_DELLabel,0,0);
если надо различать, что уничтожать, передаешь информацию, например, Tag нужной label, через wparam
← →
Digitman (2002-04-05 14:56) [2]В обработчике события объекта посылай форме некое предопределенное тобой сообщение вызовом PostMessage(). В форме определи обработчик этого сообщения и в его теле вызывай деструктор объекта-инициатора
← →
Digitman (2002-04-05 14:58) [3]>MBo
SendMessage() не пойдет.
← →
Fantasist (2002-04-05 19:28) [4]DestroyWindow(Button1.Handle);
Для TLabel, конечно, не подойдет, но можно использовать TStatciText
Страницы: 1 вся ветка
Текущий архив: 2002.04.18;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.005 c