Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема с CreateThread


Автор: Andreyzpr 27.9.2007, 22:05
Нашол я на єтом форуме такой код:
Код

CreateThread(nil, 128, @testproc, self, 0, h);

Если его применить, то программа, например при закачке файла не будет виснуть.
Решил попробовать применить его, таким способом:
Код

procedure TForm1.testproc;
begin
ShowMessage('Пашет!!!');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
h:cardinal;
begin
CreateThread(nil, 128, @testproc, self, 0, h);
end;



но у меня подчеркнуло строку 
Код

CreateThread(nil, 128, @testproc, self, 0, h);

курсор показан после @testproc и пишет ошибку:
Код

[Error] Unit1.pas(3207): Variable required


Где я допустил ошибку?

Автор: VICTAR 27.9.2007, 22:45
Код

procedure testproc;
begin
ShowMessage('Пашет!!!');
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  h:cardinal;
begin
  CreateThread(nil, 128, @testproc, self, 0, h);
end;


вероятно testproc не должна быть методом

Автор: Andreyzpr 27.9.2007, 23:27
Всеравно....

Автор: VICTAR 27.9.2007, 23:34
У меня все ок. D7

Автор: Coder 28.9.2007, 03:36
вообще-то функция потока имеет такой прототип:
Код

DWORD WINAPI ThreadFunc( LPVOID );

Pascal:
Код

function ThreadProc(p : pointer) : DWORD;


и попробуй вызывать так (если не нужно параметры передавать):
Код

CreateThread(nil,0,@ThreadProc,nil,0,h);



Автор: Andreyzpr 28.9.2007, 13:28
Спасибо всем за помощь, есессно по репе тоже.. Ошибка была в том, что я описал процедуру в верху, там где все процедуры описываются, а этого делать не нужно было.. Все работает smile)))))))))))))))))))))))))))))))))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)