私はツールバーを持っており、次の手順を使用してツールボタンの1つの四角形の色を変更しています。 ImageListのColorDepth
はcl24Bit
であり、はdsTransparent
です。手順は正常に動作します。実行時のツールボタンの画像の変更がもう機能しません
procedure TANewMain.BtReplaceHighOnClick(Sender: TObject);
var
ABitmap: TBitmap;
ARect: TRect;
begin
ABitmap := TBitmap.Create;
try
ImgList.GetBitmap(1, ABitmap);
ABitmap.Canvas.Brush.Color := ColorToRGB(clRed); // S04
ABitmap.Canvas.Pen.Color := ColorToRGB(clBlue);
ARect := Rect(5, 1, 11, 15);
ABitmap.Canvas.Rectangle(ARect);
ImgList.ReplaceMasked(1, ABitmap, clWhite);
finally
ABitmap.Free;
end;
end;
私が再利用のためにリポジトリにプログラムを追加すると正常に動作します。しかし、私が最初から新しいプログラムを始めて、まったく同じ手順を使うと、私は白いボタンを得る。私は、イメージリストとツールバーのプロパティが両方のプログラムで同じであることを確認しました。動作するプログラムは、しばらく前に書かれたものです。問題はWindowsのアップデートと関係がありますか?私はWindows 10とDelphi 10を使用しています。
マイボタンには、RichEditコントロール(Microsoft Wordのフォントカラーボタンの下線に似ています)のハイライトテキストの選択された前後の色が反映されます。ありがとうございました。問題が解決しました。 – Rudi
問題は何だったのですか?W10は24ビットビットマップをサポートしていません。 –
@Sertac Akyuz私はWindows 10で動作するDelphi 10を使用しています。画像リストの色の濃さはcl24Bitに設定されており、ランタイムテーマは無効になっています。これらの設定を使用すると、手順によって目的の結果が得られます。 Windowsのプロパティダイアログを使用して、イメージリストにインポートされたビットマップを調べると、ビット深度が24であることがわかります。したがって、Windows 10/Delphi 10は状況をよく処理しているようです。 – Rudi