Ücretsiz

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

Abonelik
Okundu olarak işaretle
Иcпользование API на Delphi 7
Yazı tipi:Aa'dan küçükDaha fazla Aa

Сергей Талипов

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

ЛЕКЦИЯ №1

1. РАБОТА С INI – ФАЙЛАМИ

Ini-файл – это текстовый файл, в котором информация сгруппирована по секциям, ключам. Данные файлы широко применяются во многих приложениях и в операционной системе Windows для хранения различных программных данных и настроек пользователя. В таком файле можно хранить, например, положение окон программы, дату, время и продолжительность работы программы, пути к разным данным и данным, выбранные в программе настройки пользователя Ниже приведена структура и пример Ini-файла:



Для работы с Ini-файлами применяется дополнительный модуль Delhi «inifiles». Ссылку на данный модуль необходимо прописать в разделе «uses» работающей с Ini-файлами форме программы. Вся работа с Ini-файлами осуществляется через тип «TiniFile» модуля «inifiles». Основные методы данного типа следующие:



Create

Открытие Ini-файла для чтения или записи

Free

Закрытие открытого Ini-файла

UpdateFile

Обновляет данные из/в файла на диске

SectionExists

Проверка существования в файле данной секции

ValueExists

Проверка существования в файле ключа в данной секции

ReadSections

Получение перечня всех секций файла

EraseSection

Удаление данной секции со всеми ее ключами

DeleteKey

Удаление ключа в данной секции

ReadSection

Получение перечня ключей данной секции

ReadSectionValues

Получение значений всех ключей (с именами) данной секции

ReadString

Чтение строкового значения из ключа данной секции

ReadBool

Чтение логического значения из ключа данной секции

ReadDate

Чтение даты из ключа данной секции

ReadDateTime

Чтение даты и время из ключа данной секции

ReadFloat

Чтение вещественного значения из ключа данной секции

ReadInteger

Чтение целого значения из ключа данной секции

ReadTime

Чтение времени из ключа данной секции

WriteString

Запись (обновление) строкового значения в ключ данной секции

WriteBool

Запись логического значения в ключ данной секции

WriteDate

Запись даты в ключ данной секции

WriteDateTime

Запись даты и времени в ключ данной секции

WriteFloat

Запись вещественного значения в ключ данной секции

WriteInteger

Запись целого значения в ключ данной секции

WriteTime

Запись времени в ключ данной секции

Рассмотрим на подробном примере процедуру записи информации в Ini-файл:





procedure TForm1.Button3Click(Sender: TObject);



var t_Ini: TIniFile;



  k: integer; s, path_pr, nfile: string; td: tdatetime;



begin



  k:=736; s:='Okey'; td:=now;



  path_pr:=ExtractFilePath(application.exename) +'tsn.ini';



  t_Ini := TIniFile.Create(nfile);



  try



  with t_Ini do begin



     WriteInteger('TSN', 'str1', k);



     WriteFloat('TSN', 'str2', 736.123);



     WriteString('TSN', 'str3', s);



     WriteDate('TSN', 'str4', strtodate('01.02.2012'));



     WriteTime('TSN', 'str5', td);



     Writebool('TSN', 'str6', true);



  end;



  except



    showmessage('Нет доступа к Ini-файлу !');



  end;



  t_Ini.Updatefile; t_Ini.Free;



end;



Рассмотрим на примере процедуру считывания ранее сохраненной информации из Ini-файла:



procedure TForm1.Button4Click(Sender: TObject);



var t_Ini: TIniFile;



  k: integer; s, path_pr, nfile: string; td: tdatetime;



begin



  path_pr:=ExtractFilePath(application.exename) +'tsn.ini';



  t_Ini := TIniFile.Create(nfile);



  try



  with t_Ini do begin



     k:=ReadInteger('TSN', 'str1', -1); showmessage(inttostr(k));



     s:=ReadString('TSN', 'str3', '-1'); showmessage(s);



     td:=ReadDate('TSN', 'str4', strtodate('1.1.2000'));



     showmessage(datetostr(td));



     showmessage(floattostr(ReadFloat('TSN', 'str2', -1.123)));



     showmessage(timetostr(ReadTime('TSN2', 'str5', now)));



     showmessage(inttostr(byte(ReadBool('TSN2', 'str6', false))));



  end;



  except



    showmessage('Нет доступа к Ini-файлу !');



  end;



  t_Ini.Free;



end;



ЛЕКЦИЯ №2

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

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



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





Рис. 1



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



Параметр

Использование реестра Windows

Использование Ini-файлов

Перенос данных с компьютера на компьютер

Трудность переноса данных с использованием экспорта/импорта ветвей реестра через программу редактора реестра («regedit»)

Легкость переноса данных путем простого копирования Ini-файла с одного компьютера на другой

Модификация данных

Через функции прикладной программы или программу редактора реестра

Через функции прикладной программы или корректировки в обычном текстовом редакторе

Привязка к конкретному пользователю Windows

Автоматически на уровне операционной системы через корневой раздел «HKEY_CURRENT_USER»

Трудно через функции прикладной программы

Привязка к конкретному компьютеру

Автоматически на уровне операционной системы через корневой раздел «HKEY_LOCAL_MACHINE»

Трудно через функции прикладной программы

Таблица 1



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



Язык программирования Delphi 5 позволяет производить с реестром Windows лю