Суббота, 19.05.2012, 22:46 Приветствую вас Гость | Группа "Гости" 


Меню сайта

Категории раздела
Вирусология [39]
Статьи о вирусах
Примеры [42]
Приёмы, функции, процедуры
Хакинг [6]
И не только!
Приколы [5]
Пишем шуточные програмки

Администрация
184023 dolphin
611892 gravitas

Помощь проекту

R106276538945
Z160640024212

Яндекс деньги
410011190732605

Недавние темы

Опрос
Какая операционная система установлена на вашем компьютере?
Всего ответов: 497

Главная » Статьи » Delphi » Примеры

Хранитель экрана.
Доступно только для пользователейПостановка задачи
[size=8]Разработать хранитель экрана для Windows (файл с расширением
*-. scr). Форма масштабируется на весь экран, заголовок скрывается,
а любые действия пользователя должны прекращать работу программы.
Случайным образом выбирается цвет формы, затем происходит ее плав-
ное насыщение случайно выбранным цветом. Первоначально форма
полностью прозрачная. Когда она станет полностью непрозрачной, сле-
дует медленно убирать насыщенность цвета, пока она опять не станет
прозрачной. После этого вновь выбирается случайный цвет для насы-
щения, и описанный процесс повторяется сначала.
Разработка формы
Создадим новый проект Delphi. Как известно, экранные заставки
хранятся в файлах с расширением . scr, а по умолчанию проект Delphi
компилируется как выполняемый файл . ехе. Для того чтобы наша про-
грамма имела расширение . scr, выполним команду меню Project —> Options,
на вкладке Application диалогового окна Project Options введем
в поле Target file extension значение scr (рис. 5.1) и нажмем кнопку ОК.
Все что нам понадобится на форме, — это два компонента Timer
категории System. Первый будет служить для реализации постепенного
насыщения формы цветом — для этого таймера следует изменить зна-
чение свойства Interval на 100. Второй таймер потребуется при по-
степенном уменьшении насыщенности цвета вплоть до того момента,
когда форма вновь станет полностью прозрачной. Для этого таймера
свойству i n t e r v a l следует также присвоить значение 100, а значение
свойства Enabled изменить на False, поскольку изначально "затуха-
ния" происходить не будет.

Заполним данные Form:
BorderStyle:=bsnone;
Aligh:=alClient;
FormStyle:=fsStayOnTop;
AlphaBlend:=true;
AlphaBlendValue:=1;

Начнем кодить:
Объявим глобальную переменную, для сохранения начальных координат мыши.
Code

Var
Mouse:TPoint;

On Create(у Form):
Code

GetCursorPos(mouse);
ShowCursor(false);

Далее в событии OnKeyPress:
Code

Halt;

И дописываем строчку в событии OnMouseMovie:
Code

if (y<>mouse.y) or (x<>mouse.x) then halt;


Ок. С формальностью закончили. Переходим к самому "хранителю экрана"(Заставке).
Пишем процедуру для выбора случайного цвета. Заранее хочу вас заверить, что заставка будет ОЧЕНЬ примитивна.
Но это, всего лишь пример =)
Объявим в секции Private:
Code

private
{ Private declarations }
procedure color_check();
public
{ Public declarations }
end;

Вот сама процедура:
Code

procedure TForml.color_check();
var
ran:integer; //случайное число, соответствующее определенному цвету
begin
Randomize; //включаем генератор случайных чисел
ran := random(6) + 1 ; //выбираем случайное число от 1 до 6
//назначаем форме цвет, соответствующий выбранному числу
case
1: Form1.Color:=clBlack;
2: Form1.Color:=ClWhite;
3: Form1.Color:=ClBlue;
4: Form1.Color:=ClYellow;
5: Form1.Color:=ClRed;
6: Form1.Color:=ClGreen;
end;
end;

Так же, следует добавить на форму 1 таймер.(интервал выбираете сами)
В событии таймера пишем:
Code

if Forml.AlphaBlendValue > 250
then {проверяем: не полностью ли мы закрасили форму}
begin
Timerl.Enabled := False; //выключаем насыщение формы
Timer2.Enabled := True; //включаем обратный процесс
end;
//постепенное насыщение формы
Forml.AlphaBlendValue := Forml.AlphaBlendValue + 1;

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

Пишем(2 таймер):
Code

if Forml.AlphaBlendValue < 5
then //если форма уже полностью прозрачная
begin
color_check(); //выбираем случайный цвет для формы
Timer2.Enabled := False; //выключаем второй таймер
Timerl.Enabled := True; //включаем первый таймер
end;
//Уменьшаем прозрачность на 1
Forml.AlphaBlendValue := Forml.AlphaBlendValue - 1;

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



Вот так просто можно сделать хранитель экрана.
Удачи вам в ваших начинаниях!
Категория: Примеры | Добавил: GReIIIHuK (25.01.2012)
Просмотров: 271 | Рейтинг: 5.0/2

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Профиль


Логин:
Пароль:

Поиск

Наша кнопка

Вирусология, взгляд из Delphi



Статистика
HSDN :: Рейтинг сайтов WOlist.ru - каталог качественных сайтов Рунета Яндекс.Метрика
Яндекс цитирования
Статистика материалов
Файлов: 391
Форум: 617/4443
Коментариев: 711
Новостей: 38
Блог: 2

Статистика пользователей
Всего: 1194
За неделю: 15
Вчера: 2
Сегодня: 3
Всего онлайн: 5
Гостей: 2
Пользователей: 3
Marra_Kesh, link993, Don_Diego

delfcode.ru © 2008 - 2012 Хостинг от uCoz