Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите начинающему! Можно ли форсировать WM_PAINT сообщение в Builder-3?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Sasha_builder
Гость





СообщениеДобавлено: Пн Янв 07 2002 03:42    Заголовок сообщения: Помогите начинающему! Можно ли форсировать WM_PAINT сообщение в Builder-3? Ответить с цитатой

Мое приложение не "чинит" свое окно после того как другие приложения перекрывают его частично или полностью. Что делать? В справочниках, приложение вроде должно посылать ОС сообщение WM_PAINT, но видимо, не посылает.

????

Help!


Саша
Вернуться к началу
Beguin
Гость





СообщениеДобавлено: Ср Янв 09 2002 15:47    Заголовок сообщения: Есть метод Update (+) Ответить с цитатой

RTFM

Если же процесс чем-то занят (например, очень длинное вычисление), то сообщения все равно проходить не будут. Тогда нужно вызвать Application-ProcessMessages(), типа:

while(Пива нет)
{
try
{
Холодильник-GetПиво();
}
catch(...)
{
Application-ProcessMessages();
Sleep(500);
}
}
Вернуться к началу
Sasha_builder
Гость





СообщениеДобавлено: Ср Янв 09 2002 18:15    Заголовок сообщения: Re: Есть метод Update (+) Ответить с цитатой

Beguin,

прежде всего спасибо за ответ. У меня действительно очень длинные вычисления. Программа при этом ни на что не реагирует (невозможно, например, перетащить окно, об изменении размеров не говорю, потому что окно задано жестко), кнопки меню не активизируются при попытке их нажать, единственное что можно - это закрыть приложение нажав "крест" в системном меню.


Application-ProcessMessages()

помогло в том плане, что окно можно теперь перемещать по экрану. При нажатии меню "File" появляется опция "exit", но ее нажатие к завершению не приводит.

Добавление в код

Form1-Update()

к "перерисовыванию" окна также не приводит. Функцию Sleep(...) я в Help не нашел, что это?


Не знаю, ясно ли я изложил свои жалобы.

Можно ли все это излечить?


Саша
Вернуться к началу
Beguin
Гость





СообщениеДобавлено: Чт Янв 10 2002 17:06    Заголовок сообщения: Re: Есть метод Update (+) Ответить с цитатой

Sleep - это из трейдов.

Если идут большие вычисления, а UI программы должен при этом работать, то лучше их засунуть в отдельный трейд.

Form1-Update() - это самое простое, что можно сделать. В данном случае оно не работает, поскольку приложение считается занятым, и до его очереди сообщений дело не доходит.

Exit не будет выполняться по той же причине. Пока не закончится расчет приложение не остановится. Надо остановить расчет.

Пишите на мыло.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...