powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Функция, ожидание значения переменной
12 сообщений из 62, страница 3 из 3
Функция, ожидание значения переменной
    #39480289
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Объясни, в чем кривость решения, используемое самими разработчиками делфи (вызов ProcessMessages внутри длинного цикла, чтобы приложение на зависало и нормально реагировало на пользователя в процессе)?
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480331
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiв чем кривость решения, используемое самими разработчиками делфиЭто где разработчики то его используют? И сам ты часто прибегаешь к такому методу?
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480332
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiв чем кривость решения, используемое самими разработчиками делфи (вызов ProcessMessages
внутри длинного цикла, чтобы приложение на зависало и нормально реагировало на
пользователя в процессе)?

В том, что эта процедура использует PeekMessage вместо GetMessage.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480337
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Delphi вменяемая RTL, но большая часть VCL выглядит так, будто её, из-за недостатка
времени для разработки, сбросили на юниора-индуса. Так что если там где-то и затесался
вызов ProcessMessages, то использовать это место в качестве образца для подражания следует
с точностью до наоборот.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480405
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiwadman,

Объясни, в чем кривость решения, используемое самими разработчиками делфи (вызов ProcessMessages внутри длинного цикла, чтобы приложение на зависало и нормально реагировало на пользователя в процессе)?ProcessMessages можно применять если цикл выполняется не дольше неск. секунд.
А вот для длинного SQL-запроса (и прочего ожидания отклика к-л внеш. процесса) ProcessMessages не подходит.
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480415
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для меня достаточно понимания того, что ProcessMessages нарушает порядок очереди сообщений.
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480420
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barmaley57Это где разработчики то его используют?
Выше кидал ссылку на официальную документацию , где черным по белому написано, что ProcessMessages надо вызывать время от времени при длительных операциях, чтобы приложение не зависало и корректно прорисовывалось у пользователя.
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480426
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanДля меня достаточно понимания того, что ProcessMessages нарушает порядок очереди сообщений.

Не затруднит пояснить примером ?
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480429
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiwadmanДля меня достаточно понимания того, что ProcessMessages нарушает порядок очереди сообщений.

Не затруднит пояснить примером ?
Сложно представить, что будет при клике, который еще не отработал, но дернул следующее сообщение?
А если кодирует не один индус, а два или десять и каждый форсирует обработку очереди?
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480435
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiBarmaley57Это где разработчики то его используют?
Выше кидал ссылку на официальную документацию , где черным по белому написано, что ProcessMessages надо вызывать время от времени при длительных операциях, чтобы приложение не зависало и корректно прорисовывалось у пользователя.
Это документация, в ней описывается назначение функции, а не советы по применению и уж тем более не best practic.
Ты как американец, требуешь в инструкции указаний каких животных нельзя сушить в микроволновке.
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480452
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Вообще-то вся VCL как раз на этом принципе и построена, как и виндовые приложения и вообще весь пользовательский интерфейс -- по однопоточной модели.

Вот, например, те же DevExpress в своих компонентах где только можно ProcessMessages вставляют (более 50 мест нашлось поиском) -- как раз для того, чтобы не подвисало. Например:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TcxHintStyleEditor.LoadHintCtrls;
begin
  // ...

  while not cxFnHint.Properties.LoadFontComplete do
    Application.ProcessMessages;
  
  // ...
end;
...
Рейтинг: 0 / 0
Функция, ожидание значения переменной
    #39480466
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiВообще-то вся VCL как раз на этом принципе и построена, как и виндовые приложения и вообще весь пользовательский интерфейс -- по однопоточной модели.
Ой, не смеши. Везде, где думают головой, применяются потоки, в т.ч. и в VCL.
Запусти пустое приложение и посчитай количество потоков на приложение.
На всех ОС и во всех гайдах пишут, что все тяжелое следует выносить в другой поток.

JaDiВот, например, те же DevExpress
Да... Пиши как хочешь. :-) И пусть все пишут как хотят.
Мне всё равно, но ровно до тех пор, пока не начну разбирать г-но за кем-нибудь.
А пока кто-то другой с вашими поделиями мучается (и пользуется), то это его выбор.
...
Рейтинг: 0 / 0
12 сообщений из 62, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Функция, ожидание значения переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]