Affichage avec effet de transparence

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

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.