Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2018, 12:03   #1
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию Загрузка изображения в TImage.

Здравствуйте!
Не получается программно менять картинки в TImage.
Вложения
Тип файла: rar Смена картинки.rar (223.6 Кб, 9 просмотров)
rustorkan вне форума Ответить с цитированием
Старый 26.06.2018, 12:32   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
if OpenDialog1.Execute // сначала надо ВЫПОЛНИТЬ выбор картинки
   then begin// и только потом если мы ВЫБРАЛИ(нажали там при выборе OK|выбрать|...)
... // ДЕЛАЕМ то что хотели
   end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.06.2018, 17:40   #3
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию

Так не работает.
rustorkan вне форума Ответить с цитированием
Старый 26.06.2018, 17:44   #4
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию

Не работает. Ошибок нет, но картинка не появляется.
Код:
begin
  If OpenDialog1.Execute then
  begin
    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;
Вложения
Тип файла: rar Смена картинки.rar (219.0 Кб, 4 просмотров)
rustorkan вне форума Ответить с цитированием
Старый 26.06.2018, 23:26   #5
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию

Это заставка при запуске.
Нужно реализовать возможность менять ее из самой программы.
Вложения
Тип файла: rar Смена картинки.rar (220.7 Кб, 4 просмотров)
rustorkan вне форума Ответить с цитированием
Старый 27.06.2018, 00:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

так, что ли?

Смена_картинки.rar

по сути - ничего не менял. Выкинул только мусор, который был в проекте (в Project1.dpr) по созданию Form2 и добавил Form2 в автосоздание.
ну ещё кинул в папку несколько картинок и в OpenDialog прописал фильтр.
и всё.

и, честно говоря, не понимаю, в чём у Вас были проблемы с
Код:
    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);
??
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2018, 00:58   #7
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию

Картинка показывается при запуске приложения.
Хранится в TImage на Form2.
Нужно реализовать возможность менять заставку обычному пользователю непосредственно из самого приложения.
Чтобы, сменив картинку через интерфейс программы, можно было увидеть новую заставку при следующем запуске приложения.
Вложения
Тип файла: rar Смена картинки.rar (599.4 Кб, 5 просмотров)

Последний раз редактировалось rustorkan; 27.06.2018 в 01:01.
rustorkan вне форума Ответить с цитированием
Старый 27.06.2018, 02:13   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от rustorkan Посмотреть сообщение
Это заставка при запуске.
Не увидел ни в одном из приложенных проектов ничего похожего на заставку. Но это не моё дело.

Цитата:
Сообщение от rustorkan Посмотреть сообщение
Нужно реализовать возможность менять заставку обычному пользователю непосредственно из самого приложения.
Чтобы, сменив картинку через интерфейс программы, можно было увидеть новую заставку при следующем запуске приложения.
При выборе обычного пользователя непосредственно через интерфейс программы, запоминайте имя выбранного файла картинки в ини-файле, реестре, самописном файле конфигурации программы или ещё где придумаете. А в OnCreate формы Form2 загружайте картинку из этого файла.
northener вне форума Ответить с цитированием
Старый 30.06.2018, 14:58   #9
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 53
По умолчанию

Incompatible types: 'String' and 'Boolean'
Вложения
Тип файла: rar Смена_картинки.rar (167.7 Кб, 6 просмотров)
rustorkan вне форума Ответить с цитированием
Старый 30.06.2018, 20:30   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну так бред же написан, вот компилятор и не может понять.
кстати, я тоже не совсем догоняю, что Вы хотели сказать вот этой строчкой:
Цитата:
Код:
  CopyFile(PChar(OpenPictureDialog1.FileName) , 
(PChar(ExtractFilePath(ParamStr(0)) + CreateDir('splash') + ExtractFileName(OpenPictureDialog1.FileName))) , false);

если что, то CreateDir() - это функция, она возвращает, успешно создан каталог или нет.
см. например, CreateDir
зачем Вы результат операции пытаетесь к пути добавить?!

и далее, аналогично:
Цитата:
Код:
  L := TStringList.Create;
  L.Add(ExtractFilePath(ParamStr(0)) + CreateDir('splash') + ExtractFileName(OpenPictureDialog1.FileName));
  L.SaveToFile(ExtractFilePath(ParamStr(0)) + 'splash.cfg');
  L.Free;
и зачем Вы картинки к себе в папку с программой пытаетесь сохранить?
Вы в курсе, что у обычного пользователя в каталог, где лежат Program Files нет доступа?
Это пагубная практика.
Да и смысл не особо понятен - пользовател указал, какую картинку хочет видет, такую и показывайте.
Зачем её куда-то сохранять?!

в Unit2 (форму с заставкой)
Код:
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;
в Unit1 (на кнопку смены картинки)
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var L : TStringList;
//  cfgName, PathToImage : string;
begin
  If not OpenPictureDialog1.Execute then Exit;
  L := TStringList.Create;
  L.Add(OpenPictureDialog1.FileName);
  L.SaveToFile(ExtractFilePath(ParamStr(0)) + 'splash.cfg');
  L.Free;
  ShowMessage('Заставка успешно изменена');
end;

Последний раз редактировалось Serge_Bliznykov; 30.06.2018 в 20:46.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сжатие изображения в TImage dwp_prof Мультимедиа в Delphi 2 21.04.2012 22:16
TImage определения типа изображения Anubys C++ Builder 2 06.04.2012 23:02
Загрузка GIF изображения в TImage из TMemoryStream Crystallon Общие вопросы Delphi 0 28.12.2010 12:16
Загрузка изображения для создаваемого TImage LynxRufus Общие вопросы Delphi 3 20.01.2010 08:07
Загрузка в TImage program123 Общие вопросы Delphi 4 06.12.2009 15:53