代码完成不会列出消息处理程序

时间:2013-05-19 21:15:31

标签: delphi delphi-xe2 code-completion

在Delphi XE2中处理旧项目时,在 CTRL - SPACE 之后弹出的代码完成窗口没有列出像Delphi 7这样的消息处理程序:< / p>

Screen shot

在上面的屏幕截图中,缺少WM***例程。那是为什么?

1 个答案:

答案 0 :(得分:10)

uses子句中的单元名称不是完全限定的。包含每个单元的命名空间,然后找到方法声明的必要类型,让代码完成弹出窗口返回所有成员。

例如:

    找不到procedure WMActivate(var Message: TWMActivate); 时,
  • Winapi.Messages.TWMActivate将不会显示 找不到procedure CMActivate(var Message: TCMActivate);时,
  • Vcl.Controls.TCMActivate将不会显示。

解决方案:

uses
  Winapi.Windows, Winapi.Messages, System.Classes, Vcl.Controls, Vcl.Forms,
  Vcl.Graphics;

enter image description here

究竟是为什么这样,我不敢解释。特别是因为显示所有其他方法(不是消息处理程序)是否相关单元是否完全合格。但这并不重要;在Delphi 2009或更高版本中工作时,您应该习惯使用完全合格的单位名称。