Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.02.2007, 15:20
bbeeaa bbeeaa вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 3
Репутация: 10
По умолчанию С чем едят Application.ProcessMessages

Объясните, пожалуйста, на пальцах где и когда использовать вызов Application.ProcessMessages и зачем это нужно в XP, ведь это вроде многозадачная ОС. Или киньте ссылкой.
Хочется также узнать, что делать, если у программы нет ни одного окна (например, это dll), но есть большой цикл, нужно ли тогда использовать subj.
Ответить с цитированием
  #2  
Старый 15.02.2007, 05:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Читаем справку:
Цитата:
Interrupts the execution of an application so that it can process the message queue.
и еще
Цитата:
Call ProcessMessages to permit the application to process messages that are currently in the message queue. ProcessMessages cycles the Windows message loop until it is empty, and then returns control to the application.
т.к. раздел называется Начинающим немного опишу то же по русски.
Метод ProcessMessages останавливает выполнение приложения для того чтобы обработать очередь сообщений. Когда очередь становится пустой управление передается приложению.
Использовать его стоит в длинных циклах и тому подобных ресурсоемких местах приложения.
Ответить с цитированием
  #3  
Старый 15.02.2007, 09:54
bbeeaa bbeeaa вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 3
Репутация: 10
По умолчанию С чем едят Application.ProcessMessages

Спасибо, справку я читал. То, что нужно вставлять subj в циклах я знаю. Возможно, я не так сформулировал вопрос. Попробую еще раз. Класс TApplication используется для "GUI windowed application". Соответственно если у меня просто программа без формы, то и класс это не используется. Как тогда быть с ProcessMessages?
И что значит: "останавливает выполнение приложения, для того чтобы обработать очередь сообщений". Т.е. если очередь не остановить, система работать не сможет. Сможет. А вот окно приложения перерисовать не сможет. Но если нет окна приложения, то, что тогда, будет с очередью?
Ответить с цитированием
  #4  
Старый 15.02.2007, 10:58
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если нет окна - нет и очереди
Ответить с цитированием
  #5  
Старый 15.02.2007, 14:05
bbeeaa bbeeaa вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 3
Репутация: 10
По умолчанию С чем едят Application.ProcessMessages

Спасибо. Кажется доперло.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025