|
Вопрос # 45/ вопрос открыт / |
|
Здравствуйте эксперты!
Вот решил задать вопрос... по моему интересный... главное - новый...
Узнать, конечно, ответ можно и самому, но долго...
Вопрос: Как у диалогов (стандартных) сохранить некоторые настройки в ini-файл (пользуюсь ini, так как легко переносить с компа на комп).
Например, у Открытия\Сохранения - Расположение - плитка, значки, список и т.д.
У выбора цвета - дополнительные цвета...
Спасибо за ответы (заранее)...
 |
Вопрос задал: feenords (статус: 1-ый класс)
Вопрос отправлен: 19 июня 2006, 01:55
Состояние вопроса: открыт, ответов: 3.
|
Ответ #1. Отвечает эксперт: Dron
Насколько мне известно, вид отображения объектов (значки, таблица и пр.) сохранить нельзя - это от пользователя зависит, да и дополнительные цвета тоже... Однако, не раз замечал, что эти параметры действительно восстанавливаются при следующих запусках программы. В частности, каталог, из которого был выбран файл, автоматически открывается при следующем запуске. Наверное Windows самостоятельно занимается сохранением этих настроек для каждого приложения.
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 19 июня 2006, 11:47
Оценка за ответ: 4
|
Ответ #2. Отвечает эксперт: bruder
Здравствуйте, feenords!
Что то я не припомню как менять значения в меню "ВИД" (плитка, значки... если такое вообще возможно). А вот с расположением всё просто. При закрытии диалога впиши Листинг1. А при его загрузке Листинг2.
Для дополнительных цветов у ColorDialog'a есть свойство CustomColors. (Всё аналогично)
Приложение: Переключить в обычный режим- Uses IniFiles;
- var ini: TIniFile;
-
-
- ini:=TIniFile.Create('bla.bla');
- ini.WriteString('1','2',ExtractFilePath(OpenDialog1.FileName));
- ini.Free;
-
-
- ini:=TIniFile.Create('bla.bla');
- OpenDialog1.InitialDir:=ini.ReadString('1','2','C:');
- ini.Free;
 |
Ответ отправил: bruder (статус: 4-ый класс)
Время отправки: 19 июня 2006, 12:08
Оценка за ответ: 4
|
Ответ #3. Отвечает эксперт: Евгений В
Ну это не сложно. Смотря, конечно что ты хочешь сохранять в ini.
Если это например расположение объекта на экране или размеры, то можно просто сохранять в него целые числа расположения, размеров и т.п. В приложении смотри упрощённый пример (из одной статьи).
А вообще посмотри вот эту инфу из одной статьи, может пригодится:
Constructor Create('d:\test.INI');
Создать экземпляр объекта и связать его с файлом. Если такого файла нет, то он создается, но только тогда, когда произведете в него запись информации.
WriteBool(const Section, Ident: string; Value: Boolean);
Присвоить элементу с именем Ident раздела Section значение типа boolean
WriteInteger(const Section, Ident: string; Value: Longint);
Присвоить элементу с именем Ident раздела Section значение типа Longint
WriteString(const Section, Ident, Value: string);
Присвоить элементу с именем Ident раздела Section значение типа String
ReadSection (const Section: string; Strings: TStrings);
Прочитать имена всех корректно описанных переменных раздела Section (некорректно описанные опускаются)
ReadSectionValues(const Section: string; Strings: TStrings);
Прочитать имена и значения всех корректно описанных переменных раздела Section. Формат :
имя_переменной = значение
EraseSection(const Section: string);
Удалить раздел Section со всем содержимым
ReadBool(const Section, Ident: string; Default: Boolean): Boolean;
Прочитать значение переменной типа Boolean раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.
ReadInteger(const Section, Ident: string; Default: Longint): Longint;
Прочитать значение переменной типа Longint раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.
ReadString(const Section, Ident, Default: string): string;
Прочитать значение переменной типа String раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.
Free;
Закрыть и освободить ресурс. Необходимо вызвать при завершении работы с INI файлом
Property Values[const Name: string]: string;
Доступ к существующему параметру по имени Name
Вообще, именно то, что ты хочешь сохранить наверное в ini нельзя. Скорее всего тут надо в низкоуровневое погружаться, выдирать эти свойства и сохранять побайтам в файл. Но я не знаю...
Приложение: Переключить в обычный режим- IniFile:TIniFile;
-
- IniFile := TIniFile.Create('d:test.INI'); {
Создали
экземпляр
объекта }
-
- IniFile.WriteInteger('Options', 'Level', 3);
{записали
значение в
поле}
-
- IniFile.Free; {Закрыли
файл,
уничтожили
объект и
освободили
память }
-
-
 |
Ответ отправил: Евгений В (статус: 1-ый класс)
Время отправки: 19 июня 2006, 22:49
Оценка за ответ: 4
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 20 июня 2006, 00:21; участников в обсуждении: 1.
|
feenords (статус: 1-ый класс), 20 июня 2006, 00:21 [#1]:
Ничего нового не узнал...
Но всё равно спасибо...
А дополнительные цвета по умолчанию не сохраняются - проверял...
Сообщения пишуться только после всех выставленных оценок (админу...)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|