LibKing » Книги » comp-programming » Сергей Парижский - Delphi. Учимся на примерах

Сергей Парижский - Delphi. Учимся на примерах

Тут можно читать онлайн Сергей Парижский - Delphi. Учимся на примерах - бесплатно полную версию книги (целиком). Жанр: comp-programming, издательство "МК-Пресс", год 2005. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Сергей Парижский - Delphi. Учимся на примерах
  • Название:
    Delphi. Учимся на примерах
  • Автор:
  • Жанр:
  • Издательство:
    "МК-Пресс"
  • Год:
    2005
  • ISBN:
    ISBN 966-8806-02-6
  • Рейтинг:
    4/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Сергей Парижский - Delphi. Учимся на примерах краткое содержание

Delphi. Учимся на примерах - описание и краткое содержание, автор Сергей Парижский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Данная книга — продолжение предыдущей книги автора, "Delphi. Только практика". Также как и в "Delphi. Только практика", в данном издании подробно рассмотрены программы для сетей, различные шуточные программы, простые игрушки, некоторые полезные приложения, разработка приложений в стиле Windows XP. В частности, здесь можно найти такие примеры как бесплатная отправка SMS, FTP-клиент, простое шифрование, CGI-сценарии и многое другое. Описаны методы работы с системным реестром Windows и INI-файлами, а также некоторые важные аспекты программирования на системном уровне с применением функций Windows API. Для облегчения понимания программ каждый пример содержит комментарии сложных строк кода.

Книга ориентирована как на тех, кто уже имеет опыт создания приложений в Delphi, так и на начинающих программистов. Для начинающих пользователей Delphi в конце книги добавлено приложение с описанием синтаксиса языка программирования Object Pascal.

Delphi. Учимся на примерах - читать онлайн бесплатно полную версию (весь текст целиком)

Delphi. Учимся на примерах - читать книгу онлайн бесплатно, автор Сергей Парижский
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Рис. 5.1. Выбор расширения для откомпилированной программы

Изменим свойства формы согласно табл. 5.1.

Таблица 5.1. Свойства формы хранителя экрана

Свойство Значение Пояснение
BorderStyle bsNone Окно программы будет отображаться без границы и заголовка
Align alClient Окно программы будет заполнять весь экран
FormStyle fsStayOnTop Окно программы будет располагаться поверх всех остальных окон
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

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. Хранитель экрана в действии

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

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

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Сергей Парижский читать все книги автора по порядку

Сергей Парижский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Delphi. Учимся на примерах отзывы


Отзывы читателей о книге Delphi. Учимся на примерах, автор: Сергей Парижский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img