Ich habe noch etwas gespielt, ich denke s21 und s22 sind schon WideString, keine WideChar.
Wenn ich die beiden WideChar s1[1] und s1[2] nacheinander s3 zuweise ( statt s3 := s1[1]+s1[2] ), dann klappt das auch - siehe s3.
Bei s4 funktioniert es auch. Wenn man WideChar mit + verknüpft, dann muss offenbar mindestens ein WideString in der + - Kette dabei sein, es funktioniert auch ein Leerstring, wie in dem Beispiel.
Hier der Code
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
s1, s2, s3, s4: WideString;
s21, s22 : WideString;
s : String;
begin
s21 := '<<<';
s22 := '>>>';
s1 := 'abc';
s21 := s21+s1[1];
s22 := s1[2]+s22;
s2 := s21 + s22;
s3 := s1[1]; // statt s3 := s1[1]+s1[2]
s3 := s3+s1[2];
s4 := '';
s4 := s4+s1[1]+s1[2]; // statt s4 := s1[1]+s1[2]
WriteLn('s1=',s1);
WriteLn('s1[1]=',s1[1]);
WriteLn('s1[2]=',s1[2]);
WriteLn('s21=',s21);
WriteLn('s22=',s22);
WriteLn('s2=',s2);
WriteLn('s3=',s3);
WriteLn('s4=',s4);
ReadLn(s);
end.
und hier das Ergebnis
Code:
s1=abc
s1[1]=a
s1[2]=b
s21=<<<a
s22=b>>>
s2=<<<ab>>>
s3=ab
s4=ab