Показать сообщение отдельно

  #20  
Старый 24.04.2010, 01:03
ange007
Новичок
Регистрация: 26.08.2009
Сообщений: 19
Провел на форуме:
977507

Репутация: 33
По умолчанию

1n0y, нельзя в потоке просто так использовать компоненты с формы.
Создавай компоненты конкретно в самом потоке!

Вот что-то тип такого:
Код:
 TMyThread = class(TThread)

 private
    FCS: RTL_CRITICAL_SECTION;

    FH TidHTTP;
    FS: TIdIOHandlerStack;
    CM: TIdCookieManager;
...
 protected
    procedure Execute; override;
...
 public
    constructor Create;
    destructor Destroy; override;
....
....
procedure TMyThread.Execute;
var text:string;
begin
  {}
  FH := TidHTTP.Create;
  FS := TIdIOHandlerStack.Create;
  CM := TidCookieManager.Create;
  {--//--}
  FH.IOHandler := FS; 
  FH.HandleRedirects := true;
  FH.CookieManager := CM;
  FH.AllowCookies := true;
...
text := FH.Get('');
...
end;

constructor TMyThread.Create;
begin
  inherited Create(True);
...
  FreeOnTerminate := False;
  InitializeCriticalSection(FCS);
  Resume;
end;

destructor TMyThread.Destroy;
begin
  FreeAndNil(FH);
  FreeAndNil(FS);
  FreeAndNil(CM);
  DeleteCriticalSection(FCS);
end;

Последний раз редактировалось ange007; 24.04.2010 в 01:12..