Текущий архив: 2007.02.11;
Скачать: CL | DM;
ВнизКак создать форму в паралельном потоке? Найти похожие ветки
← →
Godness (2007-01-23 20:08) [0]Привет народ. Есть такая проблема - нужно создать форму в паралельном потоке, а потом ее использовать в основном. Но беда в том, что из основного потока не получается обратится к своиствам созданной формы - выдает "handle invalid"
//вот примерно так - поток где создается форма
procedure Thread.Execute;
begin
MyForm := MyForm.Create(nil);
end;
//а уже в основном коде программы
MyForm.Parent := MainForm.Panel1; и т.д. но тут и вылетает ошибка
Как с этим бороться?
← →
i-am-vladko © (2007-01-23 21:31) [1]nikak - ShowModal
← →
Kolan © (2007-01-23 21:43) [2]Ненадо интерфейс делать многопоточным.
Создай ее в осно потоке. Если надо из. доп, то попроси осн. поток создать ее…
← →
tesseract © (2007-01-23 22:22) [3]Все обращения к VCL ( да и окнам вообще ) должны осуществляться, только в основном потоке. Дополнительные потоки не имеют стандартного цикла обработки сообщений.
Для обращения из потока к окнам необходимо использовать synchronize.
← →
Godness (2007-01-24 10:17) [4]Плохо - просто мне нужно ускорить работу приложения, которое и без того тормознутое. Это помогло бы весьма! Ладно, - будем искать... :)
← →
tesseract © (2007-01-24 10:31) [5]
> Плохо - просто мне нужно ускорить работу приложения, которое
> и без того тормознутое
Логику вынеси в поток. И потом обновляй форму. Всегда так делал и проблем не было. Использовал сообщения и крит секции.
← →
GrayFace © (2007-01-24 11:18) [6]tesseract © (23.01.07 22:22) [3]
Все обращения к VCL ( да и окнам вообще ) должны осуществляться, только в основном потоке.
Вовсе нет. Доп поток может и создавать окна (хотя обычно лучше этого не делать), а уж обращаться к окнам - всегда пожалуйста.
tesseract © (23.01.07 22:22) [3]
Для обращения из потока к окнам необходимо использовать synchronize.
Или посылать сообщения.
← →
Loginov Dmitry © (2007-01-24 14:40) [7]> Как создать форму в паралельном потоке?
с помощью WinAPI
← →
tesseract © (2007-01-24 14:50) [8]
> а уж обращаться к окнам - всегда пожалуйста.
Про обращаться я ничего не говорил. Просто разрушить таким образом очередь сообщений - вполне реально.
← →
GrayFace © (2007-01-26 17:49) [9]tesseract © (24.01.07 14:50) [8]
Просто разрушить таким образом очередь сообщений - вполне реально.
Разрушить очередь сообщений - это как?
← →
evvcom © (2007-01-26 17:57) [10]> [7] Loginov Dmitry © (24.01.07 14:40)
> с помощью WinAPI
В WinAPI нет форм. Там окна.
← →
Loginov Dmitry © (2007-01-26 18:26) [11]> В WinAPI нет форм. Там окна.
Форма - тоже понятие весьма абстрактное.
← →
evvcom © (2007-01-26 18:46) [12]> [11] Loginov Dmitry © (26.01.07 18:26)
> Форма - тоже понятие весьма абстрактное
На форуме сишников MS - согласен, а на форуме мастеров Дельфи вполне конкретное.
Страницы: 1 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.068 c