Оценить:
 Рейтинг: 0

Иcпользование API на Delphi 7

Год написания книги
2012
<< 1 2 3 4 5 6 ... 15 >>
На страницу:
2 из 15
Настройки чтения
Размер шрифта
Высота строк
Поля

t_Ini.Free;

end;

ЛЕКЦИЯ №2

1. РАБОТА С РЕЕСТРОМ WINDOWS

Реестр Windows – это база данных, в которой операционная система Windows и внешние программы сохраняют нужные им данные. Логическая структура реестра напоминает строение Ini-файла, отличие состоит в том, что Ini-файл состоит из разделов (секций) и ключей раздела со значениями, а реестр состоит из разделов, вложенных подразделов (неограниченное число) и ключей (параметров) разделов/подразделов со значениями.

Реестр Windows имеет древовидную структуру, подобную файловой системе, где разделы и подразделы соответствуют каталогам и подкаталогам, а ключи со значениями – именам файлов:

Рис. 1

Любая программа может сохранять свои данные или в реестре Windows или в Ini-файлах. Достоинства и недостатки использования реестра и Ini-файлов следующие:

Таблица 1

Реестр состоит из шести корневых разделов, два из которых представляют наибольший интерес: раздел «HKEY_LOCAL_MACHINE» предназначен для хранения данных, доступных всем пользователям Windows, а раздел «HKEY_CURRENT_USER» хранит данные, доступные только для текущего пользователя Windows. Другие корневые разделы обычно используются только операционной системой и некоторыми системными программами.

Язык программирования Delphi 5 позволяет производить с реестром Windows любые манипуляции через подключение модуля «Registry» в разделе «interface -> uses». Рассмотрим на примере основные базовые операции при записи и считывании данных с реестра:

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

{ Процедура записи данных в реестр }

var Reg: tRegistry;

begin

Reg:=tRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;

try

if Reg.OpenKey('\Software\TSN736\', true) then begin

if not Reg.KeyExists('setup') then Reg.CreateKey('setup');

if Reg.OpenKey('\Software\TSN736\setup', false) then begin

Reg.WriteInteger('Left', form1.left); Reg.WriteInteger('Top', form1.top);

Reg.CloseKey;

end;

end;

finally

Reg.Free;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

{ Процедура чтения данных с реестра }

var Reg: tRegistry;

begin

Reg:=tRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;

try

if Reg.OpenKey('\Software\TSN736\setup', false) then begin

try form1.left:=Reg.ReadInteger('Left'); except; end;

try form1.top:=Reg.ReadInteger('Top'); except; end;

Reg.CloseKey;

end;

finally

Reg.Free;

end;

end;

ЛЕКЦИЯ №3

1. ПРЕОБРАЗОВАНИЕ ТИПОВ. ДОСТУП К ОБЪЕКТАМ И КОМПОНЕНТАМ ЧЕРЕЗ УКАЗАТЕЛИ

При написании обработчиков событий для компонент практически всегда в процедуру передается указатель «Sender» типа «TObject». Данный указатель как правило указывает (ссылается) на тот визуальный компонент, который вызывает данную процедуру. Параметр «Sender» является некоторым усовершенствованным аналогом ссылочной переменной языка Pascal.

Использование параметра «Sender» позволяет делать процедуры – обработчики событий универсальными, позволяющими работать не с одним конкретным компонентом, а с несколькими, имеющими одинаковый тип. Например, можно написать процедуру перемещения кнопки по экрану и привязать эту процедуру ко всем кнопкам формы, после чего все кнопки также смогут перемещаться по экрану. Для этого в процедуре-обработчике необходимо пользоваться только «Sender» конструкциями, а не явными указаниями на компоненты.

Рассмотрим способы доступа к компонентам через указатель «Sender» и методы преобразования типов:
<< 1 2 3 4 5 6 ... 15 >>
На страницу:
2 из 15