マルチバイト文字列 (string型) では、等幅フォントなら、1バイト文字は半角
に、2バイト文字は全角になるので、印字幅の計算が簡単 (Length の値を揃える
と幅も揃うので表組みしやすい)。
しかし、ユニコード (WideString型) では、Length の値は文字数であり、印字
幅とは無関係なので計算が面倒 (頭から一文字づつ順番に幅を調べて全部足して
みないと印字位置・幅が決められない)。
というようなことではないでしょうか。
参考 (Delphi のヘルプから引用)
『1 バイトおよびマルチバイト文字列の場合,Length は文字列によって使用さ
れるバイト数を返します。Unicode (WideString) 文字列の場合は,Length はバ
イト数を 2 で割った値を返します。』
|