Bonjour,
Le titre ne fait pas totalement le tour de la question.
Disons que j'ai déjà utilisé des images pour colorer certains éléments d'une liste, sujet de tutoriels comme de billets de ma part.
Cette fois j'ai voulu aller un peu plus loin en voulant obtenir la "couleur" de sélection selon le style de cette manière
Pas de souci majeur de ce côté, j'obtiens bien l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 var AStyle,aElement : TFMXObject; aBounds : TBounds; aRect : TRect; begin // obtenir image du style Selection aBitMap := TBitmap.Create(40,40); AStyle:=TStyleManager.ActiveStyle(Self); aElement:=aStyle.FindStyleResource('listviewstyle.selection'); if aElement is TStyleObject then begin if Assigned(TStyleObject(aElement).SourceLink) then begin aBounds:=TBitmapLinks(TStyleObject(aElement).SourceLink).Links[0].SourceRect; aRect:=TRect.Create(Trunc(aBounds.Left),Trunc(aBounds.Top),Trunc(aBounds.Right),Trunc(aBounds.Bottom)); ABitmap.Width:=ARect.Right-ARect.Left; ABitmap.Height:=ARect.Bottom-ARect.Top; aBitmap.CopyFromBitmap(TImage(aStyle.FindStyleResource(TStyleObject(aElement).sourcelookup)).Bitmap,aRect,0,0); end else ABitmap.Clear($FF3FB8C6);; end; ....
le souci c'est à l'application
Vous remarquez certainement la déformation des coins , logique puisque mon image qui sert de fond est étirée (stretched).
La question en découle, comment faire pour ne pas avoir de déformation ? Delphi y arrive donc c'est possible, avant de plonger dans les sources, une idée ?
Partager