Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 222

/ вопрос открыт /

Здравствуйте!
У меня есть форма в которой иногда выполняются действия при которых он временно подвисает (например читает инфо обо всех файлах на МР3 диске). На время этого обращения я хочу показывать другую форму с GIF картинкой, обозначающей "подождите". Проблема в том что пока основная форма не отвиснет, вторая не появляется или гифка не крутится. Сделал создание и показ формы из таймера на главной форме, но чтобы это работало нужно в "тормозящую" долгую функцию напихать много Application.ProcessMessage;
Может есть какой-то другой выход?

AlexMPEI Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: AlexMPEI (статус: 1-ый класс)
Вопрос отправлен: 22 апреля 2011, 17:43
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 27 апреля 2011, 18:12; участников в обсуждении: 4.
Вадим К

Вадим К (статус: Академик), 22 апреля 2011, 17:45 [#1]:

треды, треды и ещё раз ТРЕДЫ!
Галочка "подтверждения прочтения" - вселенское зло.
AlexMPEI

AlexMPEI (статус: 1-ый класс), 22 апреля 2011, 17:52 [#2]:

как запихать форму в трэд я не понимаю. есть пример? Попробовал отнаследоваться от TForm и TThread одновременно - Delphi меня послал.
Вадим К

Вадим К (статус: Академик), 22 апреля 2011, 18:20 [#3]:

Во первых, наследоваться от двух одновременно в делфи нельзя, да и не нужно. Форма-тред - это бардак в квадрате. Делайте себе поиск в треде, форма для этого ему не нужна. Если же треду нужно что то выводить на форму, то можно использовать к примеру SendMessage или делфовские примитивы синхронизации. О том, как работать с тредом, можно подсмотреть в моей статье Скачиваем файлы из интернета
Галочка "подтверждения прочтения" - вселенское зло.
Егор

Егор (статус: 10-ый класс), 22 апреля 2011, 18:24 [#4]:

Цитата (AlexMPEI):

иногда выполняются действия при которых он временно подвисает

вот это и запихать в тред
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
min@y™

min@y™ (статус: Доктор наук), 22 апреля 2011, 20:17 [#5]:

Охренеть! Вы сговорились, штоли? Я сёдня написал тред для поиска файлов. Могу подарить исходник для ознакомления.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
AlexMPEI

AlexMPEI (статус: 1-ый класс), 23 апреля 2011, 01:11 [#6]:

подари, пожалуйста
min@y™

min@y™ (статус: Доктор наук), 23 апреля 2011, 09:03 [#7]:

Цитата (AlexMPEI):

подари, пожалуйста

Код остался на работе. В понедельник я уезжаю в командировку, вернусь во вторник вечером. До среды подождёшь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
AlexMPEI

AlexMPEI (статус: 1-ый класс), 24 апреля 2011, 01:06 [#8]:

конечно подожду
min@y™

min@y™ (статус: Доктор наук), 27 апреля 2011, 15:26 [#9]:

Цитата (AlexMPEI):

конечно подожду

Ну, если это ещё актуально, то вот.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
AlexMPEI

AlexMPEI (статус: 1-ый класс), 27 апреля 2011, 16:38 [#10]:

спасибо - отличный тред. только я еще, с вашего позволения, добавлю событие об окончании поиска :)
min@y™

min@y™ (статус: Доктор наук), 27 апреля 2011, 18:12 [#11]:

Цитата (AlexMPEI):

спасибо - отличный тред. только я еще, с вашего позволения, добавлю событие об окончании поиска :)

Я тя умоляю! OnTerminate жеж есть! Это ж тред, блин!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.03 сек.