![]() |
Delphi-Version: 10.4 Sydney
Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Hallo,
weiss jemand zufällig, ob es eine Möglichkeit gibt zu erkennen, ob ein Pointer auf ein Object, einen String, ein Array oder einen Record zeigt? Ich nutze die aktuelle Delphi Version 11. Danke Oliver |
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Nein, das ist nicht möglich, denn ein Pointer ist ja nur eine Variable mit einer Speicheradresse.
Was möchtest du denn erreichen? |
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Objekt, String und dynamisches Array kann man "versuchen" über eine Heuristik zu erkennen,
aber mit False-Positive sollte man da rechnen, falls irgendwas dem Erkennungsmuster entspricht. |
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Für solche Fälle gibt es den Typ Variant.
|
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Zitat:
|
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Zitat:
oder man speichert den Flag (Enum) neben dem Pointer, als Eigenschaft was dann im Pointer drin ist. Weil wo im String oder sonstirgendeinem "Pointer" legst sonst deinen Flag/ENUM ab? |
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
Zitat:
|
AW: Wie erkennen ob Pointer ein Object, String, Array oder Record ist
TValue (System.RTTI)
Oder TVarRec (array of const), aber das kann auch keine Records, denn bei einem Record oder einem typitiserten Pointer, da müsste man zusätzlich auch noch die TTypeInfo mit speichern. Ebenfalls bei statischen Arrays, wobei dynamische Arays und LongStrings (AnsiString, UnicodeString und Ableitungen) ihre TypeInfo, bzw. CharSize+CodePage in sich tragen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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-2025 by Thomas Breitkreuz