Показ логотипа при запуске приложения. Способ 3
Логотип (заставка) является важной составляющей вашего приложения. Он позволяет занять время во время загрузки и сообщить пользователю дополнительные сведения о программе. Логотип сделает ваше приложение более профессиональным.
Кроме того, заставка позволяет не только отличить ваше приложение от другого, но и отличить одну версию приложения от другой.
Имеется множество типов заставок (Splash Screen). Самый распространный тип - показ логотипа во время загрузки приложения. Обычно такие экраны отображают имя приложения, автора, версию, авторские права и изображение или иконку, идентифицирующую приложение.
Также, некоторые приложения используют этот экран для показа линейки прогресса при выполнении длительного процесса. Примером такого типа экрана может быть диалог с выводом числа процентов выполненного запроса к базе данных, файловая задача, или задача обработки чисел. При длительных процессах наличие такого диалога означает вежливость программы по отношению к пользователю.
Надеюсь, вы оценили преимущества заставок. Давайте теперь попробуем создать простую заставку своими руками.
- Добавьте форму в ваш проект --> File | New Form.. Комментарий: Заставка (Splash Screen) похожа на любую другую форму.
- Измените свойство формы Name на SplashScreen
- Измените свойство формы BorderStyle на bsNone
- Измените свойство формы Position на poScreenCenter
- Сделайте заставку привлекательной и функциональной путем добавления на нее необходимых компонентов и изображений. (компоненты Label, Panel, Image, Shape и Bevel)
- Отредактируйте свойства добавленных компонентов
- Выберите в меню Delphi IDE Options | Project
- Уберите SplashScreen-форму из списка Auto-create-списка (списка автоматически создаваемых форм)
Комментарий: Вы динамически создаете экземпляр заставки
- Добавьте модуль, содержащий TSplashScreen, в список используемых модулей главной формы вашего приложения. Пример: unit Unit1;interfaceuses SysUtils, WinTypes, WinProcs, Messages, Classes,Graphics, Controls, Forms, Dialogs, StdCtrls,unit2; <---- поместите сюда
Комментарий: В нашем примере TSplashScreen объявлен в Unit2
- Выберите в меню Delphi IDE View | Project Source
- Вставьте между ключевым словом begin и перед любым Application.Create() следующий код: SplashScreen := TSplashScreen.Create(Application);SplashScreen.Show;SplashScreen.Refresh;
- Измените поведение главной формы приложения при наступлении события OnShow. Добавьте следующий код: SplashScreen.Free;
Комментарий: Реализация заставки с линейкой прогресса ничуть не сложнее, чем приведенный выше пример. Необходимо всего лишь вовремя выводить ее на экран: перед тем, как процесс начнется, и убирать только после того, как он закончится. Различие заключается в осуществлении связи (реализации механизма) между процессом и заставкой для правильного обновления линейки прогресса.
- Запустите приложение. В приведенном выше примере, если скорость вашего компьютера значительна, то заставки вы можете и не увидеть. Следующий код демонстрирует технику создания заставки для вашего приложения - только будьте осмотрительней при его использовании.
Добавьте следующий код на этапе #11:
for x:= 1 to 10000000 dobeginx:=x;end;face="Courier New" size="2">
{PROJECT1.DPR}
program Project1;
usesForms,Unit1 in 'UNIT1.PAS' {Form1},Unit2 in 'UNIT2.PAS' {SplashScreen};
{$R *.RES}varx: longint;beginSplashScreen:= TSplashScreen.Create(Application);SplashScreen.Show;SplashScreen.Refresh;;for x:= 1 to 10000000 dobeginx:=x;x:=x;end;Application.CreateForm(TForm1, Form1);Application.Run;end.{UNIT1.PAS}
unit Unit1;
interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, unit2;
typeTForm1 = class(TForm)procedure FormShow(Sender: TObject);private{ Private declarations }public{ Public declarations }end;
varForm1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormShow(Sender: TObject);beginsplashscreen.free;end;
end.{UNIT2.PAS}
unit Unit2;
interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, ExtCtrls;
typeTSplashScreen = class(TForm)Panel1: TPanel;Label1: TLabel;Label2: TLabel;Label3: TLabel;Shape1: TShape;Shape2: TShape;Shape3: TShape;private{ Private declarations }public{ Public declarations }end;
varSplashScreen: TSplashScreen;
implementation
{$R *.DFM}
end.
