AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nьtzliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Animierte Splash Form

Ein Thema von Alois · begonnen am 11. Jun 2009 · letzter Beitrag vom 2. Feb 2011
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Alois

Registriert seit: 23. Jul 2005
71 Beitrдge
 
Delphi 10 Seattle Professional
 
#11

Re: Animierte Splash Form

  Alt 12. Jun 2009, 17:55
Und hier die deutsche Ьbersetzung der Homepage:

Homepage in Deutsch http://www.bitoff.ru/animationsplash/

Gruss Alois
  Mit Zitat antworten Zitat
Benutzerbild von Andy BitOff
Andy BitOff

Registriert seit: 11. Jun 2009
21 Beitrдge
 
#12

Re: Animierte Splash Form

  Alt 12. Jun 2009, 18:05
Zitat von Alois:
Und hier die deutsche Ьbersetzung der Homepage:

Gruss Alois
  Mit Zitat antworten Zitat
Super_Chemiker

Registriert seit: 16. Nov 2008
111 Beitrдge
 
Delphi 2009 Professional
 
#13

Re: Animierte Splash Form

  Alt 12. Jun 2009, 18:12
Vielleicht eine blцde Frage, aber wie integriere ich so einen Splashscreen jetzt in ein Delphi Projekt? Ich wьsste nicht, wie ich das mit dem Dateityp als Formular festlege

mfG
  Mit Zitat antworten Zitat
Alois

Registriert seit: 23. Jul 2005
71 Beitrдge
 
Delphi 10 Seattle Professional
 
#14

Re: Animierte Splash Form

  Alt 12. Jun 2009, 18:23
Zitat von Super_Chemiker:
Vielleicht eine blцde Frage, aber wie integriere ich so einen Splashscreen jetzt in ein Delphi Projekt? Ich wьsste nicht, wie ich das mit dem Dateityp als Formular festlege

mfG
Schau dir doch die Dateien im ASF Demo Full an.
Hier der Link: http://www.bitoff.ru/animationsplash/ASFDemoFull.zip

Gruss Alois

ASFDemoMain.pas
Delphi-Quellcode:
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.
ASFDemoFull.dpr
Delphi-Quellcode:
program ASFDemoFull;

uses
  Forms,
  ASFDemoMain in 'ASFDemoMain.pas{frm_Main},
  SysUtils,
  GDIPAPI,
  ASFLists in '..\..\ASFLists.pas',
  ASFMain in '..\..\ASFMain.pas';

{$R *.res}

var
  Anim1: TAnimationFrames;
  SplashImagePath, s: string;
  i: Integer;

begin
  SplashImagePath := ExtractFilePath(ParamStr(0)) + 'img\';

  AnimationSplashForm := TAnimationSplashForm.CreateFrom(SplashImagePath + 'Splash.png');
  // Здесь надо учесть, что центруется сплэш именно по размерам бэкграунда
// AnimationSplashForm := TAnimationSplashForm.CreateEmptyBackGround(196, 273, 72, 72);

  // Показывать кнопку на Панели задач
  AnimationSplashForm.ShowTaskbarButton := True;
  // Заголовок онка, если ShowTaskbarButton = True
  AnimationSplashForm.SplashFormCaption := 'Загрузка...';
  // Отрисовывать окно поверх всех
  AnimationSplashForm.SplashFormTopMost := False;
  // Скорость проявления и затухания сплэша
  // зависимость от таймера, т.е. SetTimerInterval * FadeSpeed
  AnimationSplashForm.FadeSpeed := 7;
  // Установка интервала таймера
  AnimationSplashForm.SetTimerInterval(15);

// ТЕКСТ ПРОЦЕССА
  ProgressTextItem := AnimationSplashForm.TextData.AddNewItem;
  with AnimationSplashForm.TextData.Items[ProgressTextItem] do begin
    // Показывать текст
    Visible := True;
    // Показывать тень текста
    VisibleShadow := True;
    // Рект в котором отображается текст
    TextBox := MakeRect(20, 190, 145, 20);
    // цвет текста
    Color := $FFF0F0F4;
    // цвет тени
    ShadowColor := $FF6C6C39;
    // шрифт
    FontName := 'Verdana';
    FontSize := 11;
    // центровать по горизонтали
    PositionH := StringAlignmentCenter;
  end;

// ПРОГРЕСС БАР
  with AnimationSplashForm.ProgressBar^ do begin
    // Показывать прогресс бар
    BarVisible := True;
    // Показывать рамку прогресс бара
    BarBorderVisible := True;
    // размеры прогресс бара
    BarBox := MakeRect(27, 212, 130, 10);
    // цвет прогресс бара
    BarColor := $60FFFFFF;
    // цвет бордюра
    BarBorderColor := $80F0F0F0;
  end;


  // Создадим постоянный текст, например, номер версии
  i := AnimationSplashForm.TextData.AddNewItem;
  with AnimationSplashForm.TextData.Items[i] do begin
    Visible := True;
    Text := 'version: 1.0.0.0';
    TextBox := MakeRect(27, 252, 130, 10);
    FontSize := 8;
    FontStyle := FontStyleItalic;
    PositionH := StringAlignmentCenter;
  end;


// ИКОНКИ
  // Показывать иконки
  AnimationSplashForm.ProgressIconsVisible := True;
  // Скорость проявления иконок (в процентах) в зависимости от LoadingPartTime
  // 100 значит, что иконка будет проявляться всё время (LoadingPartTime),
  // 50 - проявится за половину времени
  AnimationSplashForm.IconFullPaintPercent := 100;
  // Задать анимацию появления иконок
  AnimationSplashForm.IconAnimation := iaFade;
  // Положение первой иконки - левый край
  AnimationSplashForm.IconPosLeft := 23;
  // Положение первой иконки - верхний край
  AnimationSplashForm.IconPosTop := 226;
  // Расстояние между иконками
  AnimationSplashForm.IconSpace := 2;
  // Сколько пикс.отступать от левого края пред.иконки.
  // Если это знач. = 0, то берется значение ширины пред.иконки
  AnimationSplashForm.IconStep := 25;
  // Теперь загружаем сами иконки
  AnimationSplashForm.Icons.LoadFromFile(SplashImagePath + 'Icons.dat');
{  // Первая загрузка из файлов и сохранение в один файл
  // Затем загрузка идет уже и того файла
  AnimationSplashForm.Icons.AddFromFile(SplashImagePath + 'Styles.png');    // 1
  AnimationSplashForm.Icons.AddFromFile(SplashImagePath + 'Properties.png');// 2
  AnimationSplashForm.Icons.AddFromFile(SplashImagePath + 'Com.png');      // 3
  AnimationSplashForm.Icons.AddFromFile(SplashImagePath + 'Mui.png');      // 4
  AnimationSplashForm.Icons.AddFromFile(SplashImagePath + 'Interface.png'); // 5
  AnimationSplashForm.Icons.SaveToFile(SplashImagePath + 'Icons.dat');}



// АНИМАЦИЯ
  // Подготовим анимацию
  AnimationSplashForm.AnimationsAddFromFile(SplashImagePath + 'Animation.dat');
{  // Первая загрузка из файлов и сохранение в один файл
  // Затем загрузка идет уже и того файла
  Anim1 := TAnimationFrames.Create;
  try
    Anim1.DelayBetweenImages := 3;
    // Пауза между повторами циклов анимации
    Anim1.DelayBetweenPassage := 0;
    Anim1.PositionLeft := 42;
    Anim1.PositionTop := 79;
    for I := 0 to 17 do begin
      s := IntToStr(i);
      if Length(s) = 1 then
        s := '0' + s;
      Anim1.AddFromFile(SplashImagePath + 'Animation ' + s + '.png');
    end;
    AnimationSplashForm.AnimationsAdd(Anim1);
    Anim1.SaveToFile(SplashImagePath + 'Animation.dat');
  finally
    Anim1.Free;
  end;}


  // Устанавливает количество частей для загрузки
  // Также автоматом ProgressBarCurrentPart ставится равной 1
  AnimationSplashForm.ProgressBarSectionsCount := 5;

  // Запустить Splash
  AnimationSplashForm.StartSplash;

  Application.Initialize;
  Application.CreateForm(Tfrm_Main, frm_Main);
  // Закрыть и уничтожить
  AnimationSplashForm.CloseSplash(30, True);

  Application.Run;
end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beitrдge
 
Delphi 11 Alexandria
 
#15

Re: Animierte Splash Form

  Alt 12. Jun 2009, 18:24
lade dir doch die Demos herunter, der Quelltext ist dabei
http://www.bitoff.ru/animationsplash/demo.html
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Andy BitOff
Andy BitOff

Registriert seit: 11. Jun 2009
21 Beitrдge
 
#16

Re: Animierte Splash Form

  Alt 12. Jun 2009, 18:36
If you use SplashCreator is saved in the file can be downloaded as shown in ASFDemo - Antonn (ASFDemoAntonn.dpr)
Delphi-Quellcode:
begin
  ProgressTextItem := 0; //Index text to be changed

  // Create from the saved file
  AnimationSplashForm := TAnimationSplashForm.CreateFullFrom(ExtractFilePath(ParamStr(0)) + 'img\' + 'FullData.dat');

  Application.Initialize;
  Application.CreateForm(Tfrm_Main, frm_Main);

  // Close and destroy
  AnimationSplashForm.CloseSplash(30, True);

  Application.Run;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Andy BitOff
Andy BitOff

Registriert seit: 11. Jun 2009
21 Beitrдge
 
#17

Re: Animierte Splash Form

  Alt 15. Jun 2009, 19:31
New version 2.2.0
Changes:
+ OnKeyPress
+ OnKeyDown
+ OnKeyUp
+ ClosingAllow - to allow the closure splash (Default - True)
* Minor changes

SplashCreator version 1.1.0
Support properties ClosingAllow

transformed demo CustomDraw
We show how to paint as close to ESC and use the features ClosingAllow to block the closure of other ways.

http://www.bitoff.ru/animationsplash/index.html
  Mit Zitat antworten Zitat
Benutzerbild von Andy BitOff
Andy BitOff

Registriert seit: 11. Jun 2009
21 Beitrдge
 
#18

Re: Animierte Splash Form

  Alt 16. Jun 2009, 07:40
Version 2.2.2
+ AttemptedClosure - a sign of attempted closure splash
  Mit Zitat antworten Zitat
Super_Chemiker

Registriert seit: 16. Nov 2008
111 Beitrдge
 
Delphi 2009 Professional
 
#19

Re: Animierte Splash Form

  Alt 17. Jun 2009, 14:45
Danke an alle, wenn ich die Demo starten will, dann sagt der Debugger:
Code:
[DCC Fataler Fehler] ASFDemoMain.pas(35): F1026 Datei nicht gefunden: 'ASFMain.dcu'
  Mit Zitat antworten Zitat
Super_Chemiker

Registriert seit: 16. Nov 2008
111 Beitrдge
 
Delphi 2009 Professional
 
#20

Re: Animierte Splash Form

  Alt 29. Jun 2009, 16:25
WeiЯ keiner Rat?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beitrдge zu antworten.
Es ist dir nicht erlaubt, Anhдnge hochzuladen.
Es ist dir nicht erlaubt, deine Beitrдge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz