AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

record mit dynamischem objekt

Ein Thema von Pixel · begonnen am 19. Feb 2017 · letzter Beitrag vom 19. Feb 2017
 
Pixel

Registriert seit: 23. Aug 2016
26 Beiträge
 
#1

record mit dynamischem objekt

  Alt 19. Feb 2017, 11:19
Delphi-Version: 5
Hallo,

ich wusste nicht wie ich den Titel vergeben sollte, ist wahrscheinlich falsch, naja ich beschreibe mal mein Vorhaben.

Ich habe diese 4 records:

Delphi-Quellcode:
  
  TDot = packed record
    Coordinates : TPoint;
    Offset : Integer;
  end;

  TSlider = packed record
    Coordinates : array of TPoint;
    Offset : Integer;
    Length : Single;
    SliderType : TSliderType;
    Repetitions : Integer;
  end;

  TSpinner = packed record
    Offset : Integer;
    Length : Integer;
  end;

  THitObject = packed record
    Coordinates : array[0..0] of Integer;
    Offset : Integer;
    HitObjectType : THitObjectType;
    HitObject : Pointer;
  end;
Im Prinzip geht es um das letzte record THitObject . Man sieht am Ende die Deklaration HitObject : Pointer . Hier würde ich gerne in Abhgängikeit von HitObjectType (TDot , TSlider oder TSpinner ), was während der Laufzeit bekannt wird, das zugehörige Objekt in HitObject stehen haben.

Also angenommen HitObjectType wäre TSpinner , dann sollte HitObject ein TSpinner sein.

Mein Ansatz:

Ich glaube man müsste die Objekte global deklarieren, also z.B. in private, weil sie sonst nicht mehr gültig sein würden, bei Beendigung der Prozdeur wo das alles ermittelt wird oder?

Also:
Delphi-Quellcode:
private
  var Sliders : array of TSlider;
Und dann in zur Laufzeit mit SetLength(Sliders, X) und HitObject := @Sliders[X] .

Mir kommt das unsauber vor.


Wie würdet ihr sowas machen?

Geändert von Pixel (19. Feb 2017 um 11:22 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz