从TCustomControl继承时出现“属性Align不存在”的问题

7

我创建了一个继承自TCustomControl的自定义控件,并发布了TControl的属性Align。但是,在C++Builder项目中使用这个自定义控件时,它会引发异常:

Project Launcher.exe raised exception class EReadError with message 'Property Align does not exist'.

以下是自定义控件的代码。

unit GameListCtrl;

interface

uses
  SysUtils, Classes, Controls;

type
  TGameList = class(TCustomControl)
  private
  protected
    procedure Paint; override;
  public
    { Public declarations }
  published
    property Align default alLeft;
  end;

implementation

{ TGameList }

procedure TGameList.Paint;
begin
  inherited;
end;

end.

你检查过 TCustomControl 是否实际引用了正确的 Vcl.Controls.TCustomControl 吗? - Peter
@PeterVonča 是的,它引用了 Vcl.Controls.TCustomControl。 - UltimaWeapon
1个回答

11
通常这种错误发生是因为包没有正确地重新构建。然后,您需要打开包含单元“GameListCtrl”的包项目并重新构建该包。确保激活选项以让RAD Studio创建C ++ Builder文件。
如果这没有帮助,链接器可能会选择错误的/旧的DCU或obj文件。搜索所有驱动器并删除所有可以找到的GameListCtrl.dcu和GameListCtrl.obj文件。我使用JAM Software的UltraSearch快速搜索本地驱动器,它比Windows Search更快,因为它直接在NTFS结构上工作。
您还可以尝试在项目选项中切换到静态链接。

1
删除了所有的包文件并重新构建后,现在它可以工作了。谢谢。 - UltimaWeapon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接