![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CreateThread [D6, WinME, WinXP]
Lony © (2002-11-24 20:38:00)Можете привести пример с использованием CreateThread? Дело в том, что прога написана в Console. {$R *.RES}
Morfein (2002-11-25 20:28:00) [1]to Андрей Ваганов :
ручками через API...
Андрей Ваганов (2002-11-25 19:21:00) [2]2 Fantasist
дааааа, и как?
Fantasist (2002-11-25 18:25:00) [3]
> Нельзя в потоке что либо выводить на экран.
С чего бы это? Нельзя делать определенные вещи, но что либо на экран вывести никаких проблем.
Victor_Cr (2002-11-25 15:25:00) [4]Нельзя в потоке что либо выводить на экран. Для этого нужно передавать в главную форму(или вообще в какую нибудь форму) сообщение, либо пользовать метод Synchronize. От этого он и ругается на канву. И вообще читайте доки - они рулез.
esu (2002-11-25 14:44:00) [5]А еще можно сделать свое сообщение и передавать его в главную форму, а оттуда уже отображать где угодно...
Marcus (2002-11-25 14:35:00) [6]А ты не юзай MessageDlg, а юзай старый добрый APIшный MessageBox. А насчет канвас - см. в source\vcl\dialogs.pas
Андрей Ваганов (2002-11-25 13:50:00) [7]2 asmith
...,а что делать если в потоке надо вывести MessageDlg?
Получается ругань на канвас. Причем тут канвас?
asmith (2002-11-24 21:09:00) [8]Это не имеет значения. Делаешь все, как обычно
var
fExecuteThread : THandle;
threadID : Integer;
...
fExecuteThread := CreateThread (Nil, 0, @ExecuteHandler, Тшд, CREATE_SUSPENDED, threadID);
где ExecuteHandler описана так:
function ExecuteHandler (param : pointer) : Integer; stdcall;
Ну и так далее