Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Загрузка в TImage


lewka ©   (18.06.19 23:53

Привет! нужно загрузить изображение из файла в TImage.
Делаю так

JPG := TJPEGImage.Create;
   JPG.LoadFromFile (ExtractFilePath(Application.ExeName)+'Connect\0.jpg');
   Image1.Picture.Bitmap.Assign(JPG);
   image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'Connect\01.jpg');
   JPG.Free;

Если это делать при загрузке формы или при показе, то все загружается и изображение появляется на форме,
а вот если этот код выполнять в TTimer, то на форме не отображается изображение, Хотя в файл из TImage сохраняется полноценное изображение.
Версия Delphi XE5


dmk ©   (20.06.19 00:25[1]

Надо делать в методах, которые вызываются 1 раз.
Таймер не для загрузки картинок точно.


KSergey ©   (20.06.19 09:38[2]

> lewka ©   (18.06.19 23:53)
> а вот если этот код выполнять в TTimer, то на форме не отображается  изображение,

Как говорится "у вас ошибка в 17-й строке".

Вот код, у меня работает, картинки по кругу по таймеру меняются.
Сравните с вашим кодом или приведите свой.
Сохранение я закомментировал, мне оно ж не требуется.

Кстати, как вариант: может у вас при перезаписывании все картинки становятся одинаковыми? и вы просто не видите смены.

Delphi 10.2

unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
 TForm1 = class(TForm)
   Image1: TImage;
   Timer1: TTimer;
   procedure FormCreate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
 private
   procedure ShowNextPicture();
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

uses JPEG;

{$R *.dfm}

var
 arrPicList: array[1..4] of String = (
   'D:\Temp\ScreenSavePhoto\img_8942web.jpg'
  ,'D:\Temp\ScreenSavePhoto\img_8961web.jpg'
  ,'D:\Temp\ScreenSavePhoto\img_9077web.jpg'
  ,'D:\Temp\ScreenSavePhoto\IMG_9350-web.jpg'
 );

 nPicIndex: Integer = Low(arrPicList);

procedure IncPicIndex();
begin
 Inc(nPicIndex);
 if nPicIndex > High(arrPicList) then
   begin
     nPicIndex := Low(arrPicList);
   end;
end;

function GetNextPicName(): String;
begin
 Result := arrPicList[nPicIndex];
 IncPicIndex();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ShowNextPicture();
end;

procedure TForm1.ShowNextPicture();
var
 JPG: TJPEGImage;
begin
 JPG := TJPEGImage.Create;
 JPG.LoadFromFile (GetNextPicName());
 Image1.Picture.Bitmap.Assign(JPG);
//   image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'Connect\01.jpg');
 JPG.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 ShowNextPicture();
end;

end.


Плохиш ©   (25.06.19 11:55[3]


> lewka ©   (18.06.19 23:53)

Ваш "Image1" лежит не на той форме, где вы его пытаетесь увидеть или имеет слишком маленькие размеры.

> dmk ©   (20.06.19 00:25) [1]

какой только чуши не прочитаешь от горекодеров.


lewka ©   (04.07.19 22:46[4]

Подключил GifImg. Все работает, но только если форма fsNormal, а на fsMDIForm не анимируется гифка. На fsNormal мне не перейти, т.к. многооконное приложение.


KSergey ©   (08.07.19 08:58[5]

Проверять мне лень, но что-то очень не верится в ваши слова.
Не бывает так.
Ищите ошибку в коде (например, отключили свойство анимироваться, если таковое есть)


brother ©   (14.08.19 14:27[6]

после JPG.Free;
form.repaint?


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо