Читаем Delphi полностью

 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

 then {проверяем: не полностью ли мы закрасили форму}

 begin

  Timer1.Enabled:= False; //выключаем насыщение формы

  Timer2.Enabled:= True; //включаем обратный процесс

 end;

 //постепенное насыщение формы

 Form1.AlphaBlendValue:= Form1.AlphaBlendValue + 1;

end;

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

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;

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

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

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

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

<p>Полный исходный код модуля</p>

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных