Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: record mit dynamischem objekt

  Alt 19. Feb 2017, 10:34
Ich habe zwar den Zusammenhang überhaupt nicht verstanden, aber wenn es darum geht, zu ermitteln, was konkret in Deinem HitObject-Feld steht, könntest Du doch statt der Records gleich Klassen verwenden. Zur Laufzeit ermittelst Du dann mit is, welche konkrete Klasse das ist.
Delphi-Quellcode:
type
  TMyObject = class
  private
    FOffset: integer;
  public
    property Offset: integer read FOffset write FOffset;
  end;
  
  TSpinner = class(TMyObject)
  private
    FLength : Integer;
  public
    property Length: integer read FLength write FLength;
  end;
Das Feld in THitobject ist dann vom Typ TMyObject statt Pointer.
Delphi-Quellcode:
if HitObject.HitObject is TSpinner then
  TSpinner(HitObject.HitObject).Length := 42;
Noch eleganter wären zwar Interfaces, ich weiß aber nicht, ob Du damit klarkommst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat