Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизКаково максимально-гарантированное время доставки message? Найти похожие ветки
← →
Ega23 (2004-01-06 14:29) [0]Ситуация следующая.
1. Есть некий класс TDialogPanel. Суть его такова, что по собственному языку он строит динамические диалоги с разным набором контролов. Например, в одном случае это 2 TEdit"а, в другом - TEdit, TComboBox и TCheckBox и т.п. По событию OnExit каждого из контролов генерируется собственный message и отправляется по MainForm.Handle.
2. В главной форме в обработчике этого message происходит попытка обращения к отправителю за какой-то информацией.
3. Опять же в главной форме имеется TTreeView, передвигаясь по узлам которого убивается старый объект класса TDialogPanel и создаётся новый.
Какова вероятность того, что в обработчике события я буду обращаться к уже "убитому" объекту класса?
← →
Юрий Федоров (2004-01-06 14:39) [1]Как отравляется сообщение
если SendMessage - вероятность нулевая, так как это аналогично
вызову метода - управление будет передно немедленно
если PostMessage - сообщение встанет в конец очереди сообщений окна и будет отработно только тогда, когда все предыдущие будут отработаны.
← →
Ega23 (2004-01-06 14:42) [2]
> если SendMessage - вероятность нулевая, так как это аналогично
> вызову метода - управление будет передно немедленно
Т.е., как я понимаю, сообщение сгенерили через SendMessage, мгновенно провалились в обработчик события, вернулись обратно - и объект "убился", так?
← →
Романов Р.В. (2004-01-06 14:44) [3]Если сообщения посылаешь через SendMessage или Perform, то будет выполнятся обработка сообщений, а потом продолжится выполнение программы со следующей строки.
Если сообщения посылаешь через PostMessage обработка сообщения будет после выхода из процедуры, когда приложеие начнет обрабатывать очередь сообщений. Вероятность обращения к убитому объекту в этом случае очень велика.
← →
Романов Р.В. (2004-01-06 14:46) [4]
> вернулись обратно - и объект "убился", так?
Сам он не убъется его убивать нужно. А суть ты понял равильно
← →
Ega23 (2004-01-06 14:56) [5]Хорошо, сейчас попробую. Я через Post делал.
А Event сдесь помочь может?
← →
Романов Р.В. (2004-01-06 15:04) [6]А Event тут причем?
Не путай сообщения с событиями.
← →
Ega23 (2004-01-06 15:09) [7]Всем спасибо за советы, всё замечательно заработало.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c