组件库
procedure TOperatorFuncNavBar.GetGroupNodes(ANodes: TStrings);
var
lNodes: TStringList;
I: Integer;
begin
lNodes := TStringList.Create;
try
UserBizTree.GetChildrenBySeq(cRootGUID, lNodes);
for I := 0 to lNodes.Count - 1 do
begin
if SysUtils.SameText(TUserBizNode(lNodes.Objects[I]).ObjectID, BizGroup) then
begin
//UserBizTree.GetChildrenBySeq(lNodes[I], ANodes);//注释掉这句,添加下面代码;
[B] ANodes.AddObject(TUserBizNode(lNodes.Objects[I]).GUID, lNodes.Objects[I]);[/B]
Break;
end;
end;
finally
lNodes.Free;
end;
end;
function TBaseNavBar.CreateTreeView(AGroup: TdxNavBarGroup;
const AFromGUID: string): TBaseTreeView;
var
lBaseTreeView: TBaseTreeView;
lNode: TTreeNode;
begin
lBaseTreeView := DoCreateTreeView(AGroup.Control);
lBaseTreeView.Parent := AGroup.Control;
lBaseTreeView.BorderStyle := TFormBorderStyle.bsNone;
lBaseTreeView.BevelEdges := [TBevelEdge.beLeft];
lBaseTreeView.BevelOuter := TBevelCut.bvSpace;
lBaseTreeView.BevelInner := TBevelCut.bvSpace;
lBaseTreeView.BevelKind := TBevelKind.bkFlat;
lBaseTreeView.BevelWidth := 4;
[B] lBaseTreeView.ShowButtons := true;//False;
lBaseTreeView.ShowLines := true;//False;[/B]
lBaseTreeView.Align := TAlign.alClient;
lBaseTreeView.Images := LargeImages;
lBaseTreeView.BaseTree := BaseTree;
lBaseTreeView.Show;
lBaseTreeView.HandleNeeded;
CommCtrl.TreeView_SetItemHeight(lBaseTreeView.Handle, 28);
lBaseTreeView.BaseTree.GetChildren(AFromGUID, lBaseTreeView.StartWithNodes, False);
if lBaseTreeView.StartWithNodes.Count > 0 then
lBaseTreeView.ReloadTree;
// 解决系统缺省把第一个节点打开了
lNode := lBaseTreeView.Items.GetFirstNode;
if lNode <> nil then
begin
lNode.Collapse(False);
lBaseTreeView.Selected := nil;
end;
Result := lBaseTreeView;
end; |