Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-49736
otido
2003-12-24 00:39
2004.01.16
Нужна помощь... задача на комбинаторику...


1-49553
Zeus_Chess
2004-01-06 10:19
2004.01.16
ПАТЧЕВАНИЕ


7-49792
Yaro
2003-11-03 02:09
2004.01.16
Распределение видеопамяти у разных пользователей...


14-49745
JibSkeart
2003-12-24 15:11
2004.01.16
Приколна :))


1-49607
Альф
2004-01-04 16:01
2004.01.16
TFrame.OnShow ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский