Devexpress のグリフ画像で D2007 と TcxButton を使用していますが、どの画像でも同じである必要があります。ボタンには 2 つの状態があり、2 番目の状態では、元の画像の上にオーバーレイを描画します。したがって、この場合、Main と呼ばれる 1 つの Imagelist があります。メイン画像はインデックス 0 に保存され、オーバーレイはインデックス 1 に保存されます。小さなテストプロジェクトを作成しましたが、これが機能しません。
procedure TForm6.CheckBox1Click(Sender: TObject);
var
vBm: TBitMap;
vOverlay: TOverLay;
begin
if Main.GetBitmap(0, vBm) then
begin
vOverlay := 1;
if CheckBox1.Checked then
begin
// procedure DrawOverlay(Canvas: TCanvas; X, Y: Integer; ImageIndex: Integer; Overlay: TOverlay; Enabled: Boolean = True); overload;
Main.DrawOverlay(vBm.Canvas, 0, 0, vOverlay, True);
end
else
begin
Main.DrawOverlay(vBm.Canvas, 0, 0, vOverlay, False);
end;
end;
end;
だから私はメイン画像とオーバーレイが同じ Imagelist にある必要があると思いますか? 今ではコンパイルさえしません。
[DCC エラー] Unit6.pas(41): E2250 これらの引数で呼び出すことができる 'DrawOverlay' のオーバーロードされたバージョンはありません
編集:
提案された解決策を試しました。コンパイルしましたが、何も起こりませんでした。プロジェクトへのリンクは次のとおりですhttps://www.dropbox.com/sh/tk5n7frkbveyxbz/D1O4Ags9fS/Overlay