С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
rustorkan
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 64
1

Загрузка изображения в TImage

26.06.2018, 17:57. Просмотров 469. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Не получается программно менять картинки в TImage.

Не работает. Ошибок нет, но картинка не появляется.

Delphi
1
2
3
4
5
6
begin
  If OpenDialog1.Execute then
  begin
    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;
0
Вложения
Тип файла: rar Смена картинки.rar (219.0 Кб, 4 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2018, 17:57
Ответы с готовыми решениями:

Сжатие изображения в TImage
Много тем облазил, много опробывал, всё не то Пишу просмотрщик изображений...

Загрузка, перемещение картинки в TImage
Привет. Пытаюсь сделать загрузку картинки для её перемещения,...

Как изменить размеры загруженного в TImage изображения?
Я попробовал вот так, но не пашет: ...

Загрузка изображения
Доброе время суток! Помогите пожалуйста. uses jpeg,Math; var ...

Загрузка звука и изображения в Delphi
Добрый вечер! Хочу поинтересоваться, как загрузить на форму звук и...

7
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
26.06.2018, 18:41 2
Delphi
1
2
3
4
5
If OpenDialog1.Execute then
  begin
    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);
    Form2.Show
  end;
0
rustorkan
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 64
26.06.2018, 23:26  [ТС] 3
Это заставка при запуске.
Нужно реализовать возможность менять ее из самой программы.
0
Вложения
Тип файла: rar Смена картинки.rar (220.7 Кб, 1 просмотров)
D1973
Модератор
3671 / 2647 / 1290
Регистрация: 21.01.2014
Сообщений: 11,221
Записей в блоге: 3
Завершенные тесты: 1
27.06.2018, 05:36 4
rustorkan, в момент выбора картинки из диалога - не надо ее пытаться запихнуть в Image на Form2: у Вас уже нет этой формы, она уничтожена, поэтому такая попытка не приведет ни к чему, кроме AV.
Надо записать полное имя выбранного файла в какой-то конфигурационный файл, который будет лежать рядом с Вашим ехе-шником.
В момент создания формы заставки проверяйте наличие этого конфигурационного файла. Если файла нет - заставка без картинки или с картинкой по умолчанию, каковую надо изначально загрузить... Если файл есть - считываем из него путь и проверяем его на корректность. Если путь корректен и таковой файл там присутствует - грузим его в Image, если нет - остается картинка по умолчанию.
Всего делов. Теперь при следующем старте у Вас новая картинка на заставке...
0
Вложения
Тип файла: rar Смена картинки.rar (130.1 Кб, 6 просмотров)
rustorkan
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 64
30.06.2018, 14:58  [ТС] 5
Incompatible types: 'String' and 'Boolean'
0
Вложения
Тип файла: rar Смена_картинки.rar (167.7 Кб, 5 просмотров)
D1973
Модератор
3671 / 2647 / 1290
Регистрация: 21.01.2014
Сообщений: 11,221
Записей в блоге: 3
Завершенные тесты: 1
30.06.2018, 16:32 6
rustorkan, Вот Вы бы сами подумали, что пишете...
Delphi
1
2
If not FileExists(s) then Exit;
s := (ExtractFilePath(ParamStr(0)) + 'splash.cfg');
Сначала проверяем, существует ли файл, имя которого записано в переменную s и только потом записываем в переменную это самое имя файла... А что до этого проверяли?

Добавлено через 5 минут
В своем примере я Вам вот такую красоту не писал
Delphi
1
CopyFile(PChar(OpenPictureDialog1.FileName) , (PChar(ExtractFilePath(ParamStr(0)) + CreateDir('splash') + ExtractFileName(OpenPictureDialog1.FileName))) , false);
поэтому сами с ней разбирайтесь...
Даю подсказку: функция CreateDir() возвращает значение логического типа...
0
rustorkan
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 64
30.06.2018, 16:56  [ТС] 7
Оставлю так.
Благодарю за помощь!
0
Вложения
Тип файла: rar Смена_картинки.rar (167.7 Кб, 3 просмотров)
rustorkan
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 64
11.07.2018, 01:31  [ТС] 8
На форму с заставкой:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm2.FormCreate(Sender: TObject);
var L : TStringList;
    cfgName, s : String;
 
begin
  cfgName := (ExtractFilePath(ParamStr(0)) + 'splash.cfg');
  If not FileExists(cfgName) then Exit;
  L := TStringList.Create;
  L.LoadFromFile(cfgName);
  s := '';
  if L.Count>0 then
     s := L.Strings[0];
  L.Free;
  If (s='') or not FileExists(s) then Exit;
  Image1.Picture.LoadFromFile(s);
end;
На кнопку:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.BitBtn1Click(Sender: TObject);
var L : TStringList;
  cfgName, PathToImage : string;
begin
  If not OpenPictureDialog1.Execute then Exit;
  PathToImage := ExtractFilePath(ParamStr(0))+'splash\';
  cfgName := ExtractFilePath(ParamStr(0)) + 'splash.cfg';
  if ForceDirectories(PathToImage) then begin
     CopyFile(PChar(OpenPictureDialog1.FileName) ,
              PChar(PathToImage + ExtractFileName(OpenPictureDialog1.FileName)), false);
    L := TStringList.Create;
    L.Add(PathToImage + ExtractFileName(OpenPictureDialog1.FileName));
    L.SaveToFile(cfgName);
    L.Free;
    ShowMessage('Заставка успешно изменена');
  end
  else begin
     ShowMessage('Не удалось создать папку '+PathToImage+' для хранения картинок');
  end;
end;
0
Вложения
Тип файла: rar Смена_заставки.rar (167.9 Кб, 1 просмотров)
11.07.2018, 01:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2018, 01:31

Мерцание компонента Timage и перемещение Timage при нажатии
Здравствуйте! Помогите убрать мерцание компонента Timage при изменении...

загрузка изображения
помогите пожалуйста сделать загрузку фото(обзор) через BitButton

TImage
Как наложить рамку на картинку в TImage? Т.е. что бы при нажатии на картинку,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru