Hallo,
ich hatte unter Delphi 7 diese Konstruktion (bzw. Klasse), die ohne Probleme funktionierte:
Delphi-Quellcode:
type
TCipher = class(TObject)
protected
class function GetGUID(): TGUID; virtual; abstract;
class function GetName(): WideString; virtual; abstract;
class function GetShortDesc(): WideString; virtual; abstract;
class function GetAdvDesc(): WideString; virtual; abstract;
class function GetDevelopers(): WideString; virtual; abstract;
class function GetSecurity(): Integer; virtual; abstract;
class function GetSpeed(): Integer; virtual; abstract;
public
property Name : WideString read GetName;
property ID : TGUID read GetGUID;
property ShortDesc : WideString read GetShortDesc;
property AdvDesc : WideString read GetAdvDesc;
property Developers : WideString read GetDevelopers;
property Security : Integer read GetSecurity;
property Speed : Integer read GetSpeed;
procedure WriteInformationToStream(F: TStream); virtual; abstract;
procedure ReadInformationFromStream(F: TStream); virtual; abstract;
procedure EnCryptText(const InPut, Password: WideString;
var Result: WideString); virtual; abstract;
procedure EnCryptFile(InPut, OutPut: TStream;
const Password: WideString); virtual; abstract;
procedure DeCryptText(const InPut, Password: WideString;
var Result: WideString); virtual; abstract;
procedure DeCryptFile(InPut, OutPut: TStream;
const Password: WideString); virtual; abstract;
end;
Unter Delphi 2005 bekomme ich jedoch diese Fehlermeldungen:
Zitat:
[Fehler] uAppCipherClass.pas(30): E2356 Für Eigenschaftszugriff muss ein Instanzenfeld oder eine Instanzenmethode verwendet werden
[Fehler] uAppCipherClass.pas(22): E2065 Ungenügende Forward- oder External-Deklaration: 'TCipher.GetGUID'
Erstere für jede property, letztere für jede Abstrakte Methode.
Was mache ich falsch und wieso ist solch ein Konstrukt nicht mehr in Delphi
Win32 in Delphi 2005 erlaubt?
mfG
mirage228