关于richedit(40分)

  • 主题发起人 主题发起人 mdc
  • 开始时间 开始时间
M

mdc

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现打字比较效果,上下部分都用richedit,上部读入文本文件内容,下部照打。
如果打错了,就用红色来显示上部对应位置的字符(汉字和标点符号等),打对了,
就用蓝色来显示。我这段代码在我的2000机子上通过了,有我要实现的效果,不知道
为什么,在98上和别的朋友的2000机器上都无法看到效果。
请大侠帮忙,帮我调一下。
代码:
s := trim(editor.Lines.Text);
s1 := form1.richedit1.lines.text;
i := length(s);
if s <> '' then
begin
for j := 0 to i - 1 do
if s1[j] = s[j] then
begin
form1.RichEdit1.SelStart := j - 1;
form1.RichEdit1.SelLength := 1;
form1.StatusBar1.Panels[1].Text := richedit1.SelText;
form1.RichEdit1.SelAttributes.Color := clblue;

end
else
begin
form1.RichEdit1.SelStart :=j-1;
form1.RichEdit1.SelLength := 1;
form1.RichEdit1.SelAttributes.Color := clred;
end;
end;
源代码:www.hrbco.com/ma/teach.rar
 
var
s: string;
s1: string;
i: integer;
j: integer;
 
richedit1是读入的文本的,editor是下面输入的。
 
升级你的riched20.dll或riched32.dll,或者你把2000的rich20.dll覆盖98也可以,你可以去试一下!
 
升级你的riched20.dll或riched32.dll,或者你把2000的rich20.dll覆盖98也可以,你可以去试一下!
 
billy_yuan,覆盖了不行哦。
 
测试过没问题。(win2000,for d5)
不过在上部读入文本文件内容中含有一个半角的标点“,”,如不注意打成全角,
其后打对也显示错误,这是个重要问题!程序要解决!!!
 
linsb,在98下就会出错了呀
 
在98可能有问题,建议使用RXLib的RxRichEdit控件
 
linsb,用法和richedit一样吗?
 
代码基本不用改。
 
linsb,用rxrichedit的时候闪动的特别利害,怎么办?上面选中的字符总是先出现蓝色。
 
billy_yuan,覆盖了不行呀?怎么办呀?
 
to mdc
我没发现闪动的特别利害的问题。
你的代码好像有问题。
司机-》斯基,判对!
测试的文件用lines.laodfromfile(),调入。
 
linsb,代码哪里有问题呀,帮我改一下,好吗?
 
1.应判断输入的是英文、数字还是汉字(单字节还是双字节),应分别处理。
2.应从光标位置处开始判断,而不是总是从j=0开始。
3.如果位置不对应怎么处理?
 
linsb,怎样才能取得当前输入的字符呢?
 
我的很正常!
 
能否帮我写一段获取当前输入的字符的代码.在editchange事件里面
 
后退
顶部