Am 2016-08-02 um 12:25 schrieb Jürgen Hestermann:
> ------------------------------------------
> type MyStringType = string;
> var S     : MyStringType;
>     Liste : array of MyStringType;
>     i     : SizeInt;
>
> begin
> [..] // "Liste" is setup with many string entries (which are also shown 
correctly with Ctrl+F7 (evaluate/modify)
> S := '';
> for i := Low(Liste) to High(Liste) do
>    S := S+Liste[i]+LineEnding;
> SetLength(Liste,0);
> ShowMessage(S);
> end;
> ------------------------------------------

I just tested a bit more and it seems that the problem
is located in the way the strings are fed into "Liste"
which is done like this from a Windows API function:

------------------------------------------
if FindNextFileNameW(H,Laenge,@Pfad[1]) then
   begin
   SetLength(Liste,Length(Liste)+1);
   Liste[High(Liste)] := copy(Pfad,1,Laenge);
   end;
------------------------------------------

where "Pfad" is a "widestring" (because of the Windows W-function),
"H" is of type "hwnd" and "Laenge" is "SizeInt".

I would expect that with the new string encoding handling
widestring will be converted automatically to "MyStringType"
(which is string in my case). This assumption is  encouraged
by the fact that "Liste" is shown with the correct list of all strings
in the evaluate window when debugging.

The interesting thing is, that *one* (the first) string
from "Liste" is added to "S" (but all others are missing).

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to