Delphi - E2033 实际和形式 var 参数的类型必须相同

标签 delphi delphi-2010

我是 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/

相关文章:

delphi - 同一应用程序上的多个 TIdCmdTCPServers

delphi - Delphi 2010 中的 Rtti 数据操作和一致性

compiler-errors - Delphi突然说找不到 “[Warning Warning] Local file ” Android\Debug\classes.dex“。跳过部署。”

delphi - Internet Explorer COM 自动化对象在可见性更改时刷新

delphi - 有没有办法阻止 TJvDocServerForm 在取消固定时隐藏?

delphi - 如何在运行时使用键盘在 Delphi 中移动控件?

delphi - 插入到多个表中

delphi - System.Variants.NullStrictConvert 的范围

delphi - 从 Delphi 程序调用 C DLL

delphi - 使用 TIdMessageBuilderHtml 设置电子邮件附件名称