社区
VCL组件使用和开发
帖子详情
怎样判断PageControl的页标签
MYMGrub
2009-08-21 12:50:39
我想把鼠标放在PAGECONTROL的页标签上,然后点击鼠标右键关闭这个标签,可是我怎么知道我鼠标右键点的这个标签是哪个呀??
先谢谢各位了啊!!
...全文
142
8
打赏
收藏
怎样判断PageControl的页标签
我想把鼠标放在PAGECONTROL的页标签上,然后点击鼠标右键关闭这个标签,可是我怎么知道我鼠标右键点的这个标签是哪个呀?? 先谢谢各位了啊!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MYMGrub
2009-08-21
打赏
举报
回复
我的意思是说假如方框太多了,那么会不会出错误呀??比如我加了六个方框,但是我的页面上只能显示五个方框,那么就会隐藏起来一个吧,那我按右边的左右箭头把第六个显示出来的时候那第一个就会被隐藏了,那时候我在原来第一个方框的位置点击鼠标的话不会让第一个方框出现问题吗??
我已经找到方法了,我的意思用这个比较有用:PageControl1.IndexOfTabAt(X,Y)
还是谢谢各位了,如果哪位有好的建议来教给我,欢迎继续在这个帖子里留言,不过我不会加分了:)
谢谢了!!
fxworld
2009-08-21
打赏
举报
回复
//更正
void __fastcall TForm1::PageControl1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if( !Shift.Contains( ssRight ) )
return;
int tabcnt = PageControl1->PageCount;
TRect *tabrect = new TRect[tabcnt];
TPoint mousePt(X,Y);
bool rs = false;
int idx ;
for( idx=0;idx < tabcnt;idx++ )
{
tabrect[idx] = PageControl1->TabRect(idx);
if( PtInRect(tabrect[idx],mousePt) )
{
rs=true;
break;
}
}
if( rs )
{
delete PageControl1->Pages[idx];
}
}
//---------------------------------------------------------------------------
fxworld
2009-08-21
打赏
举报
回复
//应该在OnMouseDown里面判断
void __fastcall TForm1::PageControl1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if( !Shift.Contains( ssRight ) )
return;
int tabcnt = PageControl1->PageCount;
TRect *tabrect = new TRect[tabcnt];
TPoint mousePt(X,Y);
bool rs = false;
int idx ;
for( idx=0;idx < tabcnt;idx++ )
{
tabrect[idx] = PageControl1->TabRect(idx);
if( PtInRect(tabrect[idx],mousePt) )
{
rs=true;
break;
}
}
if( rs )
{
this->PageControl1->Pages[idx]->TabVisible=false;
}
}
//---------------------------------------------------------------------------
CACACACACA
2009-08-21
打赏
举报
回复
标签页切换的时候,会有onchange.onchanging事件,按楼上的代码处理就可以了。
fxworld
2009-08-21
打赏
举报
回复
[Quote=引用 2 楼 mymgrub 的回复:]
这样不行啊,那我如果有很多很多页,那用方框定位就会出现错误了...
[/Quote]
怎么不行,PageControl 有几个Tab可以计算,每个TabRect可以计算,TabRect对应的Tabsheet也是可以定位的。
laowang2
2009-08-21
打赏
举报
回复
if (PageControl1->ActivePage)
delete PageControl1->ActivePage;
MYMGrub
2009-08-21
打赏
举报
回复
这样不行啊,那我如果有很多很多页,那用方框定位就会出现错误了...
fxworld
2009-08-21
打赏
举报
回复
先计算页标签的TRect,然后在OnMouseMove中判断鼠标是否在TRect的范围里。
delphi
PageControl
1如何不显示
标签
delphi
PageControl
1如何不显示
标签
delphi_
PageControl
不显示
标签
,去掉边框
delphi_
PageControl
不显示
标签
,去掉边框
在DELPHI中实现用RZ
PAGECONTROL
实现多
标签
窗口功能(类似IE8以上)
在DELPHI中通过RZ
PAGECONTROL
(开发环境需安装RAIZE组件)实现类似IE8及以上版本或傲游浏览器等的多
标签
窗口功能。压缩包中为完整代码。
delphi
标签
化窗体
运用Raize控件的
pagecontrol
把窗体吸附到
标签
上,并且能够点击
标签
上的关闭按钮,释放窗体
标签
在DELPHI中通过RZ
PAGECONTROL
实现类似IE8或傲游浏览器的多
标签
窗口功能
在DELPHI中通过RZ
PAGECONTROL
(开发环境需安装RAIZE组件)实现类似IE8或傲游浏览器等的多
标签
窗口功能。 窗体采用动态创建方法,再多的窗体开发时都十分简单,只需在主窗体的FormCreate事件中添加RegisterClass...
VCL组件使用和开发
604
社区成员
13,460
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章