程序主窗口的菜单是结合coolbar和tool做的,如下图。
在formshow事件里判断当前用户级别以决定显示哪些功能菜单procedure TfrmMain.FormShow(Sender: TObject);
begin
  frmMain.Caption:='台帐管理系统 - ' + sRealName + '(' + dmMain.GetUserIdentity(nUserGrade) + ')';
  //根据用户级别打开相应功能菜单
  case nUserGrade of
    idAdministrator:  //管理员
      begin
        //操作员
        mnuOperator.Enabled:=False;
        mnuOperator.Visible:=False;
        //财务
        mnuFinace.Enabled:=False;
        mnuFinace.Visible:=False;
        //管理员
        mnuAdministrator.Enabled:=True;
        mnuAdministrator.Visible:=True;
      end;
    idFinace:        //财务
      begin
        mnuOperator.Enabled:=False;
        mnuOperator.Visible:=False;
        mnuFinace.Enabled:=True;
        mnuFinace.Visible:=True;
        mnuAdministrator.Enabled:=False;
        mnuAdministrator.Visible:=False;
      end;
    idOperator:    //操作员
      begin
        ShowMessage('消息');      
        mnuOperator.Enabled:=True;
        mnuOperator.Visible:=True;
        mnuFinace.Enabled:=False;
        mnuFinace.Visible:=False;
        mnuAdministrator.Enabled:=False;
        mnuAdministrator.Visible:=False;
      end;
  end;
  lvwMainInitialization;
end;当前用户身份是idOperator,且程序显示了ShowMessage('消息')这个消息框,但菜单没有按代码所示显示,好像对菜单显示的控制代码无效一样。困惑中。。