| 
| 
 | Вопрос # 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]:Ничего нового не узнал... Но всё равно спасибо...
 А дополнительные цвета по умолчанию не сохраняются - проверял...
 Сообщения пишуться только после всех выставленных оценок (админу...)
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |