FireMonkey iOS RAD Studio XE2-Mostrar imagen en el formulario cargado desde la URL
delphi timage (2)
¿Es posible colocar un TImage en un formulario FMX para iOS y cargar una imagen (jpg) desde una URL en este TImage para que se muestre en la aplicación iOS?
Lo he intentado sin éxito. Cualquier sugerencia o punto en la dirección correcta es apreciada.
Coloque un TButton, TImageControl y TIdHttp en un formulario Firemonkey y este código bajará una imagen de la web:
procedure TForm1.btnReadWebImgClick(Sender: TObject);
begin
ReadWebImage(''http://www.gravatar.com/avatar/5af5f8c5f88c6c237745e9472a31410f?s=32&d=identicon&r=PG'');
end;
procedure TForm1.ReadWebImage(imgAddress: string);
var
memStream: TMemoryStream;
begin
memStream := TMemoryStream.Create;
try
idhttp1.Get (imgAddress,memStream);
except
ShowMessage(''Image not found at:''+imgAddress);
memStream.Free;
exit;
end;
try
memStream.Position := 0;
ImageControl1.Bitmap.LoadFromStream(memStream);
finally
memStream.Free;
end;
end;
La respuesta funciona con un poco de congelación. Cargo 4 imágenes en un bucle. Cuando presiono el botón, el programa se congela para descargar las imágenes, la barra de progreso no funciona y, si se descargan, continúa perfectamente. Para 4 imágenes congelar durante 1 seg. Para 50 es un "sin conexión" o "programa incorrecto". Este es el código.
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i: Integer;
Stream: TMemoryStream;
imgAddress: string;
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := Table1.RecordCount;
for i := 1 to Table1.RecordCount do
begin
ProgressBar1.Value := i;
imgAddress := VirtualTable1.FieldByName(''flyer'').AsString;
Stream := TMemoryStream.Create;
idhttp1.Get (imgAddress,Stream);
try
Stream.Position := 0;
Table1.Edit;
TBlobField(Table1.FieldByName(''image'')).LoadFromStream(Stream);
Table1.Post;
finally
Stream.Free;
end;
Table1.Next;
end;
Table1.First;
end;