Delphi.Заметки программиста
f65d50f6

Здесь следует дать небольшой комментарий.


program Trial; uses   Forms,   Unit1 in 'Unit1.pas' {Form1},   Registry, Dialogs; // Для TRegistry и ShowMessage
  {$R *.RES}
var   Reg: TRegistry;   N: Integer; begin   Reg := TRegistry.Create;   with Reg do
  begin
    OpenKey('software', True);
    OpenKey('TrialProg', True);
    if ValueExists('MaxRun') then  // Первый запуск?     begin                          // - Нет       N := ReadInteger('MaxRun')-1;       if N>
=0 then         WriteInteger('MaxRun', N)     end else begin                 // -Да, первый запуск       N := 5;       WriteInteger('MaxRun', N)     end;     Free   end;   if N>
0 then
  begin
    Application.CreateForm(TForm1, Form1);
    Application.Run;   end else     ShowMessage('Исчерпано максимальное количество запусков'+    ' пробной версии программы') end.
Здесь следует дать небольшой комментарий. Модуль Registry декларирует класс TRegistry, который представляет программисту доступ к системному реестру Windows. С помощью двух обращений к функции TRegistry.OpenKey создается и/или открывается ключ HKEY_CURRENT_USER\Software\TrialProg системного реестра. Функция TRegistry.ValueExists возвращает True, если этот ключ содержит параметр с именем MaxRun и для него определено значение. При первом запуске приложения это не так, поэтому процедурой WriteInteger создается параметр и для него указывается начальное значение 5 (максимальное количество прогонов программы). При каждом следующем запуске этот параметр уменьшается на 1 и в момент, когда он становится равен 0, приложение блокирует создание и отображение главного окна.

Содержание раздела