2012-02-24 23 views
2

TIniFileをオーバーライドする方法コンストラクタを作成しますか?TIniFile.Createを上書きする方法?

このコードが原因作成機能していないが、静的である:

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

答えて

6

それは仮想ではないので、あなたがTIniFileのコンストラクタをオーバーライドすることはできません。 iniファイルクラスは仮想コンストラクタを使用しません。

コードからoverrideを削除するだけで済みます。

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

はこのようにそれを実装します。

MyIniFile := TMyIniFile.Create(MyAppName); 
+2

これは 'TMemIniFile'はまったく同じものです:

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

あなたはこのようにそれを行うに作成する必要がある場合。 –

関連する問題