如何实现?????(这个问题因该有一点难度吧)
OICQ的聊天记录中,记录日期和发送者的一行,用的是红色字体;而记录聊天内容的,用的是蓝色字体。这在一个控件中是怎么做到的呢?它用的是什么?MEMO?RICHEDIT?还是什么?我用的MEMO,怎么也实现不了。
哪位大侠帮帮忙吧!!!
问题点数:30、回复次数:4Top
1 楼zhuoyuesky(卓越)回复于 2001-11-19 16:15:36 得分 10
可以的,使用重绘。Top
2 楼caoyq(草民呆瓜)回复于 2001-11-19 17:07:44 得分 20
有一个笨一点的办法如下:
procedure TFormChat.ButtonSubmitClick(Sender: TObject);
var
iStartPos,iFindPos:integer;
sSearchStr:string;
begin
RichEdit1.Lines.Add('caoyq');
RichEdit1.Lines.Add(datetimetostr(now()));
iStartPos:=0;
sSearchStr:='caoyq';
iFindPos:=RichEdit1.FindText(sSearchStr,iStartPos,length(RichEdit1.Text),[stWholeWord]);
while iFindPos<>-1 do
begin
RichEdit1.SelStart :=iFindPos;
RichEdit1.SelLength :=length(sSearchStr);
RichEdit1.SelAttributes.Color :=clRed;
iStartPos:=iFindPos+Length(sSearchStr);
iFindPos:=RichEdit1.FindText(sSearchStr,iStartPos,length(RichEdit1.Text)-iStartPos,[stWholeWord]);
end;
end;
Top
3 楼Judas()回复于 2001-11-19 17:16:44 得分 0
zhuoyuesky(卓越)兄,说的详细些好吗?多谢了Top
4 楼Judas()回复于 2001-11-19 17:16:50 得分 0
zhuoyuesky(卓越)兄,说的详细些好吗?多谢了Top




