对params和变量使用相同的名称

Jac*_*ień 0 delphi winapi

无法在互联网上找到任何信息.

我得到了一个指针列表.我正在尝试从指针转换为HWND,这是GetWIndowText方法所需要的

    procedure DoSomething
    var
      text: string;
      someArray: array[0..256] of char;
    begin
      text := GetWindowText(HWND(PointerList[i]), someArray, 256);
    end
Run Code Online (Sandbox Code Playgroud)

Delphi不会让我编译,因为'缺少运算符或分号' - 什么...?

我正在尝试声明变量:var hwnd: HWND;- 期望常量或类型标识符......呃......?

我正在关注互联网上的一些代码.

Dav*_*nan 6

对于变量声明,问题是变量名称和类型是相同的.您可以通过限定类型来解决问题:

var
  hwnd: Windows.HWND;
Run Code Online (Sandbox Code Playgroud)

如果你的真实代码hwnd在你调用GetWindowText时有一个名为visible 的变量,你可能需要在演员表中做同样的事情:

text := GetWindowText(Windows.HWND(PointerList[i]), someArray, 256);
Run Code Online (Sandbox Code Playgroud)

问题是你的变量声明是隐藏的,Windows.HWND并用名为的变量替换它hwnd.

也许更容易避免名字冲突首先:

var
  WindowHandle: HWND;
...
text := GetWindowText(HWND(PointerList[i]), someArray, 256);
Run Code Online (Sandbox Code Playgroud)