Bonjour,
Même si le programme proposé était FMX, on m'a signalé (il y a peu) qu'il ne fonctionnait qu'uniquement en application de bureau et pas sur les mobiles

Tout d'abord une faute s'était glissé dans le zip, dans la version proposée le PrototypeBindSource n'a pas de champ Bitmap et donc pas de liaison, contrairement à ce qui est indiqué dans le texte du tutoriel. À la place un TBitmap était créé à l'exécution et ce pour chaque élément, ce qui nécessitait, au demeurant, un nettoyage en fin de programme.
Vous serez certainement heureux d'apprendre que j'ai enfin trouvé une solution à ce problème et ce en ajoutant une seule ligne de 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 34 35 36 37 38
|
procedure TForm1.ListView1UpdatingObjects(const Sender: TObject;
const AItem: TListViewItem; var AHandled: Boolean);
var AListItemBitmap : TListItemImage;
AListItemText : TListItemText;
AColor : TAlphaColor;
i : Word;
begin
AListItemBitmap:=AItem.Objects.FindObjectT<TListItemImage>('Image2');
{$IFNDEF STEP2}
AListItemText:=AItem.Objects.FindObjectT<TListItemText>('Text1');
if Assigned(AListItemBitmap) then
begin
AListItemBitmap.OwnsBitmap:=True; // ici la modification
AListItemBitmap.Bitmap:=TBitmap.Create(40,40);
try
AColor:=StringToAlphaColor(AListItemText.Text)
except // certaines couleurs sont inconnues! i.e. monneygreen, ltgrey
AColor:=TAlphaColorRec.Null;
end;
AListItemBitmap.Bitmap.Clear(Acolor); //:=ABitmap;
end;
{$ENDIF}
{$IFDEF STEP2}
if Assigned(AListItemBitmap) then
begin
AListItemBitmap.OwnsBitmap:=True; // ici la modification
AListItemBitmap.Bitmap:=TBitmap.Create(40,40);
i:=Abs(AItem.Text.ToInteger) mod 3;
case i of
0 : AColor:=TAlphaColorRec.Green;
1 : AColor:=TAlphaColorRec.Yellow;
2 : AColor:=TAlphaColorRec.Red;
end;
AListItemBitmap.Bitmap.Clear(AColor);
end;
{$ENDIF}
end; |
Le fait d'indiquer que l'image appartient à l'élément (
OwnsBitmap:=True) change tout et, cerise sur le gâteau, plus besoin de nettoyage en fin de programme.
Je vais tenter de modifier tutoriel via un addenda et les sources jointes, toutefois la rédaction de ces derniers avait été faite sur un disque qui a planté lors de ma présentation à Paris, croisez les doigts
0 |
0 |