像QQ中聊天记录显示格式的Grid控件是如何实现的(请附代码)?(90分)

  • 主题发起人 20126301
  • 开始时间
2

20126301

Unregistered / Unconfirmed
GUEST, unregistred user!
在QQ的聊天记录显示的Grid能够将文字自动换行并调整每一行的高度,我偿试做一个基于
TGrid类的新控件,但不成功,不知各位能否帮忙(请附代码)?
我希望做一个与之相同的控件.
 
我想那应该是用ListBox实现的,你可以用windowfrompoint()来看看它的类。
真要写控件的话也应该继承TcustomListBox类。
放一个Listbox,一个memo,memo.lines先放一段东西。
给你一个示例,刚刚写的.
ListBox1.Style:=lbOwnerDrawVariable意思就是各个item可以有不同高度。
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
i:integer;
begin
Listbox1.canvas.FillRect(rect);
with Listbox1 do
begin
for i:=0 to memo1.Lines.Count-1 do
canvas.TextOut(1,i*15,memo1.Lines);
end;
end;

procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
Height:=memo1.Lines.Count*15;
end;
 
To:bubble
QQ的聊天记录中是Table啊,显示了几个字段的.
 
treeview+listview+memo+panel
 
20126301,你好,可以联系一下吗??我的QQ是6075335
 
做一个基于TDBGrid的控件,重画时设置控件的row height...
 
接受答案了.
 
顶部