Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 344

/ вопрос открыт /

Здравствуйте! Подскажите как можно реализовать хранение и изменение данных (например, расположение и размер окна) в самом exe-файле?

Чарик Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Чарик (статус: Посетитель)
Вопрос отправлен: 20 июня 2010, 01:14
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 21 июня 2010, 00:32; участников в обсуждении: 4.
SOA

SOA (статус: Посетитель), 20 июня 2010, 06:31 [#1]:

Ищи информацию по теме работа с ресурсами.
На мой взгляд неплохая книга Ревич Нестандартные приемы программирования в Delphi.
Maksell

Maksell (статус: Посетитель), 20 июня 2010, 09:21 [#2]:

в откомпелированном файле вообще изменять инфу лучше не стоет - может привести к нежелательным последствиям...
для реализации хранения изменеий существуют файлы конфигурации и\или реестр. если есть такая необходимость, как настраивать параметры формы и т.п., пользуйся ими!!!
для хранения изменений в конфигах - есть класс TINIFILE, для реестра - TREGISTRY. они очень похожи в использовании и являются стандартными средствами пользования в среде DELPHI
var ini_File: TIniFile;
... для чтения настроек:
ini_File := TIniFile.Create('.\file_Name.Conf_Ext');
with ini_File do begin
  Width := ReadInteger('Настройки формы', 'width', width);
  Heigth := ReadInteger('Настройки формы', 'height', height);
  Top := ReadInteger('Настройки формы', 'top', top);
  Left := ReadInteger('Настройки формы', 'left', left);
  free; // незабываем освободить память, после завершения работы с ресурсом
end;
... для записи настроек:
ini_File := TIniFile.Create('.\file_Name.Conf_Ext');
with ini_File do begin
  WriteInteger('Настройки формы', 'width', width);
  WriteInteger('Настройки формы', 'height', height);
  WriteInteger('Настройки формы', 'top', top);
  WriteInteger('Настройки формы', 'left', left);
  free; // незабываем освободить память, после завершения работы с ресурсом
end;
Ищи и F1 тебе в помощь ;)
Si numqum quaeris, raro magister eris!
Чарик

Чарик (статус: Посетитель), 20 июня 2010, 18:16 [#3]:

SOA: Книгу нашел, буду читать.
Maksell: Хочется чтобы был только exe-шник...
SOA

SOA (статус: Посетитель), 20 июня 2010, 18:42 [#4]:

Можно еще тут глянуть
http://msdn.microsoft.com/en-us/library/ff468902(VS.85).aspx
Вадим К

Вадим К (статус: Академик), 20 июня 2010, 23:14 [#5]:

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

НО! В новомодных виндах (виста и старше) вполне может так случиться, что файл будет недоступным для записи. И тогда ничего не поможет.
Галочка "подтверждения прочтения" - вселенское зло.
Maksell

Maksell (статус: Посетитель), 21 июня 2010, 00:32 [#6]:

Чарик:
>>Хочется чтобы был только exe-шник...
исполняемый файл, в данном варианте - ехе-шник, в момент выполнения становится недоступным для редактирования
Опяь же, в случае когда у пользователя нет админовских прав, к папке с программой т.ж. могут олтсутствовать права достуав.
Si numqum quaeris, raro magister eris!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.02 сек.