Форма в 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;
Запустив приложение мы будем открывать и закрывать вторую форму с анимацией прозрачности окна.
Итог: мы разобрали пример с использованием изменения прозрачности форм.
“Кроме того, что на форме должна быть кнопка мы должны подсоединить модуль 2 -й формы используя, меню – File -> Use Unit или нажав Alt + F11. В обработчике кнопки будет такая команда:”
Непонятно, какая же все-таки команда должна быть…
Да и когда я пытаюсь подсоединить модуль, программа ругается, что он уже занят. Что я делаю не так?
Исправил (насчет команды). А delphi когда ругаться начинает? При самом присоединении модуля или при запуске приложения? Если заново создать приложение также происходит ошибка?
ругается только когда пытаюсь подсоединить модуль второй формы. Выходит окошко с информацией примерно следующего содержания: “Unit ‘Unit1’ already uses all the units n the project.”
Я конечно уже поняла, что где-то что-то упустила, но не могу разобраться, что именно
ну все, с горем пополам, разобралась, что и как сделать. File → New → Form → обозвала форму → добавила команду в обработчик кнопки → Run (F9) → и тут программа ругнулась, что Unit2, который я пытаюсь присоединить не указан в списке Uses, и спросила, добавить ли, я конечно же согласилась → достигнут желаемый результат. Форма запускается, и, при нажатии кнопки “Загрузить”, появляется вторая.
Замечательно, что все получилось. Программа ругнулась потому что модуль Unit2 не был подсоединен. Но при первом запуске появился запрос о подключении модуля, т.к. Вы согласились то модуль Unit2 был подсоединен таким способом. Уметь подсоединить к главной форме вспомогательные формы и модули необходимо, потому что почти любая программа будет состоять из разнообразных по функционалу окон.