我将 D2007 和 TcxButton 与来自 Devexpress 的字形图像一起使用,但对于任何图像都应该是相同的。该按钮有 2 种状态,在第二种状态下,我想在原始图像上绘制一个叠加层。所以在这种情况下,我有 1 个名为 Main 的 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