Admin Fondateur
Nombre de messages : 197 Age : 40 Localisation : Tlemcen ( Algérie ) Date d'inscription : 04/12/2006
| Sujet: Comment réaliser un splash screen transparent ? Ven 12 Jan - 5:53 | |
| La première chose à faire consiste à créer un splash screen. Pour cela, Hachesse a déjà répondu à la question ici. Pour ajouter la transparence, il suffit de passer à true la propriété Transparent de la fenêtre faisant office de splash screen et de positionner la propriété BorderStyle à bsNone. Sur des systèmes précédant Windows ME, la propriété Transparent n'a pas d'effet. Dans ce cas, il suffit de remplacer le fond de la fenêtre par l'image de l'écran. Ainsi, la fenêtre n'est pas réellement transparente, mais elle donne l'illusion de la transparence. Voici le code de la fenêtre faisant office de splash screen : - Code:
-
type TSplashForm = class(TForm) {...} // Les composants de votre form procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormDestroy(Sender: TObject); {...} private FImageDeFond : TBitmap; {...} end;
var SplashForm: TSplashForm;
implementation
{$R *.dfm}
{...}
procedure TSplashForm.FormCreate(Sender: TObject); begin //Pour connaître la version de Windows, il faut utiliser Win32MajorVersion et Win32MinorVersion //Dans ce cas, il suffit d'utiliser Win32MajorVersion Win95, 98 et ME ont tous pour version majeure 4 if Win32MajorVersion = 4 then begin FImageDeFond := TBitmap.Create; FImageDeFond.width := Screen.width; FImageDeFond.height := Screen.height; FImageDeFond.canvas.CopyRect(ClientRect, Canvas, ClientRect); end; end;
procedure TSplashForm.FormPaint(Sender: TObject); begin //Remplacement du fond de la fenêtre par l'image capturée if Win32MajorVersion = 4 then 4 : canvas.CopyRect(ClientRect, FImageDeFond.Canvas, ClientRect); end;
procedure TSplashForm.FormDestroy(Sender: TObject); begin //TOUJOURS détruire ses objets if Win32MajorVersion = 4 then FImageDeFond.Free; end;
| |
|