我要自杀了(10分)

  • 主题发起人 主题发起人 刘麻子
  • 开始时间 开始时间

刘麻子

Unregistered / Unconfirmed
GUEST, unregistred user!
请教几个问题,谢谢!

想做一个象‘金山打字通’的程序,可以练习输入汉字,错误的话就将错误的汉字显示为红色。
问题是,中文输入有时候可能传给文本框的是几个汉字(词组),所以我想到了在onchang事件
中判断输入是否正确。现在关键的问题是,需要将文本框中已经存在的(刚打入的)字改颜色,我
用的方法是先自动选中错的文字,再edchedit.selattributes.color:=clred;,变颜色....
可是上面的方法不行,只有直接输入e文时才会变颜色,输入汉字时无效。(即使被选中的是e文)
不知如何解决?是否有这样的事件:在改变前触发或每进入文本框一个汉字时触发??
还有没有别的方法可以改变个别字符的颜色?(不要告诉我‘画’,这是万不得已的方法)

我的qq:71892967,欢迎喜欢编程的朋友加我

举例:当输入文字时自动对部分文字改变颜色,可当我输入汉字时,
下面的语句无效,好象没执行一样!
procedure TForm1.RichEdit1Change(Sender: TObject);
begin

//奇怪的是如果在这加一句showmessage('气死我了');就可以了,是否未刷新的原因?可我用了
//richedit1.Repaint;和richedit1.Refresh;也不行!!为什么??

richedit1.SelStart:=0;
richedit1.SelLength:=2;
richedit1.SelAttributes.Color:=clblue;
end;

(我用的是onchange事件。)

如何在允许汉英混输的情况下判断当前字符是汉字英文?判断当前输入法状态?
还有一个办法,就是判断字符的代码?因为ASCII码最高位是0,
而汉字占两个字节,(GB)好象至少有一个字节的最高位为1??

还有一个问题,就是想实现模拟按键以选中部分文本,用的是API
(我知道可用selstart和sellength,只是作技术探讨)
keybd_event(VK_SHIFT,mapvirtualkey(VK_SHIFT,0),0,0);
//SHIFT键
keybd_event(VK_RIGHT,mapvirtualkey(VK_RIGHT,0),0,0);
//'向右'方向键
keybd_event(VK_RIGHT,mapvirtualkey(VK_RIGHT,0),keyeventf_keyup,0);
keybd_event(VK_SHIFT,mapvirtualkey(VK_SHIFT,0),keyeventf_keyup,0);
结果只动光标,不选中,为什么?
 
问题过多, 分太少。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2364224
也可以回答,分更多的[:D]
 
还没跳吧????

看那边——————
 
都没有给我源码(关于查找文件进度条的)
 
出售麻绳,50元一条!
 
k178pgy你在哪???
找你啊!!!!
 
k178pgy你在哪???
找你啊!!!!
 
因为汉字是两个字节的。输入汉字时会有两次 OnChange 事件。
你加了一句 ShowMessage 后。再去读时,两个字节都已经到了。所以可以
你可以加一句判断,如果最高位为1 就要等两次后再用 ChangeColor
以前我也遇到过!
 
特大喜讯:刘麻子的程序作成功了!可以支持汉字、英文的混合输入!
需要源代码的朋友可以加我QQ:71892967,直接传给你,OK?
你们也可以在这里下载 http://www.efile.com.cn/?liumazi
 
找死。
那就跳楼吧!
 
恭喜楼主,大功告成了
 
还没成功,在特殊情况下,还是存在不变色的情况啊!
 
你是慢动作表演吧, 跳了这么久[:D][:D][:D]
 
我试试,如果可以请QSmile到上面讲的地方领分,谢谢
 
不过试起来也很麻烦的。
不知道有没有更高效的方法没有。
对 RichEdit 我也用得不是很熟。
 
后退
顶部