如何覆盖TIniFile.Create?

时间:2012-02-24 20:06:16

标签: delphi

如何覆盖TIniFile.Create构造函数?

此代码无效,因为Create是静态的:

  TMyIniFile = class(TIniFile)
   protected
   public
     constructor Create  (CONST AppName: string); override;  <------ Error 'Cannot override a non-virtual method' 
   end;

1 个答案:

答案 0 :(得分:6)

您不能覆盖TIniFile的构造函数,因为它不是虚拟的。 ini文件类不使用虚拟构造函数。

您只需从代码中删除override即可。

TMyIniFile = class(TIniFile)
public
  constructor Create(const AppName: string);
end;

像这样实施:

constructor TMyIniFile.Create(const AppName: string);
begin
  inherited Create(FileName);//I can't tell what you need as FileName
  FAppName := AppName;
end;

如果你需要创建一个,你可以这样做:

MyIniFile := TMyIniFile.Create(MyAppName);