Unicode版TEditor の上書きモードの処理修正
Unicode版のTEditor 利用させてもらってるんですが、先日上書きモードで編集してるときに文字が余分に上書きされると報告があがって来ました。
とりあえずの修正でまともに動くようになったようなのでメモ。
HEditor.pasのTEditor.PutStringToLineメソッドで、変数にAttr2:Stringを追加
12074行辺りの
Attr := StrToAttributes(S);
の下に
Attr2 := StrToAttributes(Source);
を追加。12083行辺りの
if FOverWrite then begin Buf := Copy(S, 1, Si) + Source; // Source 終端の文字インデックスを取得 I := FCol + L;
のI := FCol + L;の行を
I := FCol + Length(Attr2);
に変更。12100行辺りの
Si := I - IncludeCharCount(Attr, caTabSpace, I + 1);
の行を
Si := I - IncludeCharCount(Attr, caTabSpace, I + 1) - IncludeCharCount(Attr, caFullWidth2, I + 1) - IncludeCharCount(Attr, caSFullWidth2, I + 1);
に変更。以上で、上書きモードで文字入力したときの動作が改善されました。
追記
この修正はDEKOさんのところからダウンロード出来るバージョンに対する修正です。何に対する修正なのか書くのをすっかり忘れておりました。