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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2012, 14:45   #1
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
Радость Image. внедрение картинки в тело программы.

Всем привет.
Такой вероятно немного глупый вопросик.
Существует программка, состоящая только из exe-файла. На ней есть картинка, которую можно изменить, посредством такого вот нехитрого кода:

procedure TForm1.Changepic1Click(Sender: TObject);
begin
if(OpenPictureDialog1.Execute) then
RxGIFAnimator1.Image.LoadFromFile(O penPictureDialog1.FileName);
end;

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

Догадываюсь, что такая проблема обычно решается через сохранение в отдельном файле и вывод графического изображения.
Можно ли этот процесс все же реализовать через внедрение новой выбранной картинки в тело exe-файла, каждый раз когда пользователь подгружает другую картинку в программку?
Pavarotti вне форума Ответить с цитированием
Старый 19.01.2012, 15:33   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если по простому ответить - то нет - нельзя.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.01.2012, 15:52   #3
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Pavarotti а не проще ли сохранить путь и название картинки например в ini файл либо в реестр, а затем при перезапуске программа будет загружать нужную картинку из информации на нее с ini файла или реестра.
Или вы хотите внедрить ее в чужое тело?
Судя по вашему коду, вы картинку грузите в свой поект, так есть ли смысл внедрения?

Ну а проще сделать примерно так:
Код:
 //прочитать текстовые данные из ini файла
Function ReadStringIniFile(const IniFile, Section, Ident: String; Default: String=''): String;
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(IniFile);
  result := Ini.ReadString(Section, Ident, Default);
  Ini.Free;
end;

 //Записать текстовые данные из ini файла
procedure WriteStringIniFile(const IniFile, Section, Ident: String; Default: String);
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(IniFile);
  Ini.WriteString(Section, Ident, Default);
  Ini.Free;
end;

procedure TForm1.Changepic1Click(Sender: TObject);
begin
if(OpenPictureDialog1.Execute) then
begin
//Сохраняем инфу о картинке в ini файл
WriteStringIniFile('MyIniFile.ini', 'OptionImage', 'Image', OpenPictureDialog1.FileName);
RxGIFAnimator1.Image.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
FileName: String;
begin
//Читаем инфу о картинке с ini файла
FileName:=ReadStringIniFile('MyIniFile.ini', 'OptionImage', 'Image', '');
if FileExists(FileName) then
RxGIFAnimator1.Image.LoadFromFile(FileName);
end;

Последний раз редактировалось Aliens_wolfs; 19.01.2012 в 16:10.
Aliens_wolfs вне форума Ответить с цитированием
Старый 19.01.2012, 16:40   #4
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
По умолчанию

Большое спасибо за советы. В конечном итоге я так и реализовал прогу через лоады и сэйвы.

procedure TForm1.Changepic1Click(Sender: TObject);
begin
if(OpenPictureDialog1.Execute) then
RxGIFAnimator1.Image.LoadFromFile(O penPictureDialog1.FileName);
if not DirectoryExists('C:\Temp') then ForceDirectories('C:\Temp');
if FileExists('C:\Temp\1989.gif') then DeleteFile('C:\Temp\1989.gif');
RxGIFAnimator1.Image.SaveToFile('C: \Temp\1989.gif');
RxGIFAnimator1.Image.LoadFromFile(' C:\Temp\1989.gif');
end;
Pavarotti вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение картинки с компонента Image Karina89 Помощь студентам 7 25.05.2011 20:37
маштабирование картинки в image wulf_01 Помощь студентам 4 15.05.2011 19:51
нужно найти ошибку, правильно написать тело программы. ВДПУ Помощь студентам 2 02.03.2011 17:41
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54
очистка image от картинки Victor[famas] Общие вопросы Delphi 9 13.02.2008 00:26