var s:string; procedure TForm1.RichEdit1Change(Sender: TObject); begin if length(widestring(richedit1.Text)) <>length(richedit1.Text) then richedit1.Text:=s else s:=richedit1.Text; richedit1.SelStart:=length(richedit1.Text); end;
procedure Tform.RichEdit1KeyPress(Sender: TObject; var Key: Char); begin inherited; if not (key in ['0'..'9','.',#13,#27,#8]) then key := #0;; end;
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
if length(widestring(richedit1.Text))
<>length(richedit1.Text) then richedit1.Text:=s
else
s:=richedit1.Text;
richedit1.SelStart:=length(richedit1.Text);
end;
var Key: Char);
begin
inherited;
if not (key in ['0'..'9','.',#13,#27,#8]) then
key := #0;;
end;
不过还是jinjazz的好
这要借助两个过程(MakeObjectInstance, SetWindowLong)和LeadByte字符集。if key in LeadByte then // 是双字节字符
......