Hallo derMischka und somby;
Die Überarbeitung ist super ... zwischen der Version 2013 zur heutigen sind nun alle Speicherleaks behoben worden!
auch Getmem ist aus den Funktionen entfernt worden (mir fehlte da der Gegenpart "FreeMem" in den Functionen ... )
und Cardinal vs. loses Integer-typ ist behoben ...
und TabControl schießt nicht mehr ab ...
etc.pp ...
Das Teil sieht mit der jetzigen Version nach einer schönen runde Sache aus.
Eine Frage habe ich noch ... die var TDynWSbuf in den Funktionen ... ist es noch sinnige diese zu inizialisieren und finalisieren?
also am Anfang der jeweiligen Function ein
Initialize(wsBuf);
SetLength(wsBuf, 0);
und am Ende der Funktion
SetLength(wsBuf, 0);
Finalize(wsBuf);
Sample:
Delphi-Quellcode:
function Utf8toWideString(const aString:string):WideString;
var wsbuf : TDynWSbuf;
ii : integer;
begin
Initialize(wsBuf);
SetLength(wsBuf, 0);
if aString = '' then
begin
Result := '';
exit;
end;
ii := ConvertToWideChar(@aString[1],length(aString),wsbuf);
SetLength(Result,ii);
if ii = 0 then exit;
move(wsbuf[0],Result[1],ii * 2);
SetLength(wsBuf, 0);
Finalize(wsBuf);
end;
Danke für eure Arbeit!
Herzliche Grüße