Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

RegIni.Free;



Для примера давай напишем программку, которая будет сохранять свои параметры при выходе и восстанавливать позицию и размер при запуске.

Я создал простейшую форму с одной только кнопкой «Закрыть».

Теперь я создал обработчик события OnShow, в котором я должен восстановить параметры программы, которые были после последнего закрытия проги. Чтобы не загромождать этот обработчик я просто написал вызов метода LoadProgParam. Этого метода пока не существует, но мы его скоро напишем.

procedure TForm1.FormShow(Sender: TObject); begin LoadProgParam; end;

Теперь я создал обработчик события OnClose. Здесь будут сохраняться параметры окна. Я опять не буду ничего загромождать и просто вызову метод SaveProgParam.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin SaveProgParam; end;

Если ты сейчас попытаешься скомпилировать прогу, то получишь три ошибки. Компилятор Delphi проругается на то, что не может найти процедуры LoadProgParam и SaveProgParam. Давай напишем их. Для этого подымись в начало модуля и найди раздел описания закрытых процедур private. Опиши там эти две процедуры без всяких параметров:

private { Private declarations } procedure LoadProgParam; procedure SaveProgParam;

Теперь нажми сочетание клавиш Ctrl+Shift+C и Delphi создаст заготовки под эти процедуры:

procedure TForm1.LoadProgParam;
begin
end;

procedure TForm1.SaveProgParam;
begin
end;

Теперь напишем сами эти процедуры. Начнём с SaveProgParam:

procedure TForm1.SaveProgParam; var FIniFile: TRegIniFile;

begin FIniFile:= TRegIniFile.Create('Software'); // Инициализирую реестр

FIniFile.OpenKey('VR',true); // Открываю раздел FIniFile.OpenKey('VR-Online',true); // Открываю ещё один раздел

if WindowState=wsNormal then

begin
FIniFile.WriteInteger('Option', 'Width', Width);
FIniFile.WriteInteger('Option', 'Heigth', Height);
FIniFile.WriteInteger('Option', 'Left', Left);
FIniFile.WriteInteger('Option', 'Top', Top);

End;

FIniFile.WriteInteger('Option', 'WinState', Integer(WindowState));

FIniFile.Free; // Освобождаю реестр end;

После инициализации реестра и подготовки разделов я делаю проверку, в каком состоянии находится окно. Если WindowState равно wsNormal, то я сохраняю параметры окна. Если нет, то этого делать не надо. Если у тебя стоит разрешение экрана 800х600, по при максимизированном окне значение ширины окна будет 802, а высоты 602. Эти значения больше реального разрешения и если ты установишь их при загрузке, то изменить размеры окна мышкой будет очень трудно.

После этого я сохраняю состояние окна - WindowState. Так как оно имеет тип ТWindowState, то мне приходится приводить этот тип к Integer с помощью Integer(WindowState).

Процедура LoadProgParam работает таким же образом:





Дата публикования: 2014-11-04; Прочитано: 435 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...