Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2009, 10:54   #11
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Немного сложновато разбираться в таком неструктурированном коде.
Может в каждой ветке case делать сначала Timer1.Enabled:=false, а потом снова Timer1.Enabled:=true, а то получается, что таймер продолжает работать во время всех этих манипуляций, могут происходить какие-то накладки.
А еще в 4-й ветке case в коде
Код:
if timei>=10 then begin timer1.Enabled:=false; showmessage('end time'); end;
можно поставить Exit, иначе вроде бы таймер остановлен, а код продолжает выполняться.
Jeni вне форума Ответить с цитированием
Старый 10.01.2009, 12:03   #12
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Не надо постоянно вызывать GetDC(), запиши хэндл куда-нибудь и используй. Когда станет не нужен - ReleaseDC().
Цитата:
Сообщение от Altera Посмотреть сообщение
Юзай не sendMesage а postMessage! объявлены они почти одинаково. Разница только в том, что sendMessage ждёт ответа. И поэтому в цикле тупит!
SendMessage, который не ждёт ответа, - это SendNotifyMessage, а PostMessage - это уже другое

Последний раз редактировалось Somebody; 10.01.2009 в 12:17.
Somebody вне форума Ответить с цитированием
Старый 11.01.2009, 02:33   #13
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

1) Спасибо! ща буду пробовать!
2) объясните хорошенько разницу между SendMessage, PostMessage и SendNotifyMessage
я таймер использую, потому что нормальный "экстренный" (ручной) выход из цикла не получается сделать
3) я использую GetDC() потому что он меняется постоянно после каждого шага. может есть еще какая нибудь фнкция "полегче" ??? например взять только область (Rect) из GetDC() ???
Василий вне форума Ответить с цитированием
Старый 11.01.2009, 03:08   #14
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

2) Кое-что нашел (может кому будет полезно):

SendMessage - ждет ответа! и поэтмоу может зависнуть

SendMessageTimeout - ждет ответа некоторое время, после чего передает управление обратно потоку

SendMessageCallhack - сразу передает упарвление обратно, но есть еще фишка (читайте об этой фугкции, она работает вместе с ResultCallBack)

PostMessage - немедленно возвращает управление вызывающему потоку

SendNotifyMessage - как PostMessage, но есть пара отличий: 1. посылает сообщение с приоритетом выше чем у PostMessage! 2. если сообщение посылается окну, созданному вызывающим потоком, SendNotifyMessage работает точно так же, как и SendMessage, т. e не возвращает управ ление до окончания обработки сообщения

вот
Василий вне форума Ответить с цитированием
Старый 11.01.2009, 08:44   #15
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

первые опыты показали, что основная проблема была в том, что не была исползована во время функция ReleaseDC !!!
то есть при использовании GetDC, нужно обязательно юзать - ReleaseDC.
вот!
Василий вне форума Ответить с цитированием
Старый 11.01.2009, 15:11   #16
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от Василий Посмотреть сообщение
я использую GetDC() потому что он меняется постоянно после каждого шага. может есть еще какая нибудь фнкция "полегче" ??? например взять только область (Rect) из GetDC() ???
Если ничего не путаю, ничего не изменяется, только каждый раз берётся новый хэндл, поэтому можно получить хэндл один раз в начале.
Цитата:
Сообщение от Василий Посмотреть сообщение
объясните хорошенько разницу между SendMessage, PostMessage и SendNotifyMessage
Рихтер, оконные сообщения
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему со временем системный блок начинает шуметь rpy3uH Компьютерное железо 9 25.12.2008 04:48
при установке любой игры комп в середине установки начинает виснуть блик Свободное общение 8 03.12.2008 18:31
Color в цикле Roof Общие вопросы Delphi 8 06.08.2008 15:07
Пытаюсь выйти в инет с компа через мобилу, в момент соединения комп начинает виснуть Sava Свободное общение 5 29.04.2008 18:02