こんにちは。
昔、公式フォーラムでやり方書いたんですけどね...消えちゃいました。
https://www.google.co.jp/search?q=Delphi+RichEdit+DualFont&ie=utf-8&oe=utf-8&aq=t&hl=ja
1.CreateParams をオーバーライドして、旧 RICHEDIT を呼び出すようにした。
2.クラスヘルパで Dual-Font の有効/無効を実装した。
(Dual-Font を無効にした)
なんて事をやった気がします。当時の記憶を頼りにクラスヘルパを再現してみました。
--------------------------------------------------------------------------------
unit uRichEditHelper;
interface
uses
Windows, Messages, ComCtrls;
type
TRichEditHelper = class helper for TRichEdit
private
function GetLangOptions: Word;
procedure SetLangOptions(const Value: Word);
published
property LangOptions: Word read GetLangOptions write SetLangOptions;
end;
const
IMF_AUTOKEYBOARD = $0001;
IMF_FORCENONE = $0001;
IMF_AUTOFONT = $0002;
IMF_FORCEENABLE = $0002;
IMF_IMECANCELCOMPLETE = $0004;
IMF_FORCEDISABLE = $0004;
IMF_CLOSESTATUSWINDOW = $0008;
IMF_IMEALWAYSSENDNOTIFY = $0008;
IMF_AUTOFONTSIZEADJUST = $0010;
IMF_UIFONTS = $0020;
IMF_VERTICAL = $0020;
IMF_FORCEACTIVE = $0040;
IMF_DUALFONT = $0080;
IMF_FORCEINACTIVE = $0080;
IMF_FORCEREMEMBER = $0100;
IMF_MULTIPLEEDIT = $0400;
implementation
{ TRichEditHelper }
function TRichEditHelper.GetLangOptions: Word;
const
EM_GETLANGOPTIONS = WM_USER + 121;
begin
result := SendMessage(Self.Handle, EM_GETLANGOPTIONS, 0, 0);
end;
procedure TRichEditHelper.SetLangOptions(const Value: Word);
const
EM_SETLANGOPTIONS = WM_USER + 120;
begin
SendMessage(Self.Handle, EM_SETLANGOPTIONS, 0, Value);
end;
end.
--------------------------------------------------------------------------------
この Unit を uses して、
RichEdit1.LangOptions := RichEdit1.LangOptions and (not IMF_DUALFONT);
でデュアルフォントが無効になると思います。
# 当時の実装とは異なるかもしれません。
--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------
MLホームページ:
http://www.freeml.com/delphi-users
----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=jpL3S
------------------------------------------------------[freeml byGMO]--