Delphi. Учимся на примерах | страница 14



AlphaBlend True Разрешаем изменение степени прозрачности формы
AlphaBlendValue1Изначально окно программы полностью непрозрачное

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

Объявите в разделе var переменную mouse типа TPoint. В этой переменой будут храниться координаты указателя мыши, при изменении которых программа должна закрываться:

>var

> Form1: TForm1;

> mouse: TPoint;

Программа экранной заставки должна закрываться не только по движению мыши, но при любой активности пользователя. Для этого создадим обработчики некоторых событий главной формы. Создание формы (событие OnCreate):

>procedure TForm1.FormCreate(Sender: TObject);

>begin

GetCursorPos(mouse); //сохраняем координаты курсора мыши

> ShowCursor(False); //прячем курсор

>end;

Форма должна закрываться по нажатию любой клавиши (событие OnKeyPress) и при движении мышью (событие OnMouseMove). Код обработчика события OnKeyPress:

>procedure TForm1.FormKeyPress(Sender: TObject; var Key:Char);

>begin

> Halt;//завершение работы программы

>end;

Для события OnMouseMove программный код будет несколько иным:

>procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

>begin

> if (X <> mouse.X) or (y <> mouse.Y) then Halt;

>end;

Здесь сначала выполняется проверка: были ли изменены координаты курсора. Если координаты курсора изменились, то, соответственно, мышь была сдвинута и следует закрыть программу.

Напишем собственную процедуру для выбора случайного цвета: color_check. Объявите ее как закрытый член класса формы:

>type

> TForm1 = class(TForm)

> …

>private

> { Private declarations }

procedure color_check();

>public

> { Public declarations }

>end;

В разделе implementation создадим реализацию процедуры color check:

>procedure TForm1.colorcheck();

>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;

Здесь случайным образом выбирается число от 1 до 6, в зависимости от того которого определяем цвет формы. Процедура color_check будет вызываться при каждом новом насыщении формы.

Обработчик события OnTimer первого таймера должен иметь следующий вид:

>procedure TForm1.Timer1Timer(Sender: TObject);

>begin

> if Form1.AlphaBlendValue > 250