Déformes tes fenêtres comme sous vista!

Soyez le premier à donner votre avis sur cette source.

Vue 28 474 fois - Téléchargée 3 688 fois

Description

Vous en avez assez des fenêtres tristes qui ne bougent pas, ne se déforment pas? Vous en avez assez de ceux qui trouvent que Vista c'est génial, il y a des effets 3D avec les fenêtres blablabla? Ce code est fait pour vous!

Lors du lancement de l'exemple, aller dans le menu Options->Animations...

Ce code permet d'appliquer automatiquement des animations automatiques aux fenêtres d'un programme. Pour l'utiliser, il suffit simplement d'ajoutter "AnimatorManager.pas" dans la liste des uses d'une unité.

Les animations se déclenchent (avec une certaine probabilité paramétrable) lorsqu'une fenêtre est rendue visible (typiquement un dialogue). Par exemple, minimiser et restaurer une fenêtre déclenche son animation. Le tout est géré par une classe-singleton: GAnimatorManager:

TAnimatorManager=class
public
procedure AnimateForm(AForm:TCustomForm;Force:Boolean=False);

procedure Customize;

property Delay:Cardinal read GetDelay write SetDelay;
property AnimatorClassID:Integer read FAnimatorClassID write SetAnimatorClassID;
property AnimationProbability:Integer read FAnimationProbability write SetAnimationProbability;

procedure SaveToIniFile(AIniFile:TIniFile;Section:string='Animator');
procedure LoadFromIniFile(AIniFile:TIniFile;Section:string='Animator');
end;

+AnimateForm permet d'animer une fiche avec la probabilité définie (Force outrepasse cette probabilité)
+Customize lance la fenêtre de paramètres des animations
+Delay est la durée des animations, en millisecondes (par défaut 700)
+AnimatorClassID est le type d'animation choisi (par défaut zéro, c'est à dire pas d'animation)
+AnimationProbability est la probabilité (comprise entre 0 et 100) qu'une fenêtre soit animée lorsqu'elle est rendue visible. Par défaut elle vaut 100 (c'est à dire que toutes les fenêtres sont animées).
+SaveToIniFile et LoadFromIniFile permettent de sauvegarder et charger les paramètres du gestionnaire d'animations dans un fichier ini. Le paramètre "Section" optionnel permet de spécifier dans quelle section on désire écrire les données.

Pour l'instant il y a 5 types d'animations différents:
+ Pas d'animations
+ Animations émulées simples: des animations sans déformation (mais avec zoom) et effets de transparence utilisant GDI
+ Animations systèmes: des animations utilisant l'API AnimateWindow
+ Animations style Vista, accélération logicielle: des animations déformantes avec des effets de pliage/dépliage en 3D dans un style ressemblant à Vista. Le tout est programmé en utilisant GDI, c'est à dire... très lent!
+ Animations style Vista, accélération matérielle: la même chose, utilisant OpenGl, avec des effets de transparence en plus.

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AnimatorManager, Menus, IniFiles;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Options1: TMenuItem;
    Animations1: TMenuItem;
    procedure Animations1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Animations1Click(Sender: TObject);
begin
  GAnimatorManager.Customize;
end;

procedure TForm1.FormCreate(Sender: TObject); {On charge les derniers paramètres utilisés}
var
  f:TIniFile;
begin
  f:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  GAnimatorManager.LoadFromIniFile(f);
  f.Destroy;
end;

procedure TForm1.FormDestroy(Sender: TObject); {On sauvegarde les derniers paramètres utilisés}
var
  f:TIniFile;
begin
  f:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  GAnimatorManager.SaveToIniFile(f);
  f.Destroy;
end;

end.

Conclusion :


Comme vous pouvez le constater, c'est très facile à utiliser. En rajouttant AnimatorManager dans les uses du programme, on obtient ce qu'on peut voir sur la capture.

A noter: pour que tout fonctionne, il faut aussi que les 7 unités:
AnimatorManager.pas
AnimatorManagerDialogFormUnit.pas
FormAnimator.pas
GlBitmap.pas
GlCanvas.pas
GlFont.pas
GlTexture.pas
TLS.pas

soient présentes dans le répertoire du projet (ainsi bien évidemment que AnimatorManagerDialogFormUnit.dfm).

Référez-vous à la mention de copyright dans AnimatorManager.pas pour l'utilisation dans vos programmes.

Bon codage!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 6 février 2012
Statut
Membre
Dernière intervention
31 mars 2012

comment executer cette application.A l'aide
Messages postés
4
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
8 août 2009

merci ^^
Messages postés
49
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
9 mars 2011

WindowFX
http://www.stardock.com/products/windowfx/
tu peu avoir un aperçu rapide sur google Images
Messages postés
4
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
8 août 2009

A ok autant pour moi j'avais pas compris sa bah tan pis alor ^^ merci quand mm de m'avoir aidé.

mais vous connaissez peut ètre un programme pour XP qui permet d'animer les fenètres lors de leur minimisation ou maximisation ect. si vous en connaissez dites moi le nom du ou des logiciels svp après j'avette de vous embeter ^^ merci
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Déjà c'est "Delphi" :p
Les animations ne seront présentes que sur les fenêtres que tu vas créer dans tes applications.
J'entends donc que tu vas créér des applications, des programmes, et ça avec Delphi.
Si tu ne programmes pas, delphi ne te servira à rien et ce code source non plus :/
Afficher les 63 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.