- Код: Выделить всё
- s:string
 ...
 s:=Format('** %2.2D%2.2D %-.30S',[ComData.MyType,ComData.ID,ComData.Desc]);
 if ComData.MyType=etTheory then begin
 s[1]:=widechar('Т');
 s:=trim(s)+' ('+ExtractFileName(Attachment)+')';
 end
 else begin
 s[1]:=widechar('Э');
 end;
В таком варианте компилируется без ошибок, но во время работы вместо первой звездочки в строке я вижу вопросительный знак, а не букву "Т" или "Э", на которую должна замениться эта звездочка. Похоже, что [1] берет именно один байт строки, а не один widechar из нее. Как же мне запихать туда именно букву?
Формировать строку без первой звездочки, а потом делать вроде
- Код: Выделить всё
- s:='Т'+s
Попробовал вместо звездочек поставить две русские буквы. Теперь при выводе не видна вся строка, очевидно сбивается последовательность кодировки. Ненавижу коды с последовательностями разной длины!








