![]() |
TypeInfo von Variable abfragen
Halli Hallo,
kann man sich eigentlich auch die RTTI-Infos einer Variable besorgen oder geht das immer nur über einen Typen? Dieses ginge erstmal:
Delphi-Quellcode:
Aber ginge auch sowas?
type
TArr = array of String; var Arr: TArr; Len: Integer; begin //SetLength(Arr, 3); Len := 3; DynArraySetLength(Pointer(Arr), TypeInfo(TArr), 1, @Len); end;
Delphi-Quellcode:
Ich möchte da Einiges gern vereinfachen und da wäre sowas schon praktisch.
var
Arr: array of String; Len: Integer; begin Len := 3; DynArraySetLength(Pointer(Arr), TypeInfo(Arr), 1, @Len); end; // ^^^ (und es geht um die alte RTTI, bis mindestens D2006 oder gar bis D7) schonmal Danke, dat :angel:-chen [edit] OK, hat sich erledigt. So wie geplant ginge es eh nicht, da sich System.FinalizeArray, bzw. System._FinalizeArray oder Finalize inkl. TypeInfo-Angabe nicht direkt aufrufen läßt. :cry: |
Re: TypeInfo von Variable abfragen
Zitat:
Delphi-Quellcode:
Gruß Hagen
asm
call System.@FinalizeArray // oder call @FinalizeArray end; |
Re: TypeInfo von Variable abfragen
Nja, ich wollte den Code an ein paar Stellen übersichtlicher/kürzer gestalten und daher nicht gleich mit Assembler anfangen.
Abgesehn davon kann man sowas dann leider als nicht Inline-Funktion deklarieren, welches für eine Optimierung schon praktisch wäre. PS: darum meinte ich auch "nicht direkt aufrufen läßt." :angel: Es ging mir hier um dynamische Arrays und das Entfernen von Einträgen (in der Mitte). Speziell wollte ich eine "Löschfunktion" für mehrere unterschiedliche Arrays implementieren, anstatt die "fast" gleiche Befehlsfolge mehrmals im Code zu haben. Hatte da auch schon die Idee eventuell auf TList-Derivate umzusteigen, aber dieses wurde Aufrund einiger Nachteile verworfen, da die Vorteile nicht überwogen ... gleichstand, was wiederum den Aufwand einer Umstellung nicht unbedingt rechtfertigte. Aber dennoch dank :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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