次のコードは、Delphi 2007 で期待どおりに動作します。イメージ リストからビットマップを取得し、その上に赤い X を描画し、新しいビットマップを同じイメージ リストの最後に追加します。
DynBmp:=Graphics.TBitMap.Create;
DynBmp.Transparent:=TRUE;
DynBmp.TransparentMode:=tmFixed;
ImgList.GetBitmap(9, DynBmp);
DynBmp.TransparentColor:=DynBmp.canvas.pixels[0, DynBmp.Height - 1];
DynBmp.Canvas.MoveTo(1, 1);
DynBmp.Canvas.Pen.Style:=psAlternate; //psSolid;
DynBmp.Canvas.Pen.Color:=clRed;
DynBmp.Canvas.Pen.Width:=2;
DynBmp.Canvas.LineTo(DynBmp.Width - 1, DynBmp.Height - 1);
DynBmp.Canvas.MoveTo(DynBmp.Width - 1, 1);
DynBmp.Canvas.LineTo(1, DynBmp.Height - 1);
FErrBmpIdx:=ImgList.AddMasked(DynBmp, DynBmp.TransParentColor);
aResetIcon.ImageIndex:=FErrBmpIdx;
FreeAndNil(DynBmp);
Delphi 2010 では、同じコードを使用すると、赤い X が透明な X になります。Delphi 2010 で期待どおりに動作させるには、何を追加/変更する必要がありますか? ありがとう