tabsheet怎么双击关闭呢?没有找到双击事件

lshfong 2010-11-05 04:19:10
这是在delphi中的解决办法,但bcb中要出错
OnMouseDown事件
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Index: Integer;
begin
if (Button = mbLeft) and (ssDouble in Shift) then
begin
Index := PageControl1.IndexOfTabAt(X, Y);
if Index >= 0 then
PageControl1.Pages[Index].Free;
end;
end;
=====================================我改成bcb的
void __fastcall TForm2::TabSheet1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y) {
if (Button == mbLeft && ssDouble in Shift) {
PageControl1->RemoveControl(ActivePage);
PageControl1->ActivePage->Free();
}
}
错误提示:[BCC32 Error] Unit2.cpp(119): E2377 If statement missing )
Full parser context
Unit2.cpp(118): parsing: void _fastcall TForm2::TabSheet1MouseDown(TObject *,TMouseButton,TShiftState,int,int)
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lshfong 2010-11-05
  • 打赏
  • 举报
回复
妖哥,该你吃,分全给你
ccrun.com 2010-11-05
  • 打赏
  • 举报
回复
C++Builder中没有in的语法, 改成下面这个就行了:
void __fastcall TForm1::PageControl1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbLeft && Shift.Contains(ssDouble))
{
int nIndex = PageControl1->IndexOfTabAt(X, Y);
if (nIndex >= 0)
PageControl1->Pages[nIndex]->Free();
}
}


注意是PageControl的OnMouseDown,而不是TabSheet的OnMouseDown事件,这两个事件有区别的
|????| 2010-11-05
  • 打赏
  • 举报
回复
搞错了,原来也是C++Builder的东东。
可是 (ssDouble in Shift)这句是啥意思啊?不懂。
|????| 2010-11-05
  • 打赏
  • 举报
回复
楼主你发错势力范围了。这里归C++Builder管辖。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧