Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите с сохранением настроек проги (http://forum.oszone.net/showthread.php?t=49326)

Denhell 15-05-2005 19:12 324363

Помогите с сохранением настроек проги
 
Помогите, как сделать так, чтобы прога сохраняла значения CheckBox. Т.е. запускаю я прогу, помечаю CheckBox и закрываю прогу. Открываю вновь, и CheckBox стоит помеченным.
Пожалуйста растолкуйте поподробнее.

Savant 15-05-2005 19:42 324371

Среда разработки?

Denhell 15-05-2005 20:16 324378

Ах да, простите Borland Delphi 6.

Savant 16-05-2005 03:17 324428

Есть минимум 2 популярных способа:

1. Создание потомка класса и в его конструкторе/деструкторе загружать/сохранять информацию. В данном случае такой подход имхо громозок.

2. Обработка событий OnCreate и OnDestroy формы, на которой расположен контрол. Например следующим образом:
Код:

procedure TForm1.FormCreate(Sender: TObject);
var
  F: TiniFile;
begin
  // открытие конфигурационного файла
  F := TiniFile.Create(Copy(Application.ExeName, 1, Length(Application.ExeName) - Length(ExtractFileExt(Application.ExeName))) + '.cfg');
  // чтение значения для контрола CheckBox1
  CheckBox1.Checked := F.ReadBool('main', CheckBox1.Name, False); // третий параметр - значение по умолчанию (напр. при первом запуске программы)
  // закрытие файла
  F.Free
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  F: TiniFile;
begin
  F := TiniFile.Create(Copy(Application.ExeName, 1, Length(Application.ExeName) - Length(ExtractFileExt(Application.ExeName))) + '.cfg');
  F.WriteBool('main', CheckBox1.Name, CheckBox1.Checked);
  F.Free
end;

Также значения можно хранить и в реестре. Реализация мало чем отличается от данной.


Время: 15:48.

Время: 15:48.
© OSzone.net 2001-