Ama*_*nda 4 delphi tpagecontrol
我想限制用户(基于特殊条件)在页面控件中打开选项卡.即,用户可以单击选项卡,但不会向他显示.相反,一条消息将向他显示" he don't have the access right to see such tab".
在什么事件上我应该编写检查代码,以及哪个tab属性(TPageControl组件)将允许/阻止用户进入这样的选项卡?
在一个理想的世界里,你将设置AllowChange于False从OnChanging事件阻止页面改变.然而,这看起来似乎不可行,因为我无法从内部辨别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;
Run Code Online (Sandbox Code Playgroud)
我知道相当凌乱,但它有工作的美德!