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 :
J'ai mis plusieurs images pngs sur le form. La transparence marche niquel
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;, 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 :
Quelqu'un aurait-il une autre idée pour déplacer la form, ou pour rafraichir la zone transparente ? Merci
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;
Partager