![]() |
AW: NativeInt to string
Das ist wie der Unterschid bei
Delphi-Quellcode:
Oder String-Resourcen.
var
S: string; P: Pointer; P := @S[1]; P := @S[Low(string)]; // weil im Mobilen waren die Strings mal 0-basiert, also S[0] war das erste Zeichen wenn für iOS kompiliert P := @S; // Zeiger auf die Variable, nicht auf den String P := PChar(S); // Zeiger auf den String (erstes Zeichen), aber wenn '', dann Ersatzweise ein Zeiger auf die Konstante EmptyString mit #0#0 P := Pointer(S); // bei '' ist das hier NIL (wichtig, wenn man z.B. mit Leerstrings in der WinAPI arbeitet) In dem PChar werden "Werte" bis #$0000FFFF als Index für die PE-Ressourcen benutzt, und darüber sind es Zeiger auf Strings. Ich kenn Leute, die schreiben auch
Delphi-Quellcode:
anstatt
S := EmptyString;
Delphi-Quellcode:
, was per se nicht falsch ist, aber
S := '';
ich hatte mal mit EmptyString eine böse Erfahrung. Und auch wenn der "Code" so selbstsprechend ist, empfinde ich "Namen" als Konstante/Variable auf "etwas" und nicht als "Nichts" ... kann so den Code schlechter lesen. Durch einen schiefen Pointer wurde dort etwas in EmptyString reingeschrieben, denn "typisierte String-Konstanten" sind in Wirklichkeit "schreibgeschützte Variablen", aber sie lassen sich dennoch beschreiben. Mit dem Ergebnis, dass wir eine halbe Woche danach suchten, warum alle DevExpress-Grids im Programm in "leeren" Zellen plötzlich "etwas" anzeigten, denn sie nutzen auch EmptyString zu Initialisierung. |
AW: NativeInt to string
Deine Ausführung ist Interessant!
Danke nochmals. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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