Показ логотипа при запуске приложения. Способ 3

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

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

Имеется множество типов заставок (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-списка (списка автоматически создаваемых форм)

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

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

    unit Unit1;
    interface
    uses SysUtils, WinTypes, WinProcs, Messages, Classes,
    Graphics, Controls, Forms, Dialogs, StdCtrls,
    unit2;  <---- поместите сюда

    Комментарий: В нашем примере TSplashScreen объявлен в Unit2

  10. Выберите в меню Delphi IDE View | Project Source
  11. Вставьте между ключевым словом begin и перед любым Application.Create() следующий код:

    SplashScreen := TSplashScreen.Create(Application);
    SplashScreen.Show;
    SplashScreen.Refresh;

  12. Измените поведение главной формы приложения при наступлении события OnShow. Добавьте следующий код:

    SplashScreen.Free;

    Комментарий: Реализация заставки с линейкой прогресса ничуть не сложнее, чем приведенный выше пример. Необходимо всего лишь вовремя выводить ее на экран: перед тем, как процесс начнется, и убирать только после того, как он закончится. Различие заключается в осуществлении связи (реализации механизма) между процессом и заставкой для правильного обновления линейки прогресса.

  13. Запустите приложение. В приведенном выше примере, если скорость вашего компьютера значительна, то заставки вы можете и не увидеть. Следующий код демонстрирует технику создания заставки для вашего приложения - только будьте осмотрительней при его использовании.

    Добавьте следующий код на этапе #11:

    for x:= 1 to 10000000 do
    begin
    x:=x;
    end;

    face="Courier New" size="2">

    {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.

 
« Предыдущая статья   Следующая статья »