![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
*.ini ;или что-то вроде этого [D5, Win95/98]
VAleksey © (2002-05-17 06:28:00)На форме есть куча переключателей (CheckBox - ов). Естественно, что во время работы программы у них происходит изменение св-ва Checked. Как мне сделать так, чтобы при запуске программы восстанавливались те св-ва переключателей, которые установил пользователь в своем последнем сеансе ?
Может есть какой - нибудь компонент с помощью которого можно это сделать ?
VAleksey (2002-05-17 11:05:00) [1]Ну вот -) и сразу давай все глумиться !
Будет охота напишу свое, а так ... хороший компонентик.
eSKey (2002-05-17 10:54:00) [2]Извращение... В точно такой-же ситуации я делал record, содержащий параметры и сохранял:
ParamRec.Param1:=CheckBox1.Checked;
и т.д.
А то сразу компоненты искать... :)
Cyril (2002-05-17 08:37:00) [3]Это конечно да. Лучше ini или реестр. Но просили сторонний компонент - пожакуйста ;)
panov (2002-05-17 08:34:00) [4]!!!!! То, что нужно 200 % !
И всегда таскать потом его за собой...
Cyril (2002-05-17 08:28:00) [5]
> !!!!! То, что нужно 200 % !
Я почему-то так и думал ;)
VAleksey (2002-05-17 08:08:00) [6]
> Cyril (17.05.02 07:20)
> В RxLib есть компонент FormStorage. Могу вымылить
!!!!! То, что нужно 200 % !
VAleksey (2002-05-17 07:57:00) [7]Thanks
panov (2002-05-17 07:48:00) [8]Попробуй использовать примерно набор таких функций.
Только добавь функции для созранения и чтения Boolean.
Метод решения:
for i := 0 to Form1.ComponentCount-1 do
begin
if (Form1.Components[i] is TCheckBox) then
begin
TCheckBox(Form1.Components[i]).Checked :=
Boolean(StrToInt(GetParm(Form1.Name,TCheckBox(Form1.Components[i]).Name))); //Чтение параметра из .ini
WriteParm(
Form1.Name,
TCheckBox(Form1.Components[i]).Name,IntToStr(Ord(CheckBox1.Checked))); //Для записи в .ini
end;
end;
function GetIniName: String;
begin
Result := Application.ExeName;
Result := ChangeFileExt(Result, ".ini");
end;
procedure GetParmSection(const aSec: String;var t: TStringList);
var
tIni: TIniFile;
begin
t.Clear;
tIni := TIniFile.Create(GetIniName);
tIni.ReadSectionValues(aSec,t);
tIni.Free;
end;
procedure DeleteSection(const aSec: String);
var
tIni: TIniFile;
begin
tIni := TIniFile.Create(GetIniName);
tIni.EraseSection(aSec);
tIni.Free;
end;
function GetParm(const aSec,aParm: String): String;
var
tIni: TIniFile;
begin
tIni := TIniFile.Create(GetIniName);
Result := tIni.ReadString(aSec,aParm,"");
tIni.Free;
end;
procedure WriteParm(const aSec,aParm,aValue: String);
var
tIni: TIniFile;
begin
tIni := TIniFile.Create(GetIniName);
tIni.WriteString(aSec,aParm,aValue);
tIni.Free;
end;
DenNNis (2002-05-17 07:44:00) [9]с помощью *.INI это легко и просто, или с помощью реестра
Cyril (2002-05-17 07:20:00) [10]В RxLib есть компонент FormStorage. Могу вымылить