...
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).
Рис. 1.1. Свойства для настройки прозрачности в окне Object Inspector
На рис. 1.2 наглядно продемонстрировано, как может выглядеть полупрозрачное окно (форма Delphi).
Рис. 1.2. Форма, прозрачная на 14 %
Ниже для примера рассмотрим, как применяются свойства AlphaBl end, а также 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);