|
发表于 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 |
|