Сохранение и загрузка параметров формы через IniFile
Не секрет, что у рядового пользователя, привыкшего к комфорту и разным
фентифлюшкам, в процессе работы может возникнуть желание изменить
внешний вид программы и какие-то параметры интерфейса. Возможно даже,
что данная потребность может возникнуть и в результате каких-то других
причин. Например, в программе предусмотрена настройка цвета (TColorDialog1) и размера главной формы, тогда вопрос: как сохранить новые параметры и загрузить их снова? Для этого воспользуемся IniFile.
Запись параметров осуществляется с помощью процедур:
Выбор процедуры соответсвенно зависит от типа записываемого значения.
Как правило указываются следующие параметры:
(const Section, Ident, Value: String);
Section - раздел, например форма или база данных, если хотите сохранить и ее параметры.
Ident - идентификатор, например размеры формы (Width, Height), название (Title) и т.д.
Value - само значение.
Для записи цвета воспользуемся
WriteInteger('Form', 'Color', Form1.Color);
Например, можно организовать сохранение параметров форм при закрытии программы:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var Ini: TIniFile; begin Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) ); try Ini.WriteInteger('Form', 'Color', Form1.Color); ini.WriteInteger('Form','Top',Top); ini.WriteInteger('Form','left',left); ini.WriteInteger('Form','Width',Width); ini.WriteInteger('Form','Height',Height); Ini.WriteBool( 'Form', 'InitMax', WindowState = wsMaximized ); finally Ini.Free; end; end;
При открытии загружаем параметры. Обратите внимание, что третьим параметром в процедурах мы указываем значения, которые идут по дефолту, т.е. если вдруг процедура ReadInteger( 'Form', 'Color', clCream) не обнаружит данные, то она вернет значение clCream.
procedure TForm1.FormShow(Sender: TObject); var Ini: TIniFile; begin Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) ); try Color:=Ini.ReadInteger( 'Form', 'Color', clCream); Top := Ini.ReadInteger( 'Form', 'Top', 0 ); Left := Ini.ReadInteger( 'Form', 'Left', 0 ); Width := Ini.ReadInteger( 'Form', 'Width', 950 ); Height := Ini.ReadInteger( 'Form', 'Height', 660 ); if Ini.ReadBool( 'Form', 'InitMax', false ) then WindowState := wsMaximized else WindowState := wsNormal; finally Ini.Free; end; end;
admin спс..очень нужная статья...можешь написать плиз статью о сохранении параметров базы....сам пытался не получилось ошибка о несоответствии типов код
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]