Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

проблема в компоненте TOpenDialog


foreverDelphi ©   (2007-08-22 01:41:00) 

может я ошибаюсь, но окно компонента модальное и насколько я понимаю когда оно откроется в главном потоке приложения обработка команд остановится и будет ждать его закрытия. Что-то наподобие MessageDlg, а мне нужно чтобы окно диалога открывалось наподобие вызова процедуры Show


foreverDelphi   (2007-08-22 03:27:00) [1]


> Обычно поступают наоборот - в отдельный поток выносят невидимую
> долгоиграющую операцию, а визуальную часть оставляют в главном
> потоке.


да, спасибо...
p.s. истина в самом простом...


Юрий Зотов   (2007-08-22 03:21:00) [2]

> foreverDelphi ©   (22.08.07 01:41)

> может я ошибаюсь, но окно компонента модальное

Не ошибаетесь, оно модальное.

> и насколько я понимаю когда оно откроется в главном потоке приложения
> обработка команд остановится и будет ждать его закрытия.

Снова не ошибаетесь, так и будет.

> а мне нужно чтобы окно диалога открывалось наподобие вызова
> процедуры Show

Для этого диалог нужно открывать в отдельном потоке, но визуальная часть VCL однопоточная, поэтому вряд ли так получится (хотя можно попробовать, потому что TOpenDialog - компонент невизуальный). Еще можно для показа диалога использовать не компонент VCL, а WinAPI (тогда второй поток прокатит точно), но это сложнее.

Обычно поступают наоборот - в отдельный поток выносят невидимую долгоиграющую операцию, а визуальную часть оставляют в главном потоке.

Подойдет Вам такая схема? Обрисуйте задачу подробнее.


Наверх

Титульная страница Поиск, карта сайта Написать письмо