unit Unit1;interfaceuses
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中输入文字后,输入的文字被选中,如果继续输入就把刚才输的文字覆盖掉了,问,如何让光标停留在输入的文字的后面.请大家帮看一下,我可以再加分
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中输入文字后,输入的文字被选中,如果继续输入就把刚才输的文字覆盖掉了,问,如何让光标停留在输入的文字的后面.请大家帮看一下,我可以再加分
解决方案 »
- [Error] dlzpas.pas(106): Cannot assign to a read-only property 什么意思
- IE 查看源文件菜单失效了
- 加强的dxDBGrid.可实现财务输入/显示,直接输出到加强版的RMGrid报表!!!
- 看李维书所遇到的问题,大伙帮帮忙!
- 请帮帮忙,各位,有关ADOcommand的问题
- 怎样将文本型数据转化成double型数据
- delphi如何删除文件夹(有文件)
- cs 结构的系统如何转型到多层结构的系统 ?
- ”未能找到提供者,可能未被正确安装“ 头痛的问题
- 小妹?^_^?捉虫:窗体的一个属性?
- 大家好,我是新人,问个简单问题:Timer控件事件是什么消息触发的???
- 怎样用shellexecute调用外部程序?
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;
RichEdit2.SelStart:=Length(RichEdit2.Text);
RichEdit2.SelLength:=0;//此句也可以不写,上一句已定位
end;
在p:=2; 后面加两句:
RichEdit2.SelStart:=Length(RichEdit2.Text)-2; //要减2,因为末尾回自动加上#13+#10两个换行符
RichEdit2.SelLength:=0;