Forum: Object-Pascal / Delphi-Language
by himitsu,
7. Mär 2012
StringElementSize wurde eingeführt, als in D2009 der UnicodeString eingeführt und der AnsiString verändert/erweitert wurde.
function StringElementSize(const S: String): Word; // String = AnsiString, UnicodeString oder WideString
function StringCodePage(const S: String): Word;
function StringRefCount(const S: String): Integer;
procedure SetCodePage(var S: RawByteString; CodePage: Word;...
Forum: Object-Pascal / Delphi-Language
by himitsu,
7. Mär 2012
var
S: String;
Label1.Caption := Format('%s %s', ), StringElementSize(S)]);
:stupid:
Forum: Object-Pascal / Delphi-Language
by himitsu,
7. Mär 2012
OK, dann maximal 50%?
Mir war das bisher nur in Schleifen aufgefallen.
Aber das Fazit ist ganz einfach.
Result-Variablen müssen/sollten immer initialisiert werden, wenn mit ihnen gerechnet wird.
Also immer dann, wenn das Result, innerhalb der Funktion, ausgewertet und nicht nur stur gesetzt wird.
Mam muß bedenken, daß bei diesen gemanagten Result-Typen vom Compiler eine Prozedur...
Forum: Object-Pascal / Delphi-Language
by himitsu,
7. Mär 2012
Zu 99% geht es auch ohne Initialisierung, aber darauf verlaß dich besser mal nicht. :roll:
Das Result ist leider ein ganz blöder Sonderfall, denn die automatisch Initialisierung von String, dyn. Array und Interface liegt nicht in der Methode, so wie bei den lokalen Variablen, sondern beim Aufrufer und da gibt es ganz nette Seiteneffekte, welche dafür sorgen, daß das Result nicht mit ''...