各位高手大家好:
我用了 pagecontrol1一个组件,并且我静态定义了7个tabsheet,可是用户要求能关闭活页(但有要求)
,要求点击tabsheet时(就是刚创建tabsheet时上面有几个tabsheet1,tabsheet2,tabsheet3等放caption的信息的地方)
,关闭你所点击的那个活页。我做后只能关闭一个,而且关闭的活页头,与下面的内容不符,就是说我所关闭的内容却还在界面上,我的代码是:
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
index : integer;
a:integer;
begin
P:=pagecontrol1.ActivePage.ClientToScreen(p);
pagecontrol1.ActivePageIndex:=pagecontrol1.IndexOfTabAt(p.X,p.Y);
a:=pagecontrol1.ActivePageIndex;
pagecontrol1.ActivePage:=pagecontrol1.Pages[a];//我想把想删除的活页置为当前页然后在另一个按纽的功能输入
PageControl1.ActivePage.TabVisible := false;
但是不能成功,我这个要求是,必须先找到tabsheet(就是你右键时,系统自动把你右键的tabsheet,默认为当前值)然后(右键时会弹出一个关闭此活页的窗口)点击关闭按纽,关闭此活页 。
我的编程能力有限,写的代码总是不能成功,请高手帮我解决一下,谢谢了
我用了 pagecontrol1一个组件,并且我静态定义了7个tabsheet,可是用户要求能关闭活页(但有要求)
,要求点击tabsheet时(就是刚创建tabsheet时上面有几个tabsheet1,tabsheet2,tabsheet3等放caption的信息的地方)
,关闭你所点击的那个活页。我做后只能关闭一个,而且关闭的活页头,与下面的内容不符,就是说我所关闭的内容却还在界面上,我的代码是:
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
index : integer;
a:integer;
begin
P:=pagecontrol1.ActivePage.ClientToScreen(p);
pagecontrol1.ActivePageIndex:=pagecontrol1.IndexOfTabAt(p.X,p.Y);
a:=pagecontrol1.ActivePageIndex;
pagecontrol1.ActivePage:=pagecontrol1.Pages[a];//我想把想删除的活页置为当前页然后在另一个按纽的功能输入
PageControl1.ActivePage.TabVisible := false;
但是不能成功,我这个要求是,必须先找到tabsheet(就是你右键时,系统自动把你右键的tabsheet,默认为当前值)然后(右键时会弹出一个关闭此活页的窗口)点击关闭按纽,关闭此活页 。
我的编程能力有限,写的代码总是不能成功,请高手帮我解决一下,谢谢了
解决方案 »
- edit 控件
- 各位朋友,我知道你们只关心技术,其实我也一样
- Delphi如何去获取SQL 2K的所有客户建立的表名啊?谢谢!
- 查看所有任务栏提出的问题--急--
- 庆祝问题解决!工作任务完成!最后200分,散!散光!接分吧。。。欢迎大家一块讨论,UP,指点迷津!
- 如何在dbgrid上画combobox(急!!!俄!!)
- 现在公司要我在十天里做一个网站出来,,可以是以前没有做过呀!
- 关于UpdateSQL的数据更新问题?为什么每次只能更新一条数据?
- help!!!!!!!!!!!!!1
- 关于dll,plug
- 一个控件的图标问题?
- 請"救"!Delphi 7 的idSMTP 和 idPOP3 組件的用法?
PageControl1.ActivePage.Free;然后将PageControl的PopupMenu设为你所放置的PopupMenu在PageControl的MouseDown事件内写如下代码:procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if(Button = mbRight) then
begin
PageControl1.ActivePageIndex := Pagecontrol1.IndexOfTabAt(X, Y);
end;
end;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Application.MessageBox('是否删除?','提示',mb_yesno+mb_iconquestion)=idno then exit;
PageControl1.Pages[PageControl1.IndexOfTabAt(x,y)].TabVisible :=false;
end;
begin
PageControl1.ActivePageIndex := Pagecontrol1.IndexOfTabAt(X, Y);好象这个并没有起作用,因为我关闭的不是我右键所点击的窗口,而是关闭的真正的当前的窗口
begin
PageControl1.ActivePage.TabVisible := false;
//PageControl1.ActivePage.Free; 不能用这个,因为我是静态的,这样释放了,那我再用就用不成了。
end;procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if(Button = mbRight) then
begin
PageControl1.ActivePageIndex := Pagecontrol1.IndexOfTabAt(X, Y); end;
end;