powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обработка нажатия трех кнопок в параллельном потоке
10 сообщений из 110, страница 5 из 5
Обработка нажатия трех кнопок в параллельном потоке
    #39579089
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellicизбавиться от "Программа не отвечает"(или как там?) в шапке форм! А как по другому этого избежать?
Делать тяжелую работу в другом потоке.

BellicВот недавно сравнительно узнал, что можно ProgressBar.Refresh делать!
Не надо вызывать, если делать работу в другом потоке. Именно из-за того, что ты с помощью костылей пытаешься делать и работу и отрисовку интерфейса, у тебя и получается эффект, обратный

Bellicкод очень коротким получался ведь!?
Более того, ты вызовом принудительной отрисовки (ProgressBar.Refresh и подобного) замедляешь работу основного своего алгоритма, который ты называешь "циклом".
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579097
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellicкод очень коротким получался ведь!?
Да, и еще. Мой код (с потоком) на 5 с половиной строк больше твоего потому, что я предусмотрел для пользователя возможность в любой момент корректно и сразу закрыть программу.
Если уважение к пользователям не нужно - можно убрать оттуда некоторые проверки, кое-где Wait заменить на Sleep, работать по FreeOnTerminate=True, и еще много чего.

Уверяю тебя, что код с потоком получится меньше, чем у тебя (хотя бы потому, что нет goto в основном алгоритме). И будет висеть при нажатии на крестик, пока не закончится "цикл", как ты любишь.
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579114
Freedoom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockBellic Freedoom , очень интересно получилось! Класс!
(Нет явного цикла ожидания, доп.потока и TAG использован по совету парней!)
Жаль только электроэнергии за нагрузку процессора в 100% и тормозов компьютера из-за этого.
Если речь идёт об экономии электроэнергии на время обдумывания выбора варианта ответа пользователем, то никто не мешает глянуть на реализацию ShowModal в первоисточниках и переделать цикл
Код: pascal
1.
2.
3.
repeat
  Application.HandleMessage;
until (FRes <> 0) or Application.Terminate;
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579133
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freedoomпеределать цикл
Код: pascal
1.
2.
3.
repeat
  Application.HandleMessage;
until (FRes <> 0) or Application.Terminate;

Это уже лучше, хотя и все равно мрак.
И это не первоисточники, а такие же костыли и грабли.
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579178
Freedoom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock, см реализацию ShowModal в vcl.forms.pas
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579182
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreedoomYuRock, см реализацию ShowModal в vcl.forms.pasЯ её смотрел уже раньше. Костыли и грабли.
Такой подход иногда допустим, когда действительно надо быстро вставить костыль в готовую рабочую систему, и другого выхода нет, кроме как всё переделывать, что может быть не выгодно.
Но заложить такое в основу библиотеки... Я когда первый раз наступил на это и увидел в чем проблема... Такого я от Борланда не ожидал.
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579207
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockТакого я от Борланда не ожидал.

По моему они уже скатились, и сейчас выпускают что бы была активность для продаж
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579208
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик, ты будешь удивлен, но Борланда уже почти 10 лет как не существует.
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579259
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикYuRockТакого я от Борланда не ожидал.

По моему они уже скатились, и сейчас выпускают что бы была активность для продажКод ShowModal не менялся больше 20 лет.
...
Рейтинг: 0 / 0
Обработка нажатия трех кнопок в параллельном потоке
    #39579474
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Сиквелцам!
Не хочется никого отвлекать пустыми разговорами - для себя оценил вариант YuRock -ка, поэтому буду внедрять Поток в свою прогу!
Единственное - хотелось бы увидеть полностью законченный вариант от Няшик -ка на Events!
Кнопки у него на форме имеются, а счет - отсутствует!
Няшик , допиши плизз...))

P.S. Прикрепляю полностью вариант проекта Няшик -ка для XE3 c двумя его реализациями - с массивами и без них, но в обоих случаях отсутствует цикл счета с выводом в MLabel: TLabel;
...
Рейтинг: 0 / 0
10 сообщений из 110, страница 5 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обработка нажатия трех кнопок в параллельном потоке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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