我想用TRichTextBox控件做一个聊天程序。但不知道如何使用该控件。请指点:
如何发送和显示文本以及带有图片的信息。
假设RichTextBox1是发送信息的输入框,RichTextBox2是显示聊天记录的区域,当我输入内容,点击发送时,如下语句不起作用
RichTextBox2.TextRTF:=RichTextBox2.TextRTF+RichTextBox1.TextRTF;
如何发送和显示文本以及带有图片的信息。
假设RichTextBox1是发送信息的输入框,RichTextBox2是显示聊天记录的区域,当我输入内容,点击发送时,如下语句不起作用
RichTextBox2.TextRTF:=RichTextBox2.TextRTF+RichTextBox1.TextRTF;
begin
RichTextBox2.SelStart:=length(RichTextBox2.Text);
RichTextBox2.SelText:=RichTextBox1.TextRTF;
RichTextBox1.Text:='';
end;
我用这个 RichTextBox2.SelText:= friendName+' '+datetimetostr(now)+':'+#13#10+RichTextBox1.TextRTF;可是显示的是乱七八糟的东西
RichTextBox2.SelStart:=length(RichTextBox2.Text);
RichTextBox2.SelFontSize :=8;
RichTextBox2.SelText:=friendName+' '+datetimetostr(now)+#13#10; RichTextBox2.SelStart:=length(RichTextBox2.Text);
RichTextBox2.SelFontSize :=20;
RichTextBox2.SelText:=RichTextBox1.Text+#13#10;
RichTextBox1.Text:='';
const Chatter_A='广州佬(190814570) ';
Chatter_B='larrykan(未知) ';
var s:WideString;
startstr,len:integer;
procedure poststr(str:string;const clr:TColor=clHighlight;
const size:integer=10; Bold:boolean=false; fsItalic:boolean=false; Underline:boolean=false);
begin
len:=length(str);
startstr:=length(RichTextBox2.Text);
RichTextBox2.SelStart:=startstr;
RichTextBox2.SelText:=str;
RichTextBox2.SelStart:=startstr;
RichTextBox2.SelLength:=len-1;
RichTextBox2.SelColor:=clr;
RichTextBox2.SelFontSize:=size;
RichTextBox2.SelBold:=Bold;
RichTextBox2.SelItalic:=fsItalic;
RichTextBox2.SelUnderline:=Underline;
end;
begin
s:=#13#10+#13#10+Chatter_A+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(s);
s:=#13#10+'http://topic.csdn.net/u/20111007/22/a0c502c0-7bb9-45fa-8c07-632c547e459e.html';
poststr(s,clBlue,8,false,false,true);
s:=#13#10+'您真省,40分问了几个问题?';
poststr(s,clBlue);
s:=#13#10+#13#10+Chatter_B+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(s);
s:=#13#10+'放心,下次我开新帖给你分。';
poststr(s,clRed,16);
s:=#13#10+#13#10+Chatter_A+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(s);
s:=#13#10+'那就先谢了~';
poststr(s,clBlue,18,true,true);
end;
procedure poststr(RTBox:TRichTextBox; str:string;const clr:TColor=clHighlight;
const size:integer=10; Bold:boolean=false; fsItalic:boolean=false; Underline:boolean=false);
var startstr,len:integer;
begin
with RTBox do begin
len:=length(str);
startstr:=length(Text);
SelStart:=startstr;
SelText:=str;
SelStart:=startstr;
SelLength:=len-1;
SelColor:=clr; //颜色
SelFontSize:=size; //字号
SelBold:=Bold; //加粗
SelItalic:=fsItalic; //斜体
SelUnderline:=Underline; //下划线
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const Chatter_A='广州佬(190814570) ';
Chatter_B='larrykan(未知) ';
var s:string;
begin
s:=#13#10+#13#10+Chatter_A+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(RichTextBox2,s);
s:=#13#10+'http://topic.csdn.net/u/20111007/22/a0c502c0-7bb9-45fa-8c07-632c547e459e.html';
poststr(RichTextBox2,s,clBlue,8,false,false,true);
s:=#13#10+'您真省,40分问了几个问题?';
poststr(RichTextBox2,s,clBlue);
s:=#13#10+#13#10+Chatter_B+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(RichTextBox2,s);
s:=#13#10+'放心,下次我开新帖给你分。';
poststr(RichTextBox2,s,clRed,16);
s:=#13#10+#13#10+Chatter_A+ formatdatetime('yy-mm-dd,hh-nn-ss',now);
poststr(RichTextBox2,s);
s:=#13#10+'那就先谢了~';
poststr(RichTextBox2,s,clBlue,18,true,true);
end;