我是 Delphi 新手,试图对几年前实现的项目进行调试。我的IDE是Delphi 2010,代码有错误;
function DrawTextExW(hDC: HDC; lpString: PWideChar; nCount: Integer; var lpRect:
TRect; uFormat: UINT; dtp: PDRAWTEXTPARAMS): Integer;
const
MAX_STATIC_BUFFER = 8192;
const
STATIC_BUFFER_LEN: integer = 8192;
const
DT_PREFIXONLY = $00200000;
var
...
tm: TTextMetricA;
...
begin
...
GetTextMetrics(hDC, tm); //Error Line
if (uFormat and DT_EXTERNALLEADING) = DT_EXTERNALLEADING then
lh := tm.tmHeight + tm.tmExternalLeading
else
lh := tm.tmHeight;
...
end
该行中出现“[DCC 错误] ElVCLUtils.pas(3555): E2033 实际和形式 var 参数的类型必须相同”错误。这段代码有什么问题?
最佳答案
您应该使用其中之一
var
...
tm: TTextMetric;
...
begin
...
GetTextMetrics(hDC, tm);
或
var
...
tm: TTextMetricA;
...
begin
...
GetTextMetricsA(hDC, tm);
第一个版本更可取。
关于Delphi - E2033 实际和形式 var 参数的类型必须相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270083/