0
Delphi 10.1 Berlin. ListView.ItemAppearance = DynamicAppearance. Ich möchte Bild in ListViewItem in Runtime ändern.Listenansicht ändern Bild zur Laufzeit Delphi 10.1 Berlin
Mein Code:
procedure TForm1.Button2Click(Sender: TObject);
var
k:integer;
begin
LsvAl.BeginUpdate;
for k := 0 to LsvAl.ItemCount-1 do
begin
if (k mod 2)=0 then
begin
TListItemImage(LsvAl.Items[k].Objects.FindDrawable('Imp1')).Bitmap.Assign(Image2.Bitmap); //
TListItemText(LsvAl.Items[k].Objects.FindDrawable('TxtNum')).TextColor:=$FFFF2346;
end
else
begin
TListItemImage(LsvAl.Items[k].Objects.FindDrawable('Imp1')).Bitmap.Assign(Image1.Bitmap);
TListItemText(LsvAl.Items[k].Objects.FindDrawable('TxtNum')).TextColor:=$FF009DFE;
end
end;
LsvAl.EndUpdate;
Ende;
Im Ergebnis: alle Bilder rot (auch Image1).
Was mache ich falsch?
OK, ich fand die Entscheidung. Das Problem war in Bitmap.Assign. Der normale Weg ist TListItemImage (LsvAl.Items [k] .Objects.FindDrawable ('Imp1')). Bitmap: = Image2.Bitmap; – Rusland
Es ist schwer zu wissen, wann() eine btimap und wann: = eine Bitmap zugewiesen werden soll. – nolaspeaker