我有一個工具欄,我正在使用以下過程在其中一個工具按鈕中更改矩形的顏色。 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