有一些程序工具,例如WinSpy++,可让您将鼠标悬停在任何控件/组件的句柄上并返回该句柄的类名称。因此,例如,如果我将TMemo放在Delphi窗体上并编译了该应用程序,则如果我使用WinSpy++并将鼠标悬停在该应用程序上(在备注上方),它将显示编辑器的类名称为TMemo。

现在,假设我不希望任何人使用这样的程序来确定我的应用程序中正在使用的组件,如何防止类名显示在WinSpy++之类的工具中?

我问是因为我不希望任何人轻松地创建我可以创建和发布的任何应用程序的克隆,如果发现我正在使用的组件的类名,这将使他们的工作变得容易,因为他们知道使用什么。

简而言之,如何从诸如WinSpy++之类的外部查看器工具中隐藏在Delphi应用程序中使用的VCL的类名。

WinSpy++可以在这里找到:http://www.catch22.net/software/winspy

作为补充,我知道我可以自定义派生这些组件以将类名更改为我自己的类名,但是它们必须是更简单的方法。

最佳答案

您可以覆盖CreateParams并将自己的类名放入Params.WinClassName中。默认行为在TWinControl.CreateParams中实现:

with Params do
  ...
  StrPCopy(WinClassName, ClassName);

关于delphi - 隐藏VCL类别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5964400/

10-12 01:27