起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 682|回复: 13

【搞定】功能树的颜色**

[复制链接]
发表于 2006-11-5 21:22:20 | 显示全部楼层 |阅读模式
如下图所示,想要改变功能树背景颜色,在哪里更改?

功能树的颜色.jpg

8.39 KB, 下载次数: 336

回复

使用道具 举报

 楼主| 发表于 2006-11-5 21:22:58 | 显示全部楼层
偶的似2401版
回复 支持 反对

使用道具 举报

发表于 2006-11-6 11:05:28 | 显示全部楼层
需要修改“系统空间\简洁风格\界面库\窗体库”资源集
TBaseNavBar = class(TdxNavBar)
  private
    FBaseTree: TBaseTree;

    FGroups: TStringList;
    FTreeViews: TStringList;

    function GetGUID(ABarNode: TComponent): string;
    function FindTreeView(ABarNode: TComponent): TBaseTreeView;
    function GetTreeView(ABarNode: TComponent): TBaseTreeView;

    procedure CloseOtherGroups(AGroup: TdxNavBarGroup);

    function GetSelectNode: TBaseNode;

    procedure SetBaseTree(const Value: TBaseTree);

    procedure AdjusteControlHeight(Sender: TObject; AViewInfo: TdxNavBarGroupViewInfo;
      var AHeight: Integer);
  protected
    function DoAddGroup(ANode: TBaseNode): TdxNavBarGroup;
    procedure DoGroupChange(Sender: TObject);
    procedure DoActiveGroupChanged(Sender: TObject);

    function DoCreateTreeView(AOwner: TComponent): TBaseTreeView; virtual;
    function CreateTreeView(AGroup: TdxNavBarGroup;
      const AFromGUID: string): TBaseTreeView; virtual;
  public
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;

    procedure Reload;

    property SelectNode: TBaseNode read GetSelectNode;
    property BaseTree: TBaseTree read FBaseTree write SetBaseTree;
  end;

在方法    function DoAddGroup(ANode: TBaseNode): TdxNavBarGroup;
    procedure DoGroupChange(Sender: TObject);中增加颜色定义的代码

function TBaseNavBar.DoAddGroup(ANode: TBaseNode): TdxNavBarGroup;
var
  lGroup : TdxNavBarGroup;
  nbs : TdxNavBarStyleItem;
begin
  lGroup := Groups.Add;
  lGroup.Caption := ANode.DisplayName;
  lGroup.Expanded := False;
  lGroup.ShowControl := True;
  lGroup.Control.OriginalHeight := 280;
  lGroup.OnCollapsed := DoGroupChange;
  lGroup.OnExpanded := DoGroupChange;

  //设置Group标签颜色
  nbs := TdxNavBarStyleItem.Create(self);
  nbs.Style.BackColor := Graphics.clYellow;
  nbs.Style.BackColor2 := Graphics.clYellow;
  lGroup.StyleHeader := nbs;

  FGroups.AddObject(ANode.GUID, lGroup);
  Result := lGroup;
end;

procedure TBaseNavBar.DoGroupChange(Sender: TObject);
var
  lFromGUID: string;
  lGroup: TdxNavBarGroup;
  lBaseTreeView: TBaseTreeView;
  lItem: TdxNavBarItem;
  lc: TdxNavBarComponentCollection;
begin
  lGroup := Sender as TdxNavBarGroup;
  lBaseTreeView := FindTreeView(lGroup);
//  if lGroup.Expanded then
  begin
    CloseOtherGroups(lGroup);
    if (lBaseTreeView = nil) then
    begin
      lFromGUID := GetGUID(lGroup);
      lBaseTreeView := CreateTreeView(lGroup, lFromGUID);

      //设置Group内面板颜色(FuncTreeView面板)
      lBaseTreeView.Color := Graphics.clBlue;

      FTreeViews.AddObject(lFromGUID, lBaseTreeView);
    end;
  end;
end;

关于相关控件说明,请参考studioHelp的NameSpace: Justep.Tools.ExpressNavBar
部分 和 navbarhelp.zip
回复 支持 反对

使用道具 举报

发表于 2006-11-6 11:08:20 | 显示全部楼层
NavBarHelp1

navbar.part1.rar

1.39 MB, 下载次数: 83

回复 支持 反对

使用道具 举报

发表于 2006-11-6 11:08:44 | 显示全部楼层
NavBarHelp2

navbar.part2.rar

805.35 KB, 下载次数: 80

回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-6 13:22:19 | 显示全部楼层
谢谢jiahaiminghr,按照你的指导修改。效果如下图所示,背景色仍然没更改啊。如何改变背景呢?就是蓝色的那块,是个图片吗?在哪里修改。

功能树的颜色.jpg

19.69 KB, 下载次数: 309

回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-6 14:16:04 | 显示全部楼层
如下红线部分的颜色如何改

功能树的颜色.jpg

21.6 KB, 下载次数: 303

回复 支持 反对

使用道具 举报

发表于 2006-11-6 14:19:04 | 显示全部楼层
标准风格主窗体

constructor TStandardStyleMainForm.Create(AContext: TContext);  

FFuncNavBar := TOperatorFuncNavBar.Create(Self);
  FFuncNavBar.Parent := HidePanel;
  FFuncNavBar.Width := 180;
  FFuncNavBar.View := 10;
  FFuncNavBar.Align := TAlign.alClient;
  FFuncNavBar.BorderStyle := TFormBorderStyle.bsNone;
  FFuncNavBar.SmallImages := TImageList(TCommonComponentLibrary.UserGraphics.ImageList16);
  FFuncNavBar.LargeImages := TImageList(TCommonComponentLibrary.UserGraphics.ImageList32);

//修改背景色
  FFuncNavBar.StyleBackground := TdxNavBarStyleItem.Create(self);
  FFuncNavBar.StyleBackground.Style.BackColor := Graphics.clRed;
  FFuncNavBar.StyleBackground.Style.BackColor2 := Graphics.clRed;
回复 支持 反对

使用道具 举报

发表于 2006-11-6 14:51:44 | 显示全部楼层
或者在“系统空间简洁风格\界面库窗体库”资源集
TBaseNavBar = class(TdxNavBar)
的构造函数中,增加代码
  StyleBackground := TdxNavBarStyleItem.Create(self);
  StyleBackground.Style.BackColor := Graphics.clRed;
  StyleBackground.Style.BackColor2 := Graphics.clRed;

但是,下图部分无法修改:

label.gif

6.05 KB, 下载次数: 300

回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-6 17:10:33 | 显示全部楼层
谢谢,结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 17:38 , Processed in 0.042202 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表