Книга: Delphi. Учимся на примерах
Полный исходный код модуля
Полный исходный код модуля
Полный исходный код модуля программы Хранитель экрана представлен в листинге 5.1.
Листинг 5.1. Модуль программы Хранитель экрана
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
procedure color_check();
public
{ Public declarations }
end;
var
Form1: TForm1;
mouse: TPoint;
implementation
{$R *.dfm}
procedure TForm1.color_check();
var
ran: integer; //случайное число, соответствующее
//определенному цвету
begin
Randomize; //включаем генератор случайных чисел
ran: = Random(6) + 1; //выбираем случайное число от 1 до 6
//Назначаем форме цвет, соответствующий выбранному числу
case ran of
1: Form1.Color:= clBlack;
2: Form1.Color:= clWhite;
3: Form1.Color:= clBlue;
4: Form1.Color:= clGray;
5: Form1.Color:= clYellow;
6: Form1.Color:= clGreen;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
GetCursorPos(mouse); //получаем координаты курсора мыши
ShowCursor(False); //прячем курсор
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key:Char)
begin
Halt; //завершение работы программы
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if (X <> mouse.X) or (Y <> mouse.Y) then Halt;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Form1.AlphaBlendValue > 250
then //проверяем: не полностью ли мы закрасили форму
begin
Timer1.Enabled:= False; //выключаем насыщение формы
Timer2.Enabled:= True; //включаем обратный процесс
end;
//постепенное насыщение формы
Form1.AlphaBlendValue:= Form1.AlphaBlendValue + 1;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Form1.AlphaBlendValue < 5
then //если форма уже полностью прозрачная
begin
color_check(); //выбираем случайный цвет для формы
Timer2.Enabled:= False; //выключаем второй таймер
Timer1.Enabled := True; //включаем первый таймер
end;
//Уменьшаем прозрачность на 1
Form1.AlphaBlendValue:= Form1.AlphaBlendValue – 1;
end;
end.
? Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter05.