Показать сообщение отдельно
  #1  
Старый 11.12.2012, 23:10
Pcrepair
 
Сообщения: n/a
По умолчанию Загрузка страниц в Потоке с idHTTP

Добрый день. Есть код:

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ListBox1: TListBox;
    procedure ListBox1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses uThreadLoader;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var ThreadLdr: TLoader; HtmlCode:string;
  begin
    ThreadLdr:=Tloader.Create(True); (*создаем поток*)
    ThreadLdr.Priority:=tpNormal;        (*задать приортет нормальный*)
    ThreadLdr.FreeOnTerminate:=True;  (*самовыгрузка в конце потока*)
    ThreadLdr.Resume;  (*запускаю поток - что то устаревшее заменить?*)
    ThreadLdr.Url:=ListBox1.Items[ListBox1.ItemIndex]; (*передаем УРЛ из ЛБ в Поток, все работает*)
    HtmlCode:=ThreadLdr.Html;  (*получаем результат ТУТ ПУСТО!!!*)
    Memo1.Lines.Add(HtmlCode); (*выводим результат в МЕМО*)
  end;
end.

и дополнительный модуль

Код:
unit uThreadLoader;

interface

uses
  System.Classes, idHTTP, SysUtils, Dialogs;

type

  TLoader = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
    procedure LoadPage;
  public
    Url, Html:string;
  end;

implementation

procedure Tloader.LoadPage;
var
Ldr:TidHTTP;
begin
   Ldr:=TidHTTP.Create(nil);
      Html:=Ldr.Get(Url);
      ShowMessage(Html); (*тут страница есть*)
   FreeAndNil(Ldr);
end;

procedure TLoader.Execute;
begin
   Synchronize(LoadPage);
end;

end.

Задача была такая: загрузить страницу посредством idHTTP но с использованием класса TThread. Вроде все по теории?
Вопросы:
- почему не передается код страницы в HtmlCode:=ThreadLdr.Html;???? УРЛ через переменную доходит до idHTTP, а обратно нет
- РАД говорит что [dcc32 Warning] Unit1.pas(44): W1000 Symbol 'Resume' is deprecated или устарело. а чем заменить?
Ответить с цитированием