请教,如何对比两个memo中的内容

zhuozi_467 2007-06-29 10:25:47
能否在对比后,在Memo中做标记(内容不同的行用不同颜色指示或者其它方式)
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuozi_467 2007-06-29
  • 打赏
  • 举报
回复
嘿,可以实现,不过我把RichEdit2.SelAttributes.Style := [fsBold];改成RichEdit2.SelAttributes.Color:= clRed;感觉效果更明显点,多谢lihuasoft(坐井观天) ( )
马上结贴,Thanks!
yi10000 2007-06-29
  • 打赏
  • 举报
回复
你要重载OnDraw事件,可以改变颜色
zhuozi_467 2007-06-29
  • 打赏
  • 举报
回复
嗯,好的,马上试下看:)
lihuasoft 2007-06-29
  • 打赏
  • 举报
回复
上面是把不同的行用粗体显示.
lihuasoft 2007-06-29
  • 打赏
  • 举报
回复
用RichEdit, 不用Memo, 相对简单一些, 给你写了一段代码, 你自己验证一下吧, 有点繁, 自己简化.


var
Ls, I : integer;
begin
Ls := RichEdit1.Lines.Count;
if Ls<RichEdit2.Lines.Count then Ls := RichEdit2.Lines.Count;
for I := 0 to Ls-1 do begin
if (I <= RichEdit1.Lines.Count)
and (I <= RichEdit2.Lines.Count)
and (RichEdit1.Lines[I] = RichEdit2.Lines[I])
then else begin
if I <= RichEdit1.Lines.Count then begin
RichEdit1.SelStart := SendMessage(RichEdit1.Handle, EM_LINEINDEX, I, 0);
RichEdit1.SelLength := Length(RichEdit1.Lines[I]);
RichEdit1.SelAttributes.Style := [fsBold];
end;
if I <= RichEdit2.Lines.Count then begin
RichEdit2.SelStart := SendMessage(RichEdit2.Handle, EM_LINEINDEX, I, 0);
RichEdit2.SelLength := Length(RichEdit2.Lines[I]);
RichEdit2.SelAttributes.Style := [fsBold];
end;
end;
end;
end;
zhuozi_467 2007-06-29
  • 打赏
  • 举报
回复
谢谢supercc(帅帅) ( )

对比比较容易实现,以下只能实现其中一个Memo得到焦点,有没有其它更好的办法呢?欢迎大家继续讨论:)

MeoSQL1.SelStart := SendMessage(MeoSQL1.Handle, EM_LINEINDEX, i, 0);
MeoSQL1.SelLength := Length(MeoSQL1.Lines[i]);
MeoSQL1.SetFocus;

MeoSQL2.SelStart := SendMessage(MeoSQL2.Handle, EM_LINEINDEX, i, 0);
MeoSQL2.SelLength := Length(MeoSQL2.Lines[i]);
MeoSQL2.SetFocus;
supercc 2007-06-29
  • 打赏
  • 举报
回复
比对是可以的,就
procedure TForm1.Button1Click(Sender: TObject);
var
i,k:integer;
str1,str2:string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
str1:=memo1.Lines[i];
str2:=memo2.Lines[i];
if str1 <> str2 then
showmessage(inttostr(i));
end;
end;
做标记不太容易,没什么好办法.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧