Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

*.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. Могу вымылить


Наверх

Титульная страница Поиск, карта сайта Написать письмо