Чтение онлайн

на главную - закладки

Жанры

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

Парижский Сергей Михайлович

Шрифт:

 end;

 //Уменьшаем прозрачность на 1

 Form1.AlphaBlendValue:= Form1.AlphaBlendValue – 1;

end;

Здесь через каждые 100 мс прозрачность формы уменьшается на 1. Когда форма становится полностью прозрачной, мы случайным образом выбираем другой цвет, выключаем таймер, по которому происходит уменьшение насыщенности цвета, и включаем первый таймер, который плавно увеличивает насыщенность цвета.

Теперь программу можно откомпилировать, скопировать файл .scr в папку с хранителями экрана (для Windows ХР это папка Windows\System32), открыть окно параметров Рабочего стола и выбрать хранитель экрана, соответствующий нашей программе.

Разработанный нами хранитель экрана в действии показан на рис. 5.2. В данном случае был случайным образом выбран желтый цвет заполнения и происходит медленное насыщение этим цветом. Можно разглядеть папки, которые видны сквозь полупрозрачную форму.

< image l:href="#"/>

Рис. 5.2. Хранитель экрана в действии

Полный исходный код модуля

Полный исходный код модуля программы Хранитель экрана представлен в листинге 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;

Поделиться:
Популярные книги

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Адвокат Империи 16

Карелин Сергей Витальевич
16. Адвокат империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Адвокат Империи 16

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Неучтенный элемент. Том 3

NikL
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 3

Палач

Зайцев Сергей Григорьевич
4. Викс
Фантастика:
фэнтези
7.27
рейтинг книги
Палач

Маленькая женщина Большого

Зайцева Мария
5. Наша
Любовные романы:
эро литература
современные любовные романы
5.00
рейтинг книги
Маленькая женщина Большого

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Старый, но крепкий

Крынов Макс
1. Культивация без насилия
Фантастика:
рпг
уся
попаданцы
5.00
рейтинг книги
Старый, но крепкий

Тринадцатый XI

NikL
11. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Тринадцатый XI

Имперец. Том 5

Романов Михаил Яковлевич
4. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
6.00
рейтинг книги
Имперец. Том 5

Аспирант

Поселягин Владимир Геннадьевич
3. Рунный маг
Фантастика:
боевая фантастика
4.50
рейтинг книги
Аспирант

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый V

Ученик

Листратов Валерий
2. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Ученик

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII