TRichEdit的问题,解决分可加
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit ;
RichEdit2: TRichEdit;
procedure RichEdit2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Len,before:integer;
implementation
{$R *.dfm}
procedure TForm1.RichEdit2Change(Sender: TObject);
var
p:integer;
begin
if p=0 then
begin
RichEdit1.SelStart:=0;
RichEdit1.SelLength:=Length(RichEdit2.Text);
RichEdit2.SelStart:=0;
RIchEdit2.SelLength:=Length(RichEdit2.Text);
if RichEdit1.SelText=Richedit2.SelText then
RichEdit1.SelAttributes.Color:=clred;
before:=Length(RichEdit2.Text);
p:=2;
end
else begin
Len:=Length(Richedit2.Text)-before;
RichEdit1.SelStart:=before;
RichEdit1.SelLength:=len;
RichEdit2.SelStart:=before;
RichEdit2.SelLength:=Len;
if RichEdit1.SelText=Richedit2.SelText then
RichEdit1.SelAttributes.Color:=clred;
before:=Length(Richedit2.Text);
P:=2
end;
end;
end.
=======
上边这段代码可以编译通过,目的是RichEdit2中输入RichEdit1中提供的文字,如果输入的问题相同,RichEdit1中的文字就变成红色,现在的问题是,RichEdit2中输入文字后,输入的文字被选中,如果继续输入就把刚才输的文字覆盖掉了,问,如何让光标停留在输入的文字的后面.请大家帮看一下,我可以再加分