加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何允许或禁止用户在pagecontrol中输入tab?

发布时间:2020-12-15 09:38:10 所属栏目:大数据 来源:网络整理
导读:我想限制用户(基于特殊条件)在页面控件中打开选项卡.即,用户可以单击选项卡,但不会向他显示.相反,一条消息将向他显示“他没有访问权限以查看此类标签”. 在什么事件上我应该编写检查代码,以及哪些tab属性(TPageControl组件)将允许/阻止用户进入这样的选项卡
我想限制用户(基于特殊条件)在页面控件中打开选项卡.即,用户可以单击选项卡,但不会向他显示.相反,一条消息将向他显示“他没有访问权限以查看此类标签”.

在什么事件上我应该编写检查代码,以及哪些tab属性(TPageControl组件)将允许/阻止用户进入这样的选项卡?

解决方法

在理想的世界中,您可以从OnChanging事件中将AllowChange设置为False以阻止页面更改.但是,这似乎不可行,因为我无法从OnChanging中找出用户试图选择哪个页面的方法.

即使查看基础Windows通知似乎也没有什么希望. TCN_SELCHANGING通知标识了控件,但据我所知,并没有说明所涉及的页面.

我能想到的最好的方法是使用OnChanging来记录当前的活动页面,然后在OnChange中进行艰苦的工作.如果所选页面已更改为不需要的内容,则只需将其更改回来.

procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean);
begin
  FPreviousPageIndex := PageControl1.ActivePageIndex;
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
  if PageControl1.ActivePageIndex=1 then begin
    PageControl1.ActivePageIndex := FPreviousPageIndex;
    Beep;
  end;
end;

我知道相当凌乱,但它有工作的美德!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读