Максим Гуменюк пишет:
Самое главное, что мне не нравится в Richedit - это то, что он сам меняет язык при перемещении по тексту, не смотря, что вы включили нужный язык, при переходе на участок текста, набраный другим языком.
этот баг я обхожу так.
unit RichEditEx; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TLangChangeEvent=procedure(Sender:TObject;Lang:HKL) of object; TRichEditEx = class(TRichEdit) private FOnLangChange:TLangChangeEvent; procedure WMLangRequest(var M:TMessage);message WM_INPUTLANGCHANGEREQUEST; procedure WMLangChange(var M:TMessage);message WM_INPUTLANGCHANGE; { Private declarations } protected { Protected declarations } public { Public declarations } published property OnLangChange:TLangChangeEvent read FOnLangChange write FOnLangChange; { Published declarations } end; procedure Register; implementation procedure tricheditex.WMLangRequest(var M:TMessage); begin if assigned(FOnLangChange) then FOnLangChange(self,m.LParam); inherited;end; procedure tricheditex.WMLangChange(var M:TMessage); begin m.Result:=1;end; procedure Register; begin RegisterComponents('Samples', [TRichEditEx]); end; end. |
Максим Гуменюк, max1gu@fiberia.com [001631]