Einzelnen Beitrag anzeigen

stj

Registriert seit: 20. Feb 2017
3 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: RTTI: FieldType eines Klassenfeldes ist nil !?

  Alt 21. Feb 2022, 17:41
RTTI kann nur mit Typen umgehen, die einen Namen haben, also per type declaration definiert worden sind. "On the fly" erzeugte Typen wie dein ^R gehören nicht dazu.
Hm.

Das scheint aber nur begrenz so zu sein ...
Für die Klasse

Code:
  C4 = class
    X: record F: string end;
  end;
geht das sehr wohl, allerdings ist der Typname von X dann doch sehr kryptisch - :C4.:1

Ziemlich schräg.
Das liegt vermutlich daran, dass der record ein Feld enthält, für dessen Typ (string) der Compiler die Speicherverwaltung übernimmt.
Auch das scheint nicht der Fall zu sein.
Selbst wenn ich

Code:
  C4 = class
    X: record end;
  end;
verwende, wird der Typname :C4.:1 ausgegeben.
Ist für mich absolut unlogisch das Ganze und sorgt bei der Verwendung für einige Klimmzüge

Soweit ich das bisher eruieren konnte gibts das Problem nur für die Variante mit einer (impliziten) Pointer Deklaration.

Geändert von stj (21. Feb 2022 um 17:45 Uhr)
  Mit Zitat antworten Zitat