Показать сообщение отдельно
  #5  
Старый 09.11.2009, 22:27
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

4 параметр в CreateThread это Pointer, указатель, а вы передаёте строку, тогда уж надо так:
Код:
function MyProc(str: pchar):DWORD;
var P : Pointer;
i: integer;
begin
i:=GetFileSize(StrToCard(str),P);
MainForm.Label1.Caption := intToStr(i);
Result := 0;
end;

procedure TMainForm.BitBtn1Click(Sender: TObject);
Var thID:DWORD;
begin
CreateThread(NULL, 0, MyProc, pchar(MainForm.Name.Text), 0, thID);
end;
либо эту строку сохранять в глобальной переменной, но здесь могут быть "погони" потоков

и кстати, установка переменных формы (vcl) из потока может (в определённых ситуациях) повиснуть оба потока, для этого нужно использовать функцию Synchronize
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием