マウスオーバー時のTSpeedbuttonの背景色

解決


melan  URL  2025-01-16 15:20:53  No: 151760  IP: 192.*.*.*

ちょっと質問させてください。

初めてTSpeedButtonの画像表示に、TVirtualListBoxとTImageCollectionを使ってみました。
用意したボタン画像はすべてPngで背景は透明です。
通常時には背景が透明で下のパネル色が反映され、まったく問題ないのですが、マウスをボタンの上に置くと背景が白になってしまいます。

何かやり方がまずいのでしょうか?
それともこれが限界なのでしょうか?

編集 削除
AAAAA  2025-01-17 08:36:10  No: 151761  IP: 192.*.*.*

Embarcadero® Delphi 12 バージョン 29.0.51961.7529 だと

    ImageCollection1.Add('','dtffvb2501i0o.cloudfront.net.favicon-32x32.png');
    VirtualImageList1.ImageCollection := ImageCollection1;
    VirtualImageList1.Add('',0,True);
    SpeedButton1.Images := VirtualImageList1;
    SpeedButton1.ImageIndex := 0;

で白くはなりません

編集 削除
melan  2025-01-17 10:35:54  No: 151762  IP: 192.*.*.*

AAAAAさん、返信ありがとうございます。
新規フォームでAAAAAさんのコードを実行したところ問題はありませんでした。

なぜ白くなったのかと、色々テストプログラムを試していたところ原因が分かりました。
実は青色(clHighLight)のPanelの上にSpeedButtonを置いていたため、
MouseOverでデフォルトで描画される背景色と影響し合い、白く見えたようです。
初歩的な勘違いでした。

編集 削除