Добрый день. Есть код:
Код:
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 или устарело. а чем заменить?