RzPageControl控件寻求帮助。(100分)

  • 主题发起人 主题发起人 cchenl
  • 开始时间 开始时间
C

cchenl

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将RzPageControl控件的前两页冻结住,就是说当页面较多右上角出现滚动按钮的时候,前两页不会因为滚动而消失。
 
是否使用TabSheet,的TabVisual,可以试试。
 
to delhpi
我想冻结第1、2页的话是要用到这个属性的,但是我怎样捕捉到那个点击滚动的事件呢?
我用这个方法:http://blog.csdn.net/gencheng/archive/2007/05/12/1606403.aspx
可以实现对Delphi自带的PageControl处理,但是对RzPageControl就不行。
谢谢。
 
偶也不熟悉,刚刚在学。能和你联系吗?
 
自己最终放弃了这个想法,将RzPageControl.MultLine:=True;
效果也不错。
谢谢。
 
那放两个RzPageControl,前一个不动,后一个可以动的,呵呵。。。
 
楼主 能否和你交流一下,我也用那个控件,但发现关闭动态创建的Tabsheet后,经常会报错。
 
如果单单是动态创建了一个Tabsheet,直接Free不会报错呀,要是Tabsheet上还动态创建了别的控件,就先Free这些控件再Free Tabsheet。我都是这样做的。
 
tabsheet上还动态创建了WebBrower,每个Tabsheet上一个,Free TabSheet时,其中的webbrower好像是自动释放的吧。
能给 部分代码学习一下吗?动态创建部分,和关闭部分,谢谢。
 
应该不是自动释放的。我是这样的:
//焦点页面双击关闭
procedure TFrmMain.RzPageControl1DblClick(Sender: TObject);
var
i:Integer;
PageIndex:Integer;
begin
PageIndex:=RzPageControl1.ActivePageIndex;
for i:=0 to RzPageControl1.Pages[PageIndex].ControlCount-1do
RzPageControl1.Pages[PageIndex].Controls.Free;
RzPageControl1.Pages[PageIndex].Free;
RzPageControl1.ActivePageIndex:=PageIndex-1;
end;
 
谢谢。似乎RZ那个控件,必须要自己释放TabSheet里的控件,否则关闭页后,很快就报错。
我试了一下,感觉好像正常了。
但D自带的TPageControl,好像不用手工释放TabSheet里的控件。
//焦点页面双击关闭
RZ提供了那么多事件,有TabSheet的TabSheet的单击事件,但就没有双击事件。
RzPageControl1DblClick(Sender: TObject);
这里写关闭的代码的话,也是变通的办法吧。即使在顶部空白的地方双击 也会自动关闭当前页。
 
不想在空白的地方也触发的话,可以在MouseUp事件里用 TabAtPos(X,Y)获取当前的页号。
 
procedure TFrmWeb.pcMouseUp(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if(Button=mbLeft) and(ssDouble in Shift) then
showmessage('');//没有显示,有点奇怪
end;
 
应该不用,DblClick事件应该也触发了MouseUp事件,你试试。
 
RzPageControl的单击事件 也会触发 MouseUp事件吧。
不过这个问题不大了。
现在想实现,在不同的页切换时,BtnGoback,BtnForward2个按钮能自动感应当前页中的webBrower是否能goback,Goforward?
 
现在想实现,在不同的页切换时,BtnGoback,BtnForward2个按钮能自动感应当前页中的webBrower是否能goback,Goforward?
===
这个也实现了。
 
我想冻结第1、2页的话是要用到这个属性的,但是我怎样捕捉到那个点击滚动的事件呢?
======
rz本身就有那个OnScrolledTabs事件和TabIndexInView属性,试试呢
Occurs when tabs are scrolled by clicking the scroll buttons.
property OnScrolledTabs: TNotifyEvent;

__property Classes::TNotifyEvent OnScrolledTabs
Description
This event gets fired when the tabs are scrolled by clicking the scroll buttons.
=============

Determines if specified tab is currently in view.
function TabIndexInView(Index: Integer): Boolean;

Description
This method determines if the specified tab index is currently in view, or has been hidden because it has been scrolled out of view.
 
你是用的哪个版本的Rz? 我没有找到OnScrolledTabs时间呀 我用的3.08
 
MouseUp事件里面不要判断是鼠标哪个键吧 直接写就可以啊
 
rz 4.3.2
MouseUp里面没有双击,不信你试试。在MouseDown事件里可以判断到双击。是不用判断左右键,我比较菜,现在修改了。
 

Similar threads

D
回复
0
查看
802
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
747
DelphiTeacher的专栏
D
D
回复
0
查看
776
DelphiTeacher的专栏
D
D
回复
0
查看
696
DelphiTeacher的专栏
D
后退
顶部