Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
9. Jun 2014
Was ist denn FItems nun eigentlich?
Die Char-Größe muß man nur einrechnen, wenn sich die Große auf Chars bezieht.
Wenn sich das nur auf einen String-Pointer und nicht auf den String-Inhalt bezieht, dann hat das dort absolut nichts zu suchen.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
9. Jun 2014
Delete:
Erst Freigeben (Finalize), und zwar das, was du löschst. :warn:
dann verschieben, was vor muß und das, was verschoben, aber nicht gelöscht wurde, leeren FillChar, sonst ist der Eintrag doppelt da und du hast somit die Referenzzählung zerschossen.
Oder das erst den zu Löschenden zuwischenspeichern (Move in ine Tempvariable), dann verschieben und den zu löschenden an letzter Stelle...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
8. Jun 2014
Also vom Code her sieht es OK aus und sollte so auch funktionieren.
Aber wo werden da Bytes gemovet und wenn ja Welche?
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
8. Jun 2014
Natürlich so, wie man es von C++ und Co. auch kennt.
Also das CharCount.
Drum sieht das seit Delphi 2009 in etwa so aus, seitdem das PChar kein PAnsiChar mehr ist. :zwinker:
{$IFNDEF NEXTGEN}
function StrMove(Dest: PAnsiChar; const Source: PAnsiChar; Count: Cardinal): PAnsiChar;
begin
Result := Dest;