Delphi の designmode で HTML エディタとして Internet Explorer を使用しようとしています。私は Mshtml と SHDocVw ユニットを使用しており、編集はうまくいきます。Word の「特殊文字」オプションのようなグリフもいくつか表示します (例: 段落: ¶)。グリフを非表示にする場合とグリフを表示する場合では、キャレットの位置に違いがあるようです。
1) 隠しグリフ
<End>
「サンプル テキスト」でキーを押すと、キャレットは最後の文字「t」の直後に配置されます。
キーを入力する<1>
と、html の結果は期待どおりになります。
<p>Sample Text1</p>
2) グリフの表示
「サンプル テキスト」でキーを押す<End>
と、キャレットは最後の文字の直後ではなく、グリフの後に配置されます: サンプル テキスト¶ |
キーを入力する<2>
と、html の結果は次のようになります。
<p>Sample Text</p>2
したがって、「2」は段落の外に出てしまいます。
また、システム以外のキーを押す前にグリフを非表示にするとどうなるかを確認しました。
3) グリフを表示して後で非表示にする
最初にグリフを<End>
表示し、「サンプル テキスト」のキーを押して、グリフを非表示にします。キャレットはまだ最後の文字の直後に配置されていません。画面にスペースが表示されます (ただし、html ソースには実際の文字/要素はありません)。テキスト | キーを入力する<3>
と、html の結果は次のようになります。
<p>Sample Text</p>3
したがって、'3' は依然として段落の外に出てしまいます。
<Home>
のようなキーや矢印キーにも同じ問題が存在します。
どうすればこれを防ぐことができますか? グリフの後にキャレットを配置しないようにする方法、または段落の最後の文字に変更する方法はありますか?