Bonjour,

Je dois être aveugle ou avoir un gros trou de mémoire, mais il me semblait que le code suivant était valide en Delphi ou Lazarus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
unit unitcryptinifile;
 
interface
uses inifiles, classes;
type
  TCryptIniFile = class(TMemIniFile)
  private
    m_cryptage : integer ;
  public
    constructor Create ( const aFileName: string; AEscapeLineFeeds : Boolean = False; const aCryptage : integer = 0); override ;
    destructor Free ; override;
  end;
Or, j'ai le message d'erreur suivant à la compilation :

Error: There is no method in an ancestor class to be overridden: "constructor TCryptIniFile.Create(const ShortString, Boolean="FALSE",const LongInt="0");"



La définition de TMemInifile.ShortString contient pourtant (avec string et non shortstring dans le premier paramètre contrairement au message d'erreur) :
constructor Create(const AFileName: string; AEscapeLineFeeds : Boolean = False); override;


Si j'enlève la clause override, j'obtiens :
Warning: An inherited method is hidden by "constructor TCryptIniFile.Create(const ShortString, Boolean="FALSE",const LongInt="0");"

Il me semblait bien que l'override était nécessaire et que c'est que je fais déja en bien d'autres cas.

Pouvez-vous m'aider ?
Merci
Martinux