Delphi. Учимся на примерах | страница 14
AlphaBlend | True | Разрешаем изменение степени прозрачности формы |
AlphaBlendValue | 1 | Изначально окно программы полностью непрозрачное |
Разработка программного кода
Объявите в разделе 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