在Delphi里怎么编程关于两个richedit里的字体颜色变化
richedit1里有N个字,如果richedit2里输入的第一个字和richedit1里的第一个字相同时richedit1里第一个字的颜色变成蓝色否则会变成红色...
richedit1里有N个字,如果richedit2里输入的第一个字和richedit1里的第一个字相同时richedit1里第一个字的颜色变成蓝色否则会变成红色
展开
展开全部
1.
字符串可以看作字符数组。redt2里输入的字就是字符串的最后一个,
p := length(redt2.Text) -2; //最后一个字符好像是换行符
s := redt2.Text[p];
拿s 和redt1里对应的字符比较,
if s <> redt1.Text[p] then
begin
redt1.SelStart :=n; //选择部分开始位置
redt1.SelLength :=1; //选择部分长度
redt1.SelAttributes.Color := clred;
end;
以上应该只适用非汉字情况,汉字是2个字符对应1个汉字。
2.
procedure TForm1.redt2Change(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Length(redt2.text) -1 do
begin
redt1.SelStart := i;
redt1.SelLength := 1;
if Copy(redt1.Text, i +1, 1) = Copy(redt2.Text, i+1, 1) then
redt1.SelAttributes.Color := clBlue
else
redt1.SelAttributes.Color := clRed;
end;
end;
3.
建议用高版本的delphi来做,比如xe系列的,unicode还是方便很多
4.
Procedure TForm1.FormCreate(Sender: TObject);
Begin
RichEdit1.Text := '012345678';
End;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
RichEdit1.SelStart := 0;
RichEdit1.SelLength := 3;
RichEdit1.SelAttributes.Color := clRed; //012为红色
RichEdit1.SelStart := 5;
RichEdit1.SelLength := 4;
RichEdit1.SelAttributes.Color := clBlue; //5678为蓝色
//RichEdit1.ClearSelection;
//只是删除最后一个选区(如上面为蓝色的选区)的字符,不是清除 所有选择样式
End;
Procedure TForm1.Button2Click(Sender: TObject);
Begin
RichEdit1.SelStart := 0; //清除 所有选择样式
RichEdit1.SelLength := Length(RichEdit1.Text);
RichEdit1.SelAttributes.Color := clBlack;
End;
字符串可以看作字符数组。redt2里输入的字就是字符串的最后一个,
p := length(redt2.Text) -2; //最后一个字符好像是换行符
s := redt2.Text[p];
拿s 和redt1里对应的字符比较,
if s <> redt1.Text[p] then
begin
redt1.SelStart :=n; //选择部分开始位置
redt1.SelLength :=1; //选择部分长度
redt1.SelAttributes.Color := clred;
end;
以上应该只适用非汉字情况,汉字是2个字符对应1个汉字。
2.
procedure TForm1.redt2Change(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Length(redt2.text) -1 do
begin
redt1.SelStart := i;
redt1.SelLength := 1;
if Copy(redt1.Text, i +1, 1) = Copy(redt2.Text, i+1, 1) then
redt1.SelAttributes.Color := clBlue
else
redt1.SelAttributes.Color := clRed;
end;
end;
3.
建议用高版本的delphi来做,比如xe系列的,unicode还是方便很多
4.
Procedure TForm1.FormCreate(Sender: TObject);
Begin
RichEdit1.Text := '012345678';
End;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
RichEdit1.SelStart := 0;
RichEdit1.SelLength := 3;
RichEdit1.SelAttributes.Color := clRed; //012为红色
RichEdit1.SelStart := 5;
RichEdit1.SelLength := 4;
RichEdit1.SelAttributes.Color := clBlue; //5678为蓝色
//RichEdit1.ClearSelection;
//只是删除最后一个选区(如上面为蓝色的选区)的字符,不是清除 所有选择样式
End;
Procedure TForm1.Button2Click(Sender: TObject);
Begin
RichEdit1.SelStart := 0; //清除 所有选择样式
RichEdit1.SelLength := Length(RichEdit1.Text);
RichEdit1.SelAttributes.Color := clBlack;
End;
展开全部
procedure TForm1.redt2Change(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Length(redt2.text) -1 do
begin
redt1.SelStart := i;
redt1.SelLength := 1;
if Copy(redt1.Text, i +1, 1) = Copy(redt2.Text, i+1, 1) then
redt1.SelAttributes.Color := clBlue
else
redt1.SelAttributes.Color := clRed;
end;
end;
var
i: Integer;
begin
for i := 0 to Length(redt2.text) -1 do
begin
redt1.SelStart := i;
redt1.SelLength := 1;
if Copy(redt1.Text, i +1, 1) = Copy(redt2.Text, i+1, 1) then
redt1.SelAttributes.Color := clBlue
else
redt1.SelAttributes.Color := clRed;
end;
end;
更多追问追答
追问
运行后richedit1清空了 请问?????
追答
你自己弄错了吧,不会的,代码只是设置redt1的字体颜色而已
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询