Урок 5. Исчезающая форма

Форма в Delphi имеет свойство AlphaBlendValue, которое отвечает за прозрачность формы (необходимо учитывать, что свойство AlphaBlend должно быть установлено в TRUE). При значении этого свойства равным 255, максимальное значение, форма не прозрачна (мы работаем с такими формами). А при значении равным о (минимальное), форма будет абсолютно прозрачной. При промежуточных значениях форма будет просвечиваться и сквозь него будут видны окна расположенные ниже.

Полупрозрачные окна интересны сами по себе, с помощью их можно сделать окна настройки, справки, помощи и т.д. Не следует ими увлекаться потому, что пользователю, может оказаться трудно разбираться со слабо видимой формой окна.

В данном уроке я хочу разобрать медленной появление и скрытие окна формы. У нас будет 2 формы первая главная, с одной кнопкой. Примерно такая:

Главная форма

Кроме того, что на форме должна быть кнопка мы должны подсоединить модуль 2 -й формы используя, меню - File -> Use Unit или нажав Alt + F11. В обработчике кнопки "Загрузить" будет такая команда:

procedure TForm1.Button1Click(Sender: TObject);
begin
    Form2.ShowModal;
end;

С главной формой мы разобрались. Теперь займемся 2 формой. У меня она получилась такой:

Вторая форма

Можно вместо овалов, как у меня, поместить какой нибудь рисунок. Кнопка Закрыть - закрывает форму. В ее обработчике напишем команду - Close;

Форма на экране должна появляться прозрачной для этого в Инспекторе объектов выставляем такие свойства - AlphaBlend равно TRUE и AlphaBlendValue равно 0. Пишем обработчик onActivate для второй формы:

procedure TForm2.FormActivate(Sender: TObject);
var
  I : integer;
begin
 for I := 0 to  255 do
   AlphaBlendValue := I;
end;

Теперь обработчик onClose:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I : integer;
begin
 for I := 255  downto  0 do
   AlphaBlendValue := I;
end;

Запустив приложение мы будем открывать и закрывать вторую форму с анимацией прозрачности окна.

Итог: мы разобрали пример с использованием изменения прозрачности форм.

Урок 5. Исчезающая форма: 5 комментариев

  1. “Кроме того, что на форме должна быть кнопка мы должны подсоединить модуль 2 -й формы используя, меню – File -> Use Unit или нажав Alt + F11. В обработчике кнопки будет такая команда:”
    Непонятно, какая же все-таки команда должна быть…
    Да и когда я пытаюсь подсоединить модуль, программа ругается, что он уже занят. Что я делаю не так?

    • Исправил (насчет команды). А delphi когда ругаться начинает? При самом присоединении модуля или при запуске приложения? Если заново создать приложение также происходит ошибка?

  2. ругается только когда пытаюсь подсоединить модуль второй формы. Выходит окошко с информацией примерно следующего содержания: “Unit ‘Unit1’ already uses all the units n the project.”
    Я конечно уже поняла, что где-то что-то упустила, но не могу разобраться, что именно

  3. ну все, с горем пополам, разобралась, что и как сделать. File → New → Form → обозвала форму → добавила команду в обработчик кнопки → Run (F9) → и тут программа ругнулась, что Unit2, который я пытаюсь присоединить не указан в списке Uses, и спросила, добавить ли, я конечно же согласилась → достигнут желаемый результат. Форма запускается, и, при нажатии кнопки “Загрузить”, появляется вторая.

    • Замечательно, что все получилось. Программа ругнулась потому что модуль Unit2 не был подсоединен. Но при первом запуске появился запрос о подключении модуля, т.к. Вы согласились то модуль Unit2 был подсоединен таким способом. Уметь подсоединить к главной форме вспомогательные формы и модули необходимо, потому что почти любая программа будет состоять из разнообразных по функционалу окон.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *