Советы по Delphi

         

Показ логотипа при запуске приложения IV


Как добавить логотип к вашему приложению

Логотип (заставка) является важной составляющей вашего приложения. Он позволяет занять время во время загрузки и сообщить пользователю дополнительные сведения о программе. Логотип сделает ваше приложение более профессиональным.

Кроме того, заставка позволяет не только отличить ваше приложение от другого, но и отличить одну версию приложения от другой.

Имеется множество типов заставок (Splash Screen). Самый распространный тип - показ логотипа во время загрузки приложения. Обычно такие экраны отображают имя приложения, автора, версию, авторские права и изображение или иконку, идентифицирующую приложение.

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

Надеюсь, вы оценили преимущества заставок. Давайте теперь попробуем создать простую заставку своими руками.

  1. Добавьте форму в ваш проект --> File | New Form.. Комментарий: Заставка (Splash Screen) похожа на любую другую форму.
  2. Измените свойство формы Name на SplashScreen
  3. Измените свойство формы BorderStyle на bsNone
  4. Измените свойство формы Position на poScreenCenter
  5. Сделайте заставку привлекательной и функциональной путем добавления на нее необходимых компонентов и изображений. (компоненты Label, Panel, Image, Shape и Bevel)
  6. Отредактируйте свойства добавленных компонентов
  7. Выберите в меню Delphi IDE Options | Project
  8. Уберите SplashScreen-форму из списка Auto-create-списка (списка автоматически создаваемых форм)

Комментарий: Вы динамически создаете экземпляр заставки

  • Добавьте модуль, содержащий TSplashScreen, в список используемых модулей главной формы вашего приложения. Пример:
  •     unit Unit1; interface

    uses
    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 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]



    Содержание раздела