Доброе время суток .
Я только начал знакомится с потоками , не судите строго .
Вот код . Смысл которого через отдельный поток загружать изображение с сервера .
unit Unit5;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,iduri,idhttp,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
FMX.Controls.Presentation, FMX.StdCtrls;
type
ThreadHTTP=class(TThread)
private
Stream:TMemoryStream;
bmp:tbitmap;
url:string;
public
constructor Create(abmp:tbitmap; aurl: String);
procedure Execute;override;
// procedure ShowResult;
end;
type
TForm5 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure getpic(pic: string; img: Tbitmap);
end;
var
Form5: TForm5;
implementation
{$R *.fmx}
constructor ThreadHTTP.Create(abmp:tbitmap;aurl:string);
begin
inherited Create(false);
bmp := abmp;
url:=aurl;
end;
procedure ThreadHTTP.Execute;
var
j:integer;
idhttp : TIdHTTP;
ms:tmemorystream;
png:tbitmap;
begin
ms := TMemoryStream.Create;
IdHTTP := TIdHTTP.Create(nil);
url:=TIdURI.URLEncode(url);
try
idhttp.Get(url,ms);
ms.Position := 0;
finally
bmp.LoadFromStream(ms);
idhttp.Free;
ms.Free;
end;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
getpic('krovat1',form5.Image1.Bitmap);
end;
procedure TForm5.getpic(pic: string; img: Tbitmap);
var
zapros:string;
idhttp:tidhttp;
MyHTTP:ThreadHTTP;
begin
zapros:='http://127.0.0.1/getimage_'+pic;
MyHTTP:=ThreadHTTP.Create(img,zapros);
MyHTTP.FreeOnTerminate := true;
MyHTTP.resume;
end;
end.
Код корявый , но работает в win32 . В Android ничего не происходит .
Помогите разобраться , пожалуйста .