рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Закрываем поиск

Закрываем поиск - раздел Образование, Работа с массивами динамические массивы Findclose(Searchrec); End; ...

FindClose(SearchRec); end;

На компакт диске, в директорииПримерыГлава 10FindFileты можешь увидеть пример этой программы.


 

 

10.11 Работа с системным реестром

этой главе я хочу тебе рассказать, как можно работать с системным реестром. Лично я люблю для этого использовать объект TRegIniFile. Он достаточно прост и удобен, поэтому я и тебе советую работать с ним. Для простого

сохранения каких-то параметров программы этого объекта будет достаточно.

Давай разберёмся с этим объектом. Допустим, что у нас есть переменная RegIni типа TRegIniFile. Чтобы её инициализировать, нужно присвоить переменной результат вызова метода Create объекта TRegIniFile:

RegIni:=TRegIniFile.Create('Software');

По умолчанию, при инициализации ты получаешь доступ к разделу HKEY_CURRENT_USER. Методу Create нужно передать только один параметр – имя подраздела, который будет сразу открыт в разделе HKEY_CURRENT_USER.

Итак, после выполнения этого кода мы получили доступ к разделу HKEY_CURRENT_USERSoftware. А что если ты хочешь открыть ещё подраздел и получить доступ к HKEY_CURRENT_USERSoftwareMicrosoft. Для открытия подразделов у объекта TRegIniFile есть метод OpenKey. Вот так можно открыть подраздел «Microsoft»:

RegIni.OpenKey('Microsoft', true);

У метода OpenKey уже два параметра:

1. 1. Имя подраздела, который надо открыть.

2. 2. Надо ли создавать подраздел, если он не существует.

 

Если в качестве второго параметра передать false, и подраздел не будет существовать, то произойдёт ошибка и ничего не откроется, т.е. ты останешься там же, где и был. Ну а если мы передадим true и раздел не будет существовать, то программа автоматически создаст его.

Теперь разберёмся с чтением и записью. Для чтения есть несколько методов:

. • ReadBool – прочитать булево значение (true или false).

. • ReadInteger – прочитать целое число.

. • ReadString – прочитать строку.

 

Все они очень похожи и имеют одинаковое количество параметров. Единственная разница – в типе третьего параметра. Давай подробно рассмотрим ReadString, а остальное уже будем использовать по аналогии с этим методом.

У методов чтения есть три параметра:

1. 1. Имя подраздела, в из которого мы хотим прочитать. Допустим, что мы открыли раздел Microsoft и находимся сейчас в реестре по адресу HKEY_CURRENT_USERSoftware Microsoft. Если мы захотим прочитать строку из подраздела HKEY_CURRENT_USERSoftwareMicrosoft MySoftware, то в качестве первого параметра ты должен написать MySoftware.

2. 2. Имя параметра. Если ты хочешь, чтобы параметр звался как Path, то укажи Path :).

3. 3. Значение, которое будет использоваться по умолчанию, если такой параметр не существует. Для метода ReadString это должна быть строка или переменная типа строка.

 

Сразу хочу предупредить, что даже если ты будешь читать или записывать в реестр число с помощью методов WriteInteger или ReadInteger, объект TRegIniFile всё равно будет сохранять и читать эти числа как строки. А только после прочтения преобразовывать в число. Так что TRegIniFile реально хранит все данные в реестре только как строки. Если ты хочешь сохранять числа в реестре как самые простые числа, то нужно воспользоваться объектом TRegistry.

Итак, давай взглянём на команду чтения в действии:

 

Str:=RegIni.ReadString('MySoftware', 'Path', 'c:');

В этом примере я читаю из подраздела MySoftware параметр Path. Если такой параметр не существует и не может вернуть значение, то будет возвращено значение по умолчанию «С:». Результат чтения я записываю в переменную Str.

Точно так же происходит и запись, только в качестве третьего параметра нам надо указать не значение по умолчанию, а значение, которое надо записать. Для записи используются так же три метода:

. • WtiteBool – записать булево значение (true или false).

. • WtiteInteger – записать целое число.

. • WtiteString – записать строку.

 

Простейший пример записи выглядит так:

RegIni.WriteString('MySoftware', 'Path', 'c:Windows');

В этом примере я записываю в подраздел MySoftware параметр Path. Значение, которое будет записано равно третьему параметру - «С:Windows».

После всех операций с реестром, его нужно закрыть с помощью метода Free:

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;

– Конец работы –

Эта тема принадлежит разделу:

Работа с массивами динамические массивы

Глава Основные при мы кодинга...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Закрываем поиск

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

For i:=0 to High(r)-1 do begin
r[i]:=i*i; ListBox1.Items.Add(IntToStr(i)+' в квадрате ='+IntToStr(r[i])); end; В области объявлений VAR я объявил две перем

For i:=0 to High(r)-1 do
r[i]:=i*i; SetLength(r,20); for i:=10 to High(r)-1 do r[i]:=i*i; for i:=0 to High(r) do ListBox1.Items.Add(IntToStr(i)+' в квадрате ='+In

Var f:TStringList; //Переменная типа объект TStringList.
begin f:= TStringList.Create(); f.Free; end; В этом примере я только создал новый объект и сразу уничтожил, не используя его. Давай снов

Var f:TStrings; //Переменная типа объект TStringList.
begin f:= TStringList.Create(); f.Free; end; В этом примере я объявил переменную типа TStrings, но при создании проинициализировал её объе

F.Add(‘Прощай’);// Добавляю новую строку
f.SaveToFile(‘c:filename.txt’); // Сохраняю результат f.Free; end; На всякий случай, прежде чем изменить пятую строку я проверяю, есть ли в файле эти пять строк. Ес

Преобразование целых чисел в строку и обратно
Начну я с рассмотрения специальных функций для преобразования несовместимых типов. Самое частое, что может тебе понадобиться – преобразование строк в число и обратно. Допустим, что тебе нужно напис

Begin ch:=StrToInt(Edit1.Text); // Преобразовываю Edit1.Text в число ch:=ch+1; Edit1.Text:=IntToStr(ch); // Преобразовываю сh в строку
end; Когда ты преобразовываешь строку в число, ты должен быть уверен в том, что строка содержит число. Если в строке будет хоть один символ не относящейся к цифре, то во в

Преобразование даты в строку и обратно
Теперь познакомимся с преобразованием даты. Для этого есть несколько функций: 1. 1. DateToStr – преобразовывает дату в строку. Единственный параметр, который надо указать – переменн

Преобразование вещественных чисел
Теперь перейдём к числам с плавающей точкой. Когда ты строишь математику в своей программе, то можешь столкнуться с вещественными числами. Например, если у тебя есть какая-то формула, в которой исп

Преобразование строк
Допустим, что у тебя есть строка типа String и ты хочешь её преобразовать в PChar. Для такого преобразования нужно написать требуемый тебе тип и в скобках указать свою строковую перем

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Begin ws:=New(PWindowSize); // Выделяем память ws.Left:=10; // Изменяем одно свойство Dispose(ws); // Уничтожаем память
end; В этом примере я объявил переменную ws типа PWindowsSize. Это значит, что ws – это всего лишь указатель и в самом начале он нулевой. Теперь нам н

If WindowState=wsNormal then
begin FIniFile.WriteInteger('Option', 'Width', Width); FIniFile.WriteInteger('Option', 'Heigth', Height); FIniFile.WriteInteger('Option', 'Left', Left); FIniFile.WriteIn

Procedure TForm1.LoadProgParam; var
FIniFile: TRegIniFile; begin FIniFile := TRegIniFile.Create('Software'); FIniFile.OpenKey('VR',true); FIniFile.OpenKey('VR-Online',true);

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги