如何使用 TreeView 构件制作类是 Email 软件最右边蓝色()数值的效果?(100分)

  • 主题发起人 主题发起人 question
  • 开始时间 开始时间
Q

question

Unregistered / Unconfirmed
GUEST, unregistred user!

+文章总数(1)
|_AAAA ^^^ 这个效果!
 
用1stclass
 
if 如果有新邮件 then
treeview1.邮箱子树.caption:='文章总数('+inttostr(newmailcount)+')';
 
我的意思是标题用正常的字体(即文章总数),(1)用蓝色的字体效果如:
<body bgcolor="#FFFFFF">
+<font color="#000000">文章总数</font><font color="#3366FF">(1)</font>
</body>
 
TreeView.OnCustomDrawItem
 
需要详细实例代码。
 
procedure TAddressBookForm.TreeViewAdvancedCustomDrawItem(
Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState;
Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean);
var
NodeRect: TRect;
begin
if Stage = cdPostPaint then
begin
NodeRect := Node.DisplayRect(True);
TreeView.Canvas.Font.Color := clBlue;
TreeView.Canvas.Brush.Style := bsClear;
TreeView.Canvas.TextOut(NodeRect.Right, NodeRect.Top + 2, '(1)');
end;
end;
 
你用了什么构件?Stage: TCustomDrawStage 这是什么?
我需要的效果是 文章总数用黑色的,(1)用蓝色的,而他下面的子节点不要这样的表示
即不要(1)这样的效果。
 
Delphi5,TTreeView
 
to DelphiWolf:
Delphi 5 ,TreeView 的标准事件应该是
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
end;
而你的例子中 Stage: TCustomDrawStage 没有。
PS:用你的例子的效果是
<body bgcolor="#FFFFFF">
<p><font color="#3366FF">文章总数(1)</font> </p>
<p>我希望的是:文章总数<font color="#3333FF">(1)</font> </p>
</body>
PS:什么时候显示的问题我已经解决了。我仅仅想知道我希望的效果如何实现。
THank
 
TreeView,既有
OnAdvancedCustomDrawItem
也有
OnCustomDrawItem
你看清楚一点
 
接受答案了.
 
后退
顶部