哪位大哥能让RichEdit不能输入中文?很多大论坛都没能结决!

ychx 2004-08-12 08:44:35
哪位大哥能让RichEdit不能输入中文?不要说在Onpress事件中加入代码,因为输中文时跟本就不能触发该事件!
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ychx 2004-08-16
  • 打赏
  • 举报
回复
好像在WndProc的WM_CHAR消息中也只能拦到英文的输入,对中文的输入是没用的,不知您是怎么用的?
ychx 2004-08-13
  • 打赏
  • 举报
回复
jinjazz的还不错,不过这个只适合在全部文本的状态,我在实际应用中是要调入OLE的东西的,只能判断键码来调用,所以感觉还是有点不行啊
budi 2004-08-13
  • 打赏
  • 举报
回复
替换编辑器缺省的WndProc,在新过程中捕获WM_CHAR消息,发现是中文抛掉就行了。
这要借助两个过程(MakeObjectInstance, SetWindowLong)和LeadByte字符集。

if key in LeadByte then // 是双字节字符
......
手指风 2004-08-13
  • 打赏
  • 举报
回复
好象在faq里见过,你去看看
jiayodo 2004-08-12
  • 打赏
  • 举报
回复
判断输入字符的ascll码是否大于a0也可以
不过还是jinjazz的好
workers 2004-08-12
  • 打赏
  • 举报
回复
procedure Tform.RichEdit1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if not (key in ['0'..'9','.',#13,#27,#8]) then
key := #0;;
end;
jinjazz 2004-08-12
  • 打赏
  • 举报
回复
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;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧