【发布时间】:2013-05-14 10:08:58
【问题描述】:
在 Delphi XE2 中处理旧项目时,在 CTRL-SPACE 之后弹出的代码完成窗口并没有像 Delphi 7 那样列出消息处理程序:
在上面的屏幕截图中,缺少WM*** 例程。这是为什么呢?
【问题讨论】:
标签: delphi delphi-xe2 code-completion
在 Delphi XE2 中处理旧项目时,在 CTRL-SPACE 之后弹出的代码完成窗口并没有像 Delphi 7 那样列出消息处理程序:
在上面的屏幕截图中,缺少WM*** 例程。这是为什么呢?
【问题讨论】:
标签: delphi delphi-xe2 code-completion
uses 子句中的单位名称不是完全限定的。包括每个单元的命名空间,然后找到方法声明的必要类型,让代码完成弹出窗口返回所有成员。
例如:
Winapi.Messages.TWMActivate 时不会显示procedure WMActivate(var Message: TWMActivate);,Vcl.Controls.TCMActivate 时,不会显示procedure CMActivate(var Message: TCMActivate);。解决方案:
uses
Winapi.Windows, Winapi.Messages, System.Classes, Vcl.Controls, Vcl.Forms,
Vcl.Graphics;
究竟为什么会这样,我不敢解释。特别是因为无论相关单元是否完全合格,都会显示所有其他方法(不是消息处理程序)。但这并不重要;在 Delphi 2009 或更高版本中工作时,您应该习惯于使用完全限定的单元名称。
【讨论】: