Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

Эксперимент   Найти похожие ветки 

 
DeadMeat ©   (2007-05-30 16:02) [0]

Здравсте опять.
Не пойму одну вещь. Либо я идиёт, либо все таки проблема с лыжами.
Открываю чистый проект в Turbo Delphi 2006 (кстати может быть в версии проблема?). Добавляю окно. На обоих окнах по одной кнопке. В первом, в обработчике кнопки ставлю Form2.ShowModal. Во втором, на кнопку вешаю ModalResult := mrOk. В обработчике OnCloseQuery у второго окна ставлю Sleep(40000).
Теперь запускаю. Нажимаю первую кнопку. Появляется окно. Нажимаю вторую. Идет пауза и окно после 40 секунд закрывается. Все замечательно.
И сам эксперимент.
Запускаю программу. Нажимаю первую кнопку. Появляется окно. Нажимаю вторую. Теперь... пока идут эти 40 секунд, надо пооткрывать разных окон в системе (Мои документы, Мой компьютер, Ексель.. вообщем всего подряд). И попереключаться между ними. Туда.. Сюда.. Проходят 40 секунд. Смотрим на приложение. Оба окна остались видимыми. При этом можно оба из них двигать. Но вот при обращении к элементам второго, приложение виснет. Если этого не делать и сразу закрыть первое, то оно закрывается благополучно.
Проверялось на 2х компьютерах с Windows XP SP2 и одном Windows Vista Final. Под ХР глюк есть, под Vista - нету.

Вопрос.
Чей глюк? Sleep стоит в качестве простого "эмулятора" длительных действий при закрытии модального окна.

ЗЫ. Понятно, что можно его просто обойти, не делая подобные задержки при закрытии, но вот если "нада"?
ЗЗЫ. Примерная причина (мое мнение) - таймаут? В смысле который определяет, что то или иное окно не реагирует на сообщения. Может с ним прикол?


 
Anatoly Podgoretsky ©   (2007-05-30 16:07) [1]

> DeadMeat  (30.05.2007 16:02:00)  [0]

20 секунд задача не реагировала на запросы, значит повисла


 
DeadMeat ©   (2007-05-30 17:40) [2]

Ну т.е. догадка подтвердилась. Получается что все же надо исключить подобные ситуации? В смысле по возможности ставить Application.ProcessMessages ?


 
VirEx ©   (2007-05-30 18:22) [3]


>  [2] DeadMeat ©   (30.05.07 17:40)

замени sleep реализацией нити



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1180687632
Andy BitOff (ppc)
2007-06-01 12:47
2007.07.01
трафикометр для кпк


15-1179930462
stone
2007-05-23 18:27
2007.07.01
Дежавю или прощай ММР?


3-1175777778
root
2007-04-05 16:56
2007.07.01
COM и MIDAS вызов события на стороне клиента?????????


15-1180947379
Сатир
2007-06-04 12:56
2007.07.01
Рефакторинг исходников шлюза


2-1181025992
Василий
2007-06-05 10:46
2007.07.01
Куда сохранить данные?