现在的位置: 首页 > 综合 > 正文

不知道是不是TpageControl的bug

2014年02月08日 ⁄ 综合 ⁄ 共 1639字 ⁄ 字号 评论关闭
修改TpageControl的ActivePage属性

//定义的全局变量
FlagDept:smallInt;//0 :人员 1:部门 2:岗位;

//MDI窗体的菜单CLick事件
//1
procedure TFrmStart.NBuMenClick(Sender: TObject);
begin
  FlagDept:=1;
  if frmRenYuan=nil then
  begin
    frmRenYuan:=TfrmRenYuan.Create(self);
    frmRenYuan.Width:=659;
    frmRenYuan.Height:=545;
    frmRenYuan.Left :=50;
    frmRenYuan.Top :=50;
    frmRenYuan.Show;
  end
  else begin
    frmRenYuan.WindowState:=wsNormal;
    frmRenYuan.Show;
  end;

end;

//2
procedure TFrmStart.NRenYuanClick(Sender: TObject);
begin
  FlagDept:=0;
  if frmRenYuan=nil then
  begin
    frmRenYuan:=TfrmRenYuan.Create(self);
    frmRenYuan.Width:=659;
    frmRenYuan.Height:=545;
    frmRenYuan.Left :=50;
    frmRenYuan.Top :=50;
    frmRenYuan.Show;
  end
  else begin
    frmRenYuan.WindowState:=wsNormal;
    frmRenYuan.Show;
  end;

end;

//3
procedure TFrmStart.NGangWeiClick(Sender: TObject);
begin
  FlagDept:=2;
  if frmRenYuan=nil then
  begin
    frmRenYuan:=TfrmRenYuan.Create(self);
    frmRenYuan.Width:=659;
    frmRenYuan.Height:=545;
    frmRenYuan.Left :=50;
    frmRenYuan.Top :=50;
    frmRenYuan.Show;
  end
  else begin
    frmRenYuan.WindowState:=wsNormal;
    frmRenYuan.Show;
  end;

end;

//利用frmRenYuan的FormCreate事件设置其TpageControl控件的ActivePage

procedure TfrmRenYuan.FormCreate(Sender: TObject);
begin
  if FlagDept=0 then
    page.ActivePage:=tabPer
  else if FlagDept=1 then
          page.ActivePage:=tabDept
       else if FlagDept=2 then
               page.ActivePage:=tabPost;

  //当前用户没权限的页Free掉,这里改变了TPageControl的结构
  if Not CurrRight.DeptQry then
    TabDept.Free;
  if Not CurrRight.PostInfoQry then
    TabPost.Free;
  if Not CurrRight.PersonelQry then
    TabPer.Free;

//*************************************结论***************************************************
//上面不同颜色的两部分顺序要反过来才能实现效果
end;

 

抱歉!评论已关闭.