Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

Код:

if OpenDialog1.Execute // сначала надо ВЫПОЛНИТЬ выбор картинки
   then begin// и только потом если мы ВЫБРАЛИ(нажали там при выборе OK|выбрать|...)
... // ДЕЛАЕМ то что хотели
   end;

__________________
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме   Ответить с цитированием
Старый 26.06.2018, 18:40   #3
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 49
Репутация: 10
По умолчанию

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

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

begin
  If OpenDialog1.Execute then
  begin
    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;

Вложения
Тип файла: rar Смена картинки.rar (219.0 Кб, 1 просмотров)
rustorkan вне форума   Ответить с цитированием
Старый 27.06.2018, 00:26   #5
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 49
Репутация: 10
По умолчанию

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

так, что ли?

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

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

и, честно говоря, не понимаю, в чём у Вас были проблемы с
Код:

    Form2.Image1.Picture.LoadFromFile(OpenDialog1.FileName);

??
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 27.06.2018, 01:58   #7
rustorkan
Пользователь
 
Регистрация: 07.06.2017
Сообщений: 49
Репутация: 10
По умолчанию

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

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

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

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

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

ну так бред же написан, вот компилятор и не может понять.
кстати, я тоже не совсем догоняю, что Вы хотели сказать вот этой строчкой:
Цитата:
Код:

  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 в 21:46.
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сжатие изображения в 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 13:16
Загрузка изображения для создаваемого TImage LynxRufus Общие вопросы Delphi 3 20.01.2010 09:07
Загрузка в TImage program123 Общие вопросы Delphi 4 06.12.2009 16:53


22:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru