2016-05-04 18 views
0

デルファイ10.1ベルリン。 ListView.ItemAppearance = DynamicAppearance。 ランタイムでListViewItemのImageを変更したいと思います。実行時のリストビューイメージの変更デルファイ10.1ベルリン

View

マイコード:

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; 

終了。

結果:すべての写真が赤色(画像1も)です。

Before

After

私が間違って何をしているのですか?

Project source

+0

OK、私は決定を見つけました。問題はBitmap.Assignにありました。通常の方法はTListItemImage(LsvAl.Items [k] .Objects.FindDrawable( 'Imp1'))です。ビットマップ:= Image2.Bitmap; – Rusland

+0

btimapをいつ()に割り当てるのか、いつにするのかは分かりません:=ビットマップ。 – nolaspeaker

答えて

0

1個のアドオンです - ビットマップを割り当てた後、あなたが AItem.OwnsBitmapによってアイテムの所有者を行うことができます= Trueの場合;

関連する問題