Александр Чиртик - Программирование в Delphi. Трюки и эффекты

Тут можно читать онлайн Александр Чиртик - Программирование в Delphi. Трюки и эффекты - бесплатно ознакомительный отрывок. Жанр: comp_programming, издательство Array Издательство «Питер», год 2010. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование в Delphi. Трюки и эффекты
  • Автор:
  • Жанр:
  • Издательство:
    Array Издательство «Питер»
  • Год:
    2010
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-49807-118-3
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Чиртик - Программирование в Delphi. Трюки и эффекты краткое содержание

Программирование в Delphi. Трюки и эффекты - описание и краткое содержание, автор Александр Чиртик, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Как и все издания данной серии, эта книга адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые интересные вещи. Издание будет полезно и новичкам, и опытным программистам. Автор описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения MP3 и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.

Программирование в Delphi. Трюки и эффекты - читать онлайн бесплатно ознакомительный отрывок

Программирование в Delphi. Трюки и эффекты - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Александр Чиртик
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

FlashWindowEx(fl);

//Инверсия заголовка

fl.cbSize:= SizeOf(fl);

fl.hwnd:= Handle;

fl.dwFlags:= FLASHW_CAPTION;

fl.uCount:= 10;

fl.dwTimeout:= 200;

FlashWindowEx(fl);

end;

В данном случае инвертируется заголовок формы Form1. Кнопка на Панели задач может не только мигать, но и, например, быть скрыта или показана, когда в этом есть необходимость. Так, для скрытия кнопки приложения можно применить API-функцию ShowWindow:

ShowWindow(Application.Handle, SW_HIDE);

Чтобы показать кнопку приложения, можно функцию ShowWindow вызвать с равным SW_NORMAL вторым параметром.

Полупрозрачные окна

В Windows 2000 впервые появилась возможность использовать прозрачность окон (в англоязычной документации такие полупрозрачные окна называются Layered windows). Сделать это можно, задав дополнительный стиль окна (о назначении и использовании оконных стилей вы можете узнать из материалов, представленных в гл. 2). Здесь не будет рассматриваться использование API-функций для работы с полупрозрачными окнами, так как их поддержка реализована для форм Delphi. Соответствующие свойства включены в состав класса TForm.

• AlphaBlend – включение или выключение прозрачности. Если параметр имеет значение True, то прозрачность включена, если False – выключена.

• AlphaBlendValue – значение, обратное прозрачности окна (от 0 до 255). Если параметр имеет значение 0, то окно полностью прозрачно, если 255 – непрозрачно.

Значения перечисленных свойств можно изменять как с помощью окна Object Inspector, так и во время выполнения программы (рис. 1.1).

Рис 11 Свойства для настройки прозрачности в окне Object Inspector На рис - фото 2

Рис. 1.1. Свойства для настройки прозрачности в окне Object Inspector

На рис. 1.2 наглядно продемонстрировано, как может выглядеть полупрозрачное окно (форма Delphi).

Рис 12 Форма с коэффициентом прозрачности равным 14 В качестве примера - фото 3

Рис. 1.2. Форма с коэффициентом прозрачности, равным 14 %

В качестве примера ниже показано, как используются свойства AlphaBlend и AlphaBlendValue для задания прозрачности окна во время выполнения программы (сочетание положения ползунка tbAlpha, состояния флажка chkEnableAlpha и подписи lblCurAlpha на форме, представленной на рис. 1.2) (листинг 1.8).

Листинг 1.8. Динамическое изменение прозрачности окна

procedure TForm1.chkEnableAlphaClick(Sender: TObject);

begin

AlphaBlendValue:= tbAlpha.Position;

AlphaBlend:= chkEnableAlpha.Checked;

end;

procedure TForm1.tbAlphaChange(Sender: TObject);

var

pos, perc: Integer;

begin

pos:= tbAlpha.Position;

//Новое значение прозрачности

AlphaBlendValue:= pos;

//Обновим подпись под ползунком

perc:= pos * 100 div 255;

lblCurAlpha.Caption:= IntToStr(pos) + 'из 255 ('+IntToStr(perc) + '%)';

end;

Применив следующий код, можно реализовать довольно интересный эффект постепенного исчезновения, а затем появления формы (листинг 1.9).

Листинг 1.9. Исчезновение и появление формы

implementation

var

isInc: Boolean; //Если True, то значение AlphaBlend формы

//увеличивается, если False, то уменьшается

//(форма скрывается)

procedure TForm1.cmbHideAndShowClick(Sender: TObject);

begin

if AlphaBlend then chkEnableAlpha.Checked:= False;

//Включаем прозрачность (подготовка к плавному скрытию)

AlphaBlendValue:= 255;

AlphaBlend:= True;

Refresh;

//Запускаем процесс скрытия формы

isInc:= False;

Timer1.Enabled:= True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

var val: Integer;

begin

if not isInc then

begin

//"Растворение " окна

val:= AlphaBlendValue;

Dec(val, 10);

if val <= 0 then

begin

//Окно полностью прозрачно

val:= 0;

isInc:= True;

end

end

else begin

//Появление окна

val:= AlphaBlendValue;

Inc(val, 10);

if val >= 255 then

begin

//Окно полностью непрозрачно

val:= 255;

Timer1.Enabled:= False; //Процесс закончен

AlphaBlend:= False;

end

end;

AlphaBlendValue:= val;

end;

Единственная сложность (если это можно назвать сложностью) приведенного в листинге 1.9 алгоритма кроется в использовании таймера (Timerl) для инициирования изменения прозрачности окна. Так сделано для того, чтобы окно могло принимать пользовательский ввод, даже когда оно скрывается или постепенно показывается, и чтобы приложение не «съедало» все ресурсы на относительно слабой машине. Попробуйте сделать плавное изменение прозрачности в простом цикле, запустите его на каком-нибудь Pentium III 600 МГц без навороченной видеокарты – и сами увидите, что станет с бедной машиной.

Грамотное, а главное, уместное использование прозрачности окон может значительно повысить привлекательность интерфейса приложения (взгляните хотя бы на Winamp 5 при включенном параметре прозрачности окон).

Окна и кнопки нестандартной формы

Далее будут рассмотрены некоторые стандартные возможности Windows, которые можно использовать для достижения большего разнообразия и привлекательности элементов оконного интерфейса. Приведенные здесь примеры измененяют формы элементов управления и, естественно, формы самих окон приложений.

Регионы. Создание и использование

Рассматриваемые эффекты по изменению формы окон базируются на использовании регионов (областей) отсечения – в общем случае сложных геометрических фигур, ограничивающих область рисования окна. По умолчанию окна (в том числе и окна элементов управления) имеют область отсечения, заданную прямоугольным регионом с высотой и шириной, равной высоте и ширине самого окна.

Однако использование прямоугольных регионов для указания областей отсечения совсем не обязательно. Использование отсечения по заданному непрямоугольному региону при рисовании произвольного окна наглядно представлено на рис. 1.3: а – исходный прямоугольный вид формы; б – используемый регион, формирующий область отсечения; в – вид формы, полученный в результате рисования с отсечением по границам заданного региона.

Рис 13 Использование области отсечения при рисовании окна Рассмотрим - фото 4

Рис. 1.3. Использование области отсечения при рисовании окна

Рассмотрим операции, позволяющие создавать, удалять и модифицировать регионы.

Создание и удаление регионов

Создать несложные регионы различной формы можно с помощью следующих API-функций:

function CreateRectRgn(p1, p2, p3, p4: Integer): HRGN;

function CreateEllipticRgn(p1, p2, p3, p4: Integer): HRGN;

function CreateRoundRectRgn(p1, p2, p3, p4, p5, p6: Integer): HRGN;

Все перечисленные здесь и ниже функции создания регионов возвращают дескриптор GDI-объекта «регион». Он впоследствии и передается в различные функции, работающие с регионами.

Первая из приведенных функций (CreateRectRgn) предназначена для создания регионов прямоугольной формы. Параметры этой функции необходимо толковать следующим образом:

• p1 и p2 – горизонтальная и вертикальная координаты левой верхней точки прямоугольника;

• p3 и p4 – горизонтальная и вертикальная координаты правой нижней точки прямоугольника.

Следующая функция (CreateEllipticRgn) предназначена для создания региона в форме эллипса. Параметры этой функции – координаты прямоугольника (аналогично функции CreateRectRgn), в который вписывается требуемый эллипс.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Чиртик читать все книги автора по порядку

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




Программирование в Delphi. Трюки и эффекты отзывы


Отзывы читателей о книге Программирование в Delphi. Трюки и эффекты, автор: Александр Чиртик. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x