Книга: Delphi. Учимся на примерах

Разработка программного кода

Первое, что нужно сделать для шуточной программы, — скрыть ее от глаз пользователя. Для этого достаточно создать обработчик события формы OnPaint и добавить в него следующий код:

procedure TForm1.FormPaint(Sender: TObject);
begin
 Form1.Hide; //прячем форму
end;

Здесь мы при каждой прорисовке формы скрываем ее из виду. При этом она не только будет скрыта визуально, но и исчезнет с панели задач, а также не будет отображаться на вкладке Приложения в диспетчере задач Windows.

Еще одно важное действие для нашей программы — реализация автозагрузки вместе с запуском ОС. Для этого создайте обработчик события главной формы OnCreate и добавьте в него следующий код:

procedure TForm1.FormCreate(Sender: TObject);
var
 reg:TRegistry;//переменная для работы с реестром
 path: string;//содержит путь к нашей программе
begin
 Randomize; //генератор случайных чисел
 //узнаем путь к программе и ее имя
 path:= Application.EXEname;
 reg:= TRegistry.Create;//открываем реестр
 //ветка текущего пользователя
 reg.RootKey:= HKEY_CURRENT_USER;
 //открываем раздел автозагрузки
 if reg.OpenKey('SoftwareMicrosoftWindows' +
  'CurrentVersionRun', True)
 then begin
  //записываем ссылку на нашу программу в автозагрузку
  reg.WriteString('Joker', path);
  reg.CloseKey;//закрываем реестр
  reg.Free;//освобождаем память
 end;
end;

Чтобы это все работало, необходимо добавить в раздел uses ссылку на модуль Registry. Теперь все готово для создания программных шуток . Сначала объявим все глобальные переменные в разделе var:

var
 Form1: TForm1;
 //для отключения мыши и клавиатуры
 Dummy: integer = 0;
 OldKbHook: HHook = 0;
 //для снятия копии экрана
 ВМР1: Graphics.TBitmap;
 DC1: HDC;
 Image1: TImage;
 // для поиска случайного рисунка
 fn: TSearchRec;
 Finds: integer;
 i: integer;
 endval: integer;
 err_str: string;//вывод ошибки
 tm: TSystemTime; //изменение времени
 reg: TRegistry; //для работы с реестром
 JokeNum: shortint; //номер шутки, которую следует выполнить
 curs: TRect; //координаты прямоугольника

Все шутки будут описаны в обработчике события таймера OnTimer.

Добавьте в этот обработчик следующий код:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 JokeNum:= Random(10) + 1; //Выбираем случайный номер шутки
 case JokeNum of //выполняем шутку
 1: begin
  //код первой шутки
 end;
 2:
 begin
  //код второй шутки
 end;
 3: begin
  //код третьей шутки
 end;
 4: begin
  //код четвертой шутки
 end;
 5: begin
  //код пятой шутки
 end;
 6: begin
  //код шестой шутки
 end;
 7: begin
  //код седьмой шутки
 end;
 8: begin
  //код восьмой шутки
 end;
 9: begin
  //код девятой шутки
 end;
 10: begin
  //код десятой шутки
 end;
 end;
end;

Это шаблон для генератора шуток. Здесь выбирается случайное число от 1 до 10, которое будет определять, какую из шуток выполнить на этой минуте. Далее будут представлены фрагменты кода, выполняющие определенные действия, которые следует вставлять вместо комментария в соответствующую ветку конструкции case.

Оглавление книги


Генерация: 0.056. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз