Предводителев Сергей
Работа с системным реестром в Delphi достаточно простая. Использование реестра имеет некоторые преимущества перед INI-файлами. Они заключаются в том, что реестр - более стабильный, и у него нет ограничения на размер.
В Delphi для работы с реестром служит модуль Registry. Он предоставляет программисту методы для открытия, закрытия, сохранения, перемещения, копирования и удаления ключей и разделов реестра.
Итак, разберём использование Registry на небольшом примере: при закрытии программы будем сохранять положение и размеры формы в реестре, а при запуске соответственно считывать их. Для начала допишем Registry в раздел uses.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry;
Теперь создадим обработчик события на закрытие формы:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
reg:TRegistry; //1
begin
reg:=TRegistry.Create; //2
reg.RootKey:=HKEY_CURRENT_USER; //3
reg.OpenKey('softwarereg_test',true); //4
reg.WriteInteger('top',form1.Top); //5
reg.WriteInteger('left',form1.Left); //6
reg.WriteInteger('width',form1.Width); //7
reg.WriteInteger('height',form1.Height); //8
reg.CloseKey; //9
reg.free; //10
end;
Разберём что же у нас тут делается:
1) Объявляем переменную reg типа TRegistry - именно этот тип и служит для работы с реестром.
2) Инициализируем переменную для работы.
3) Свойство RootKey определяет корневой раздел.
4) Метод OpenKey служит для открытия раздела. Первый параметр - это собственно рздел для открытия, а второй параметр определяет создавать ли этот раздел если его не существует.
5 - 8 ) Здесь мы сохраняем нужные параметры формы в определённые ключи реестра. Для этого служат следующие методы:
WriteBinaryData(const Name: String; var Buffer; BufSize: Integer);
WriteBool(const Name: String; Value: Boolean);
WriteCurrency(const Name: String; Value: Currency);
WriteDate(const Name: String; Value: TDateTime);
WriteDateTime(const Name: String; Value: TDateTime);
WriteExpandString(const Name, Value: String);
WriteFloat(const Name: String; Value: Double);
WriteInteger(const Name: String; Value: Integer);
WriteString(const Name, Value: String);
WriteTime(const Name: String; Value: TDateTime);
Думаю понятно из названия для сохранения какого типа данных служит каждый из вышеперечисленных методов. Ну а в общем первый параметр - название ключа, а второй собственно данные. Для записи в ключ по умолчанию просто оставьте первый параметр пустым, например: WriteInteger('',56);
9) Метод CloseKey используется для закрытия ключа, открытого функцией OpenKey (см. п.4).
10) Выгружаем переменную reg из памяти.
Всё теперь при закрытии приложения оно будет сохранять данные о размере и положении формы в реестре. Можете проверить: запустите программу, а затем выйдите из неё и посмотрите в реестре (с помощью программы regedit) раздел HKEY_CURRENT_USERSoftwarereg_test там и будут наши данные.
Теперь нам надо считывать данные из реестра и соответственно изменять размеры и положение формы. Напишем обработчик события на создание формы:
procedure TForm1.FormCreate(Sender: TObject);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('softwarereg_test',true);
form1.Top:=reg.ReadInteger('top');
form1.Left:=reg.ReadInteger('left');
form1.Width:=reg.ReadInteger('width');
form1.Height:=reg.ReadInteger('height');
reg.CloseKey;
reg.Free;
end;
Не изученный метод здесь только ReadInteger. Ну как вы наверное догадались, этот метод служит для считывания значения ключа из реестра. Кроме ReadInteger существуют ещё следующие методы:
ReadBinaryData(const Name: String; var Buffer; BufSize: Integer): Integer;
ReadBool(const Name: String): Boolean;
ReadCurrency(const Name: String): Currency;
ReadDate(const Name: String): TDateTime;
ReadFloat(const Name: String): Double;
ReadInteger(const Name: String): Integer;
ReadString(const Name: String): String;
ReadTime(const Name: String): TDateTime;
Ну вот собственно и всё, мы сделали программу, которая при выключении сохраняет данные о размере и положении формы в реестре, а при запуске их оттуда считывает; можете проверить.
Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.
Другие работы по теме:
Билеты к экзамену или зачёту по экономике
Билет №1 Предмет экономической науки и ее связь с другими науками. Роль государства в перераспределении доходов Тест. Преподаватель: Билет №2 Функции экономической науки. Макро- и микро-экономика.
Билеты к экзамену или зачёту по экономике
Билет №1 Предмет экономической науки и ее связь с другими науками. Роль государства в перераспределении доходов Тест. Преподаватель: Билет №2 Функции экономической науки. Макро- и микро-экономика.
Краткая характеристика свободных зон России, Украины
Свободные экономические зоны создаются в целях развития экспортного потенциала, увеличения поступлений в Российскую Федерацию валютной выручки от экспорта товаров, активизации внешнеэкономических связей, экономического и социального развития.
Выбор таможенного представителя
Закупка оборудования за границей, участие в международных выставках, покупка и продажа товара - вот далеко не полный перечень того, с чем приходится сталкиваться организациям, ведущим внешне-экономическую деятельность.
Основные термины по ценным бумагам
Министерство образования Российской Федерации Московский государственный университет экономики, статистики и информатики (МЭСИ) "Основные термины по ценным
Руины Каса-Гранде
Национальный монумент Каса-Гранде в г. Кулидж, штат Аризона, непосредственно к северо-востоку от города Каса-Гранде — археологический памятник с сооружениями индейской культуры Хохокам, обитавшей в долине реки Хила в начале 13 в. Поселение из нескольких зданий было обнесено защитной стеной. Крупнейшее из сооружений было 4-этажным.
Пэйнтид-Рокс Аризона
Среди петроглифов встречаются граффити современных посетителей Пэйнтид-Рокс , англ. Painted Rocks, букв. «раскрашенные камни» — группа из нескольки сот петроглифов, обнаруженных в округе Марикопа, штат Аризона, близ города Фиба (Theba).
Меса-Гранде
Руины Меса-Гранде — археологический памятник близ г. Меса в штате Аризона, представляющий собой группу сооружений культуры Хохокам, относящихся к классическому периоду североамериканской хронологии. Руины датируются примерно 1300 годом. Культура Хохокам, создавшая эти сооружения, также известна постройкой развитой системы водных каналов.
Каменный орёл
Курган Каменного орла — археологический памятник в округе Патнем, штат Джорджия. Курган расположен вблизи Шоссе 441 между городами Мэдисон и Итонтон.
Уолнат-Каньон
находится: США, Аризона, площадь достигает 14,33 км2 Уолнат-Каньон (англ. Walnut Canyon National Monument) — национальный монумент США, расположенный в 16 км к юго-востоку от пригорода г. Флагстафф, штат Аризона, в стороне от шоссе 40. Гребень каньона расположен на высоте 2040 метров над уровнем моря, а дно каньона — на 100 метров ниже.
Декларация о государственном суверенитете Республики Беларусь
Введение 1 История Список литературы Введение Декларация о государственном суверенитете Республики Беларусь Декларация провозгласила «полный государственный суверенитет Республики Беларусь как верховенство, самостоятельность и полноту государственной власти республики в границах ее территории, правомочность ее законов, независимость республики во внешних отношениях».
Основные термины по ценным бумагам
Министерство образования Российской Федерации Московский государственный университет экономики, статистики и информатики (МЭСИ) "Основные термины по ценным
Метрическая книга
(устар.) — реестр, книга для официальной записи актов гражданского состояния (рождений, браков и смертей). Метрические книги велись в России до революции в церковных приходах духовенством или особыми гражданскими чиновниками. После революции велись только государственными чиновниками.
Реестровое казачество
План Введение 1 Образование реестрового казачества 2 Привилегии реестровых казаков 3 Численность реестрового казачества 4 Ликвидация реестрового казачества
Театр Пиквик
План Введение 1 История 2 Стоимость билетов (кино) 3 Интересные факты 4 Смотрите также Введение Театр Пиквик (англ. Pickwick) расположен в городе Парк Ридж (пригород Чикаго), штат Иллинойс.
Сан-Уотч
Археологический парк «Индейский посёлок Сан-Уотч» — воссозданное поселение индейцев, относившихся к археологической культуре Форт-Эйншент. Расположено у побережья Большой реки Майами у г. Дейтон в штате Огайо.
Пуэбло-Гранде
Руины и ирригационные приспособления Пуэбло-Гранде — археологический памятник культуры Хохокам на территории штата Аризона. В 1964 г. причислен к Национальным историческим достопримечательностям (en:National Historic Landmark).[1][2]
Estate of Martin Luther King, Jr., Inc. против CBS, Inc.
План Введение 1 Обстоятельства дела 1.1 Правовой аспект 2 Решение Список литературы Введение Estate of Martin Luther King, Jr., Inc. v. CBS, Inc. (194 F.3d 1211 (11-й Окр. 1999)) — дело об определении статуса речи Мартина Лютера Кинга «Есть у меня мечта». В решении по этому делу Федеральный апелляционный суд 11 округа определил, что публичное чтение речи является исполнением (представлением), и авторские права на него подлежат защите.
Уменьшение размера реестра
Всем известно, что сердце Windows находится в системном реестре. Правильность реестра - залог долговечности операционной системы Windows.
Замер степени использования процессора
В Windows 9x существуют счётчики Performance Counters, которые можно включить из реестра, и в реестр же они будут посылать результаты замеров. Например загруженности процессора.
Visual Basic и Системный Реестр Windows
Системный Реестр (Registry) Windows это база данных для хранения системной и пользовательской информации в Windows. Системный Реестр состоит из двух файлов.
Каньон Де Шейи
находится: США, Аризона, площадь составляет 33 930 га Национальный монумент Каньон Де Шейи (англ. Canyon de Chelly National Monument) — основан 1 апреля 1931 года как подразделение Национальной службы парков США. Расположен на северо-востоке штата Аризона в пределах резервации навахо. Здесь сохранились руины индейцев анасази, а также позднее занявших эти земли навахо.