Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Размещение TImage на FMX-форме для iOS и загрузка изображения с URL

Delphi , Интернет и Сети , URL

Заголовок:

Вопрос: Возможно ли разместить TImage на FMX-форме для iOS и загрузить изображение (jpg) с URL в этот TImage для отображения в приложении iOS?

Я пытался сделать это безуспешно. Любые подсказки или направление будут оценены.

Подтвержденный ответ: Да, это возможно. Ниже приведен пример кода на Object Pascal (Delphi), который загружает изображение с URL в TImage на FMX-форме для iOS:

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;

Описание:

  1. Создайте форму с TImage и TIdHttp на ней.
  2. Добавьте процедуру btnReadWebImgClick, которая вызывает процедуру ReadWebImage с адресом URL изображения в качестве параметра.
  3. Внутри ReadWebImage, создайте TMemoryStream и используйте TIdHttp для загрузки изображения из URL в поток.
  4. Если загрузка прошла успешно, установите позицию потока на 0 и загрузите изображение в TImage с помощью LoadFromStream.

Примечание: Убедитесь, что вы добавили IdHTTP в свою форму и настроили его свойства, если это необходимо.

Альтернативный ответ (решение проблемы загрузки нескольких изображений):

Если вы пытаетесь загрузить несколько изображений и сталкиваетесь с задержкой или замораживанием, вам может помочь выполнение загрузки изображений в фоновом потоке. Ниже приведен пример кода, который загружает несколько изображений в фоновом потоке и отображает их в TImage:

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  i: Integer;
  Stream: TMemoryStream;
  imgAddress: string;
  Task: TTask;
begin
  ProgressBar1.Min := 0;
  ProgressBar1.Max := Table1.RecordCount;

  Task := TTask.Create(nil, procedure
    begin
      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);

  Task.Start;
end;

Описание:

  1. Добавьте TTask в свою форму.
  2. Внутри SpeedButton1Click, создайте задачу и определите процедуру, в которой вы хотите выполнить загрузку изображений в фоновом потоке.
  3. Запустите задачу с помощью Task.Start.

Примечание: Убедитесь, что вы добавили IdHTTP и TTask в свою форму и настроили их свойства, если это необходимо.

Этот подход позволяет загружать изображения в фоновом потоке, что устраняет задержку и замораживание при загрузке нескольких изображений.

Создано по материалам из источника по ссылке.

Пользователь спрашивает, возможно ли разместить TImage на FMX-форме для iOS и загрузить изображение (jpg) с URL в этот TImage для отображения в приложении iOS. Также рассматривается проблема загрузки нескольких изображений в фоновом потоке для у


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: URL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:48:29/0.0033500194549561/0