TRichEdit 一部フォントでの貼り付け時の変化

解決


Terry  2023-02-18 10:34:32  No: 150801  IP: [192.*.*.*]

お世話になっています、Terry です

常用は D2009 + TJvRichEdit なのですが 10.4.2 Sydney +TRichEdit でも確認しています
「UD デジタル 教科書体 NP-R」の文字列を貼り付けると「UD デジタル 教科書体 NP」と変化してしまいます
Win10 付属のワードパッドでは問題なく貼り付けられます。
これはロードしている RICHEDxx.DLL の問題で解決不可能なモノなのでしょうか?

#以前、フォント名に半角のハイフンやアンダーバーなどが含まれている場合も同様なことがあったので
そちらは仕方なく選択出来ないようにしていました

以上、よろしくお願いいたしますm(_ _)m

編集 削除
igy  2023-02-18 11:55:44  No: 150802  IP: [192.*.*.*]

試したところ、
Delphi XE + TRichEdit は、
「UD デジタル 教科書体 NP-R」の文字列を貼り付けると「UD デジタル 教科書体 NP-B」に。
Delphi 11.2 + TRichEdit は、
「UD デジタル 教科書体 NP-R」の文字列を貼り付けると、変わらず「UD デジタル 教科書体 NP-R」
でした。

Delphi 11では、TRichEditコンポーネントは、RichEdit 4.1 に更新されたようです。
https://docwiki.embarcadero.com/RADStudio/Alexandria/ja/%E6%96%B0%E6%A9%9F%E8%83%BD#RichEdit_4.1_.28MSFTEDIT.dll.29_.E3.81.AB.E6.9B.B4.E6.96.B0.E3.81.95.E3.82.8C.E3.81.9F_TRichEdit_.E3.82.B3.E3.83.B3.E3.83.9D.E3.83.BC.E3.83.8D.E3.83.B3.E3.83.88

編集 削除
Terry  2023-02-18 14:56:27  No: 150803  IP: [192.*.*.*]

igy  様、詳しい情報ありがとうございます

やはり元 DLL の問題なのですね
新しい機能に興味は無いのですがこういったバグっぽいところは旧バージョンでも修正して欲しいところです。

TJvRichEdit がもともと RICHED32.DLL で 一時期縦書き対応のために MSFTEDIT.DLL をロードさせたりしたこともあったのですが微妙に動作が違うので元に戻しましたりもしました。
もうしばらく調べてみようと思います

編集 削除
Terry  2023-02-19 05:08:38  No: 150804  IP: [192.*.*.*]

GitHub を見に行くと現在の TJvRichEdit は RichEdit 4.1 のロードに対応していました
https://github.com/project-jedi/jvcl/blob/master/jvcl/run/JvRichEdit.pas
jvcl 全部アップデートする体力も無いのでこのソースだけプロジェクトフォルダに入れて
一部ソースを追加修正してコンパイルしましたら無事フォントは正常な状態で貼り付けや移動が出来るようになりました
以前気になっていた挙動の違いがあまりに昔過ぎて覚えていないのですがしばらく様子を見て大きな問題が無いようならこれで以降と思います(そのときは私が適当にロード部分だけをいじっただけなので)
今回は本当にありがとうございましたm(_ _)m

編集 削除