J'essaye de créer une application skinnée par des pngs (qui peuvent être transparents).

J'ai réussi depuis à créer un form transparent en changeant les paramètres de création et enlevant les bords :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.CreateParams(var Params:TCreateParams);
Begin
 inherited CreateParams(Params);
 Params.ExStyle:=WS_EX_LAYERED;
End;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.Brush.Style:=bsClear;
 Form1.BorderStyle:=bsNone;
end;
J'ai mis plusieurs images pngs sur le form. La transparence marche niquel , il n'y pas de problème.

Cependant j'ai fait une méthode pour déplacer le form, celle-ci marche bien mais mon problème est que toute la zone transparente n'est pas raffraichit : toute la zone qui est était transparente se déplace avec la form.
J'ai essayé plusieurs méthodes, de faire des paint, des repaint,etc.. rien ne marche.
Pour le déplacement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var MovePoint: TPoint;
begin
 if FDragging and FAllowDrag then
   begin
     GetCursorPos(MovePoint);
     SetWindowPos(self.Handle,self.ParentWindow,MovePoint.X - FDownPoint.X,MovePoint.Y - FDownPoint.Y,self.Width,self.Height,0);
   end;
end;
Quelqu'un aurait-il une autre idée pour déplacer la form, ou pour rafraichir la zone transparente ? Merci