ベストアンサー:
const
n: WideString = ''; //n=Nothing
s := n+#$0061+#$0301;
これにより、以下で失敗するすべてのケースが修正されます。
動作する唯一のバリアントは、定数として宣言することです。
AccentAcute: WideString = #$0301;
AccentAcute: WideString = WideChar($0301);
AccentAcute: WideString = WideChar(#$0301);
AccentAcute: WideString = WideString(#$0301);
使用例:
s := 'Pasta'+AccentAcute;
動作しない定数ベースの構文
AccentAcute: WideString = $0301;
互換性のないタイプ
AccentAcute: WideString = #0301;
与える
AccentAcute: WideString = WideString($0301);
無効な型キャスト
AccentAcute: WideString = WideString(#$0301);
無効な型キャスト
AccentAcute: WideChar = WideChar(#0301);
与えるPastai
AccentAcute: WideChar = WideChar($0301);
与えるPasta´
失敗する他の構文
'Pasta'+WideChar($0301)
与えるPasta´
'Pasta'+#$0301
与えるPasta´
WideString('Pasta')+#$0301
与える
私が見つけたすべての定数ベースの構文の要約は次のように考えています。
AccentAcute: WideString = #$0301; //works
AccentAcute: WideString = WideChar(#$0301); //works
AccentAcute: WideString = WideString(#$0301); //works
AccentAcute: WideString = $0301; //incompatble types
AccentAcute: WideString = WideChar($0301); //works
AccentAcute: WideString = WideString($0301); //invalid typecast
AccentAcute: WideChar = #$0301; //fails, gives Pasta´
AccentAcute: WideChar = WideChar(#$0301); //fails, gives Pasta´
AccentAcute: WideChar = WideString(#$0301); //incompatible types
AccentAcute: WideChar = $0301; //incompatible types
AccentAcute: WideChar = WideChar($0301); //fails, gives Pasta´
AccentAcute: WideChar = WideString($0301); //invalid typecast
変数に追加するだけで、再配置WideChar
は機能します
//Works
t := '0123401234012340123';
t := t+WideChar(#$D840);
t := t+WideChar(#$DC00);
//fails
t := '0123401234012340123'+WideChar(#$D840);
t := t+WideChar(#$DC00);
//fails
t := '0123401234012340123'+WideChar(#$D840)+WideChar(#$DC00);
//works
t := '0123401234012340123';
t := t+WideChar(#$D840)+WideChar(#$DC00);
//works
t := '';
t := t+WideChar(#$D840)+WideChar(#$DC00);
//fails; gives junk
t := ''+WideChar(#$D840)+WideChar(#$DC00);
//crashes compiler
t := WideString('')+WideChar(#$D840)+WideChar(#$DC00);
//doesn't compile
t := WideChar(#$D840)+WideChar(#$DC00);
コンパイラのナンセンスに間違いなくぶつかる。テストされていないケースは完全にテストされました。はい、私はデビッドを知っています、私たちはアップグレードする必要があります。