unit ASFDemoMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI;
type
Tfrm_Main =
class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure Label2Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure LabelMouseEnter(Sender: TObject);
procedure LabelMouseLeave(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_Main: Tfrm_Main;
{===================================================== }
// Хранит индекс текста, который надо будет менять в процессе
ProgressTextItem: Integer;
implementation
uses
ASFMain;
{$R *.dfm}
procedure Tfrm_Main.FormCreate(Sender: TObject);
begin
// Установить индекс текущей иконки
AnimationSplashForm.ProgressIconCurrentItem := 0;
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Установка стилей...';
// в мс. приблизительно
AnimationSplashForm.LoadingSectionTime := 1000;
// Имитация долгого безответного действия
Sleep(1000);
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Загрузка параметров...';
AnimationSplashForm.IncCurrentSection;
AnimationSplashForm.IncCurrentItemIcon;
AnimationSplashForm.LoadingSectionTime := 3000;
// Имитация долгого безответного действия
Sleep(3100);
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Инициализация COM...';
AnimationSplashForm.IncCurrentSection;
AnimationSplashForm.IncCurrentItemIcon;
AnimationSplashForm.LoadingSectionTime := 1000;
// Имитация долгого безответного действия
Sleep(1600);
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Подключение MUI...';
AnimationSplashForm.IncCurrentSection;
AnimationSplashForm.IncCurrentItemIcon;
AnimationSplashForm.LoadingSectionTime := 1000;
// Имитация долгого безответного действия
Sleep(500);
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Загрузка интерфейса...';
AnimationSplashForm.IncCurrentSection;
AnimationSplashForm.IncCurrentItemIcon;
AnimationSplashForm.LoadingSectionTime := 2000;
// Имитация долгого безответного действия
Sleep(2000);
AnimationSplashForm.TextData.Items[ProgressTextItem].Text := '
Запуск...';
end;
procedure Tfrm_Main.Label2Click(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
ShellExecute(Application.Handle,
nil,
'
mailto:ASF%20-%20Andy%20BitOff<asf@bitoff.ru>?subject=AnimationSplashForm',
nil,
nil, SW_SHOWNORMAL);
Screen.Cursor := crDefault;
end;
procedure Tfrm_Main.Label3Click(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
ShellExecute(Application.Handle,
nil,
PChar(TLabel(Sender).Hint),
nil,
nil, SW_SHOWNORMAL);
Screen.Cursor := crDefault;
end;
procedure Tfrm_Main.LabelMouseEnter(Sender: TObject);
var
a: Integer;
begin
Screen.Cursor := crHandPoint;
a := TLabel(Sender).Tag;
TLabel(Sender).Tag := TLabel(Sender).Font.Color;
TLabel(Sender).Font.Color := TColor(a);
end;
procedure Tfrm_Main.LabelMouseLeave(Sender: TObject);
begin
LabelMouseEnter(Sender);
Screen.Cursor := crDefault;
end;
end.