Bonjour,
je suis parti d'un code de Serge
Je cherche à implanter dans les entêtes de certaines colonnes d'un TGrid 2 images et un TEdit. J'ai pensé que addObject était la bonne approche. En voyant le code de Serge, j'ai un doute... renforcé par mes diverses tentatives. J'ai réglé le problème autrement disons par "~superposition" d'objets mais la fin ne justifie pas les moyens : ce code me déplaît totalement. C'est une méthode qui n'a pas lieu d'être avec un langage moderne ! J'avais compris que comme avec d'autres langages objet, il était possible d'inclure des objets dans des objets avec FireMonkey... et donc j'ai pensé à addObject...
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
22
23
24
25
26
27
28
29
30
31
32
33 function GetHeaderColors(Sender: TObject; var BackGroundColor,TextColor : TAlphaColor) : TBrush; var Header : THeader; HeaderItem : THeaderItem; aFMXObj : TFMXObject; begin // valeurs par défaut BackGroundColor:=0; TextColor:=TAlphaColors.Black; // recherche dans les styles Header:=THeader((Sender as TGrid).FindStyleResource('header')); if Assigned(Header) then begin // obtention d'un élément HeaderItem := Header.Items[1]; // accès au style du texte AFMXObj:=THeaderItem(HeaderItem).FindStyleResource('Text'); TextColor:=TText(AFMXObj).TextSettings.FontColor; // accès au style du fond AFMXObj:=THeaderItem(HeaderItem).FindStyleResource('background'); Result:=TRectangle(AFMXObj).Fill; if Assigned(result) then begin if (Result.Kind=TBrushKind.Gradient) then begin BackGroundColor:=Result.Gradient.InterpolateColor(50); // de horizontal à vertical ? (Pas concluant) Result.Gradient.StartPosition.X:=1; Result.Gradient.StartPosition.Y:=1; end else BackGroundColor:=Result.Color; end; end; end;
Quelqu'un peut-il me mettre sur une piste ?
Merci. Cordialement. Gilles.
Partager