Как добавить логотип к вашему приложению
Логотип (заставка) является важной составляющей вашего приложения. Он позволяет занять время во время загрузки и сообщить пользователю дополнительные сведения о программе. Логотип сделает ваше приложение более профессиональным.
Кроме того, заставка позволяет не только отличить ваше приложение от другого, но и отличить одну версию приложения от другой.
Имеется множество типов заставок (Splash Screen). Самый распространный тип - показ логотипа во время загрузки приложения. Обычно такие экраны отображают имя приложения, автора, версию, авторские права и изображение или иконку, идентифицирующую приложение.
Также, некоторые приложения используют этот экран для показа линейки прогресса при выполнении длительного процесса. Примером такого типа экрана может быть диалог с выводом числа процентов выполненного запроса к базе данных, файловая задача, или задача обработки чисел. При длительных процессах наличие такого диалога означает вежливость программы по отношению к пользователю.
Надеюсь, вы оценили преимущества заставок. Давайте теперь попробуем создать простую заставку своими руками.
Комментарий: Вы динамически создаете экземпляр заставки
unit Unit1;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, unit2; <---- поместите сюда |
Комментарий: В нашем примере TSplashScreen объявлен в Unit2
SplashScreen := TSplashScreen.Create(Application); SplashScreen.Show; SplashScreen.Refresh; |
SplashScreen.Free; |
Комментарий: Реализация заставки с линейкой прогресса ничуть не сложнее, чем приведенный выше пример. Необходимо всего лишь вовремя выводить ее на экран: перед тем, как процесс начнется, и убирать только после того, как он закончится. Различие заключается в осуществлении связи (реализации механизма) между процессом и заставкой для правильного обновления линейки прогресса.
Добавьте следующий код на этапе #11:
for x:= 1 to 10000000 do begin x:=x; end; |
{PROJECT1.DPR}
program Project1; uses Forms, Unit1 in 'UNIT1.PAS' {Form1}, Unit2 in 'UNIT2.PAS' {SplashScreen}; {$R *.RES} var x: longint; begin SplashScreen:= TSplashScreen.Create(Application); SplashScreen.Show; SplashScreen.Refresh;; for x:= 1 to 10000000 do begin x:=x; x:=x; end; Application.CreateForm(TForm1, Form1); Application.Run; end. |
{UNIT1.PAS}
unit Unit1; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, unit2; type TForm1 = class(TForm) procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormShow(Sender: TObject); begin splashscreen.free; end; end. |
{UNIT2.PAS}
unit Unit2; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TSplashScreen = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Shape1: TShape; Shape2: TShape; Shape3: TShape; private { Private declarations } public { Public declarations } end; var SplashScreen: TSplashScreen; implementation {$R *.DFM} end. |
[001527]