Business中展开‘业务功能树’的进度框调度代码如下:
procedure TUserTree.LoadFuncLibraryTree(AParentNode: TUserNode);
var
I: integer;
lCurrentUser: TOperator;
lFuncItems: TOperatorFuncItems;
lFuncItem: TOperatorFuncItem;
lMax, lPosition: Integer;
lProcDlg: TProcessWaitDialog;
lShowProcessDialog: Boolean;
begin
lCurrentUser := TCommonComponentLibrary.UserSystem.CurrentUser;
lFuncItems := lCurrentUser.FuncItems;
lShowProcessDialog := (FOnLoadFuncLibraryProgress = nil) and
(lFuncItems.Count > cShowLoadingDialogFuncCount);
lProcDlg := nil;
lMax := lFuncItems.Count;
if lShowProcessDialog then
begin
lProcDlg := TProcessWaitDialog.Create(nil);
lProcDlg.Show;
lProcDlg.Max := lMax;
end;
for I := 0 to lFuncItems.Count - 1 do
begin
lFuncItem := lFuncItems.Items[I];
if (Position <> nil) and (lFuncItem.Position <> Position) then
Continue;
LoadFuncItemTreeList(lFuncItem, AParentNode);
lPosition := I + 1;
if Assigned(FOnLoadFuncLibraryProgress) then
FOnLoadFuncLibraryProgress(self, lFuncItem, lMax, lPosition)
else
if lProcDlg <> nil then
lProcDlg.Position := I;
end;
if lProcDlg <> nil then
begin
lProcDlg.Hide;
lProcDlg.Free;
end;
end;
这是“系统空间”下“公共组件库”中的一段源代码,我原模原样粘贴出来,以供参考。
另外:“系统空间”下的“系统核心库”和“公共组件库”是整个原型平台的核心代码,如果有时间,多看看里面的代码,是可以发现许多有用的东西和思想的。 |