Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
674 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fehlermeldung "besitzt keine Typinformation" bei enum

  Alt 22. Apr 2022, 10:35
Hallo,
mit der Compilereinstellung "Laufzeittypinformationen ausgeben" := true, kommt die Fehlermeldung "Typ 'TConvJob' besitzt keine Typinformationen"

Delphi-Quellcode:
type
  TConvJobType = (cjUpdate, cjApply, cjActivate, cjDeactivate, cjCopied);
  TConvJob = set of cjUpdate..cjCopied;
Der Fehler wird angezeigt in der vorletzten Zeile ("implementation") meiner "uIntf.pas" Datei, in der nur Interfaces definiert werden.
Unter anderem interfaces die auch den Typ TConvJob nutzt:
Delphi-Quellcode:
  IJobMng = interface(IInterface)
  ['{7C645C7E-2523-453D-AB47-056AE17FD449}']
    function GetJobsDone: TConvJob;
    procedure SetJobsDone(ThisVal: TConvJob);
  end;
danke für jede Hilfe
In Delphi gibt es leider zwei unterschiedliche Versionen von RTTI, die alte (siehe unit system.typinfo) gibt es schon seit Delphi 1, die neue (extended RTTI, mehr an .NET Reflection angelehnt) ist wesentlich neuer. Der von Dir erwähnte Compilerschalter beeinflußt nur die Erzeugung von extended RTTI, für enumerated types wird aber noch die alte RTTI verwendet, und die wird nur erzeugt, wenn sie auch irgendwo verwendet wird. Das passiert z. B. wenn man den enum-Typen für eine published property verwendet, oder irgendwo die TypeInfo-Funktion für ihn aufruft. Versuch mal ein
Delphi-Quellcode:
type
{$TYPEINFO ON}
TConvJobType = (cjUpdate, cjApply, cjActivate, cjDeactivate, cjCopied);
Vielleicht hilft das...
Peter Below
  Mit Zitat antworten Zitat