Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить/считать значение TMemuItem?   Найти похожие ветки 

 
Stepper   (2008-02-27 06:11) [0]

При закрытии/открытии приложения! К примеру в ini-файле!


 
Смирнов   (2008-02-27 06:15) [1]

смотри методы TIniFile


 
Stepper   (2008-02-27 07:05) [2]

function ReadIni(ASection, AString: string): string;
var
sIniFile: TIniFile;
sPath: string[60];
const
S = "xyz"; { стандартная строка для выдачи ошибок чтения }
begin
GetDir(0, sPath); { текущий каталог }
sIniFile := TIniFile.Create(sPath + "\Name.INI");
Result := sIniFile.ReadString(ASection, AString, S); { [Section] String=Value}
sIniFile.Free;
end;

procedure WriteIni(ASection, AString, AValue: string);
var
sIniFile: TIniFile;
sPath: string[60];
begin
GetDir(0, sPath); { текущий каталог }
sIniFile := TIniFile.Create(sPath + "\Name.INI");
sIniFile.WriteString(ASection, AString, AValue); { [Section] String=Value }
sIniFile.Free;
end;


Как сие Использовать применительно к TMemuItem?


 
Семеныч   (2008-02-27 07:12) [3]

> Stepper   (27.02.08 06:11)

В INI-файле информация хранится в таком формате:

[имя_секции]
параметр=значение
параметр=значение
...

Пусть имя секции - это имя TMenuItem, параметры - это имена его свойств, а значения - соответственно, значения этих свойств. Тогда, задача решается очень просто: читаем параметры в секции с известным именем и выставляем свойствам TMenuItem прочитанные (как строки) значения.

Перед присвоением значения придется преобразовывать его строковое представление к нужному типу. Функции преобразования называются StrToXxx (StrToInt и т.п.), а чтобы определить, какую из них нужно вызвать, надо определить тип свойства. Для этого можно использовать PropType из модуля TypInfo, а для установки свойства по его строковому имени удобно использовать функции SetXxxProp (SeOrdProp и т.п.) из того же модуля.

Остальное нужно действительно посмотреть в справке по TIniFile или TRegIniFile. И еще в исходниках модуля TypInfo.


 
Stepper   (2008-02-27 09:13) [4]

Вот использую сие и все нормально Записывает/Считывает в/из Ini-фаил


procedure WriteIniDataBool(Section, Ident : string; Value : boolean);
begin
IniFile := TIniFile.Create(Path + "\config.ini");
IniFile.WriteBool(Section, Ident, Value);
IniFile.Free;
end;

function ReadIniDataBool(Section, Ident : string; Default : boolean = false) : boolean;
begin
IniFile := TIniFile.Create(Path + "\config.ini");
Result := IniFile.ReadBool(Section, Ident, Default);
IniFile.Free;

end;


Использую...


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
...
 if N1.Checked = true Then
 WriteIniDataBool("Menu", "AutoSave", True) else
 WriteIniDataBool("Menu", "AutoSave", False);
...
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
 if ReadIniDataBool("Menu", "AutoSave", True) then
 N1.Checked := True else N1.Checked := False;
...
end;


Правильно или можно оптимизировать?


 
Stepper   (2008-02-27 09:29) [5]

Вместо N1.Checked я использую N1.AutoCheck и всеравно тот же результат!

В ini пишет не зависимо от AutoCheck следующее

[Menu]
AutoSave=1


Что по незнанию я не правильно пишу?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
3-1192440706
Kolan
2007-10-15 13:31
2008.03.23
Форма выбора сервера в Query Analyzer е стандартное?


2-1203486854
серж
2008-02-20 08:54
2008.03.23
ComboBox


2-1204022473
Andrewtitoff
2008-02-26 13:41
2008.03.23
Как правильно работать с базами Access ?


8-1177430973
Sholah_Weras
2007-04-24 20:09
2008.03.23
PNG с альфа каналом в DDS.


15-1202729706
{RASkov}
2008-02-11 14:35
2008.03.23
Запомнить параметры для каждой папки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский