Affichage avec effet de transparence

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 238 fois - Téléchargée 29 fois

Contenu du snippet

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure setTransparencyPercentage(_HWnd:cardinal; _Value:byte);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Déclarations privées }

public
{ Déclarations publiques }
end;

var
Form1: TForm1;
iShade : byte;

implementation

{$R *.dfm}

Procedure TForm1.setTransparencyPercentage(_HWnd:cardinal; _Value:byte);
{Paramètres entrant
_HWnd : descripteur de fenêtre
_Value : pourcentage de transparence}
var
Attrib:integer;
begin
if _Value>100 then _Value:=100;
//Définit la valeur d'opacité (de 0 à 255)
_Value:=255-Trunc((255*_Value)/100);
Attrib:=getWindowLong(_HWnd, GWL_EXSTYLE);
SetWindowLong( _HWnd,GWL_EXSTYLE, Attrib or WS_EX_LAYERED);
SetLayeredWindowAttributes(_HWnd,0,_Value,LWA_ALPHA);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
setTransparencyPercentage(Handle,100);
iShade := 100;
Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (iShade) <= 0 then
begin
Timer1.Enabled := false;
Exit;
end;
iShade := iShade - 4;
setTransparencyPercentage(Handle,iShade);
application.ProcessMessages;
end;

end.

Conclusion :


Tous niveaux
Copier le code source dans une feuille comprenant un "timer1" avec la propriété "interval =10" et exécuter

A voir également

Ajouter un commentaire

Commentaires

gaudetm
Messages postés
44
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
13 décembre 2004

@ DRJEROME

non elle s'applique à tous les composants
suffit de changer le handle!!!

par defaut OnShow prend le handle de la form
par contre pour un boutton, par exemple c'est Button1.handle

voili
DRJEROME
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

Ben, nous connaissions déjà mais c'est bon de le rappeler pour ceux qui ne l'on jamais utilisé...
le problème de cette fonction est que ça ne concerne que les forms...ils auraient pu prévoir pour tous les composants...

JROD
pyroflo
Messages postés
323
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
17 mai 2005

Des commentaires seraient les bienvenus... ;-)

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.