Ich habe diverse Records aus relativ kurzen Strings, die Schlüssel von TDictionary sein können. Aus dem Grund muss ich ShortString benutzen.
Diese Schlussfolgerung verstehe ich jetzt nicht. Wieso musst du dazu
ShortString benutzen? Weder
relativ kurze Strings noch
Schlüssel von TDictionary implizieren
ShortString.
Aber wenn ich Strings in einen Record packe. TDictionary scheint die TKeys zu hashen, also muss in gleichen Keys auch exakt das gleiche drinstehen. Daher auch ZeroMemory, denn sonst steht hinter den Nutzdaten noch Blödsinn. Einfache WideStrings hingegen sieht TDictionary nicht als die Pointer an, die sie eigentlich sind, und kann erkennen, wenn zwei TKeys gleich sind.
Kurze Strings nur als Hinweis, damit niemand befürchtet, mein Speicher könnte nicht reichen. Abgebildet werden bei mir nvarchar(20).