![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сохранение в ini [D7, XP]
13 © (2006-02-11 13:20:00)На форме есть Checkbox1 и Toolbar1. Если chekbox1 выделен тогда показывать toolBar1юСохраняю все это дело в ini следующим образом.
procedure save;
begin
Ini:=Tinifile.create('primer.ini');
ini.WriteBool('Panel','toolbar1', checkbox1.checked);
end;
procedure load;
begin
Ini:=TInifile.Create('primer.ini');
checkbox1.checked:=ini.readbool('Panel','toolbar1', false );
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveParam;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
LoadParam;
end;
в обработчике checkbox1
procedure TMainForm.CheckBox1Click(Sender: TObject);
begin
if checkbox1.checked
then toolbar1.Visible:=true
else toolbar1.visible:=false;
end;
В primer.ini все сохраняется как надо, т.е. или 0 или 1, но вот при загрузке, toolbar1 в любом случае доступен.
Я понимаю что код не супер, но поидее должно работать/ Подскажите в чем ошибка. Заранее спасибо.
SergP (2006-02-11 18:13:00) [1]
> 13 (11.02.06 13:20)
Кстати (к сабжу отношения не имеет, но все же: зачем дважды создается Ini:=TInifile.Create('primer.ini'); и ни разу не уничтожается?
Гарри Поттер (2006-02-11 15:49:00) [2]Да пусть там и будет.
Но загрузке надо тоже определить состояние панели, так ведь?
procedure load;
begin
Ini:=TInifile.Create('primer.ini');
checkbox1.checked:=ini.readbool('Panel','toolbar1', false );
toolbar1.Visible := checkbox1.checked;
end;
13 (2006-02-11 15:05:00) [3]
> потому что отображение\скрытие панели у тебя происходит
> в событии CheckBox1Click.
А где же тогда сделать отображение/скрытие панели?
Гарри Поттер (2006-02-11 14:28:00) [4]потому что отображение\скрытие панели у тебя происходит в событии CheckBox1Click.
13 (2006-02-11 14:22:00) [5]этот пример работает но есть одно но.
если запустить приложение и снять галку затем закрыть его, то после повторного запуска панель можно отобразить только если поставить галку, убрать галку а затем снова поставить.
В чем проблема?
Гарри Поттер (2006-02-11 14:08:00) [6]А так будет работать?
procedure load;
begin
Ini:=TInifile.Create('primer.ini');
checkbox1.checked:=ini.readbool('Panel','toolbar1', false );
if checkbox1.checked
then toolbar1.Visible:=true
else toolbar1.visible:=false;
end;
если да, делай вывод.
13 (2006-02-11 13:55:00) [7]чего то я не догоняю
Гарри Поттер (2006-02-11 13:40:00) [8]Он у тебя отключается в CheckBox1Click а ты ее не выполняешь после procedure load;