petyaas Опубликовано 26 августа, 2018 Поделиться Опубликовано 26 августа, 2018 (изменено) никак не могу найти ошибку!! зависает после загрузки tmemorystream в tbitmap в Windows все работает! var Form1: TForm1; t:string; implementation {$R *.fmx} procedure tform1,prn; begin showmessage(t); end; procedure tform1.getimg(Sender: TIdThreadComponent); var ht:tidhttp; tb:tbitmap; fot:tmemorystream; begin ht:=tidhttp.Create; tb:=tbitmap.Create; fot:=tmemorystream.Create; ht.Get('http://kino-watch.online/images/movie/10/1035580.jpg',fot); t:='downloaded'; TIdThreadComponent(sender).Synchronize(form1.prn); fot.LoadFromStream(fot); t:='bitmap'; TIdThreadComponent(sender).Synchronize(form1.prn); fot.Clear; ht.Free; fot.Free; tb.Free; TIdThreadComponent(sender).Terminate; end; procedure TForm1.Button1Click(Sender: TObject); var thr: TIdThreadComponent; begin try thr:=form1.FindComponent('thrgetimg') as TIdThreadComponent; thr.DisposeOf; thr.Destroy; thr.Free; thr:=nil; except on Exception do ; end; thr:=TIdThreadComponent.Create(form1); thr.Name:='thrgetimg'; thr.Active:=false; thr.Loop:=false; thr.Priority:=tpNormal; thr.StopMode:=TIdThreadStopMode.smTerminate; thr.OnRun:=form1.getimg; //showmessage('run'); thr.Active:=true; end; Изменено 26 августа, 2018 пользователем petyaas Цитата Ссылка на комментарий
0 petyaas Опубликовано 26 августа, 2018 Автор Поделиться Опубликовано 26 августа, 2018 если сохранить fot.savetofile('foto.jpg'); работает но в bitmap не запихивает Цитата Ссылка на комментарий
0 IVGSoft Опубликовано 28 августа, 2018 Поделиться Опубликовано 28 августа, 2018 В 26.08.2018 в 07:58, petyaas сказал: TIdThreadComponent(sender).Synchronize(form1.prn); fot.LoadFromStream(fot); Ну, во первых, не fot.LoadFromStream, а tb.LoadFromStream(fot); И еще рекомендую добавить перед этим такую строчку fot.position := 0; Alex7wrt 1 Цитата Ссылка на комментарий
Вопрос
petyaas
никак не могу найти ошибку!!
зависает после загрузки tmemorystream в tbitmap
в Windows все работает!
var
Form1: TForm1;
t:string;
implementation
{$R *.fmx}
procedure tform1,prn;
begin
showmessage(t);
end;
procedure tform1.getimg(Sender: TIdThreadComponent);
var
ht:tidhttp;
tb:tbitmap;
fot:tmemorystream;
begin
ht:=tidhttp.Create;
tb:=tbitmap.Create;
fot:=tmemorystream.Create;
ht.Get('http://kino-watch.online/images/movie/10/1035580.jpg',fot);
t:='downloaded';
TIdThreadComponent(sender).Synchronize(form1.prn);
fot.LoadFromStream(fot);
t:='bitmap';
TIdThreadComponent(sender).Synchronize(form1.prn);
fot.Clear;
ht.Free;
fot.Free;
tb.Free;
TIdThreadComponent(sender).Terminate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var thr: TIdThreadComponent;
begin
try
thr:=form1.FindComponent('thrgetimg') as TIdThreadComponent;
thr.DisposeOf;
thr.Destroy;
thr.Free;
thr:=nil;
except
on Exception do ;
end;
thr:=TIdThreadComponent.Create(form1);
thr.Name:='thrgetimg';
thr.Active:=false;
thr.Loop:=false;
thr.Priority:=tpNormal;
thr.StopMode:=TIdThreadStopMode.smTerminate;
thr.OnRun:=form1.getimg;
//showmessage('run');
thr.Active:=true;
end;
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.