TGrid -> addObject (Header) puis Header-> addObject (TEdit)
Bonjour,
je suis parti d'un code de Serge
Code:
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; |
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...
Quelqu'un peut-il me mettre sur une piste ?
Merci. Cordialement. Gilles.