tcxtabsheet的重复显示及自动关闭问题Delphi(Pascal) codefunction TForm1.Findwd(cpn:string):Boolean//
tcxtabsheet的重复显示及自动关闭问题
Delphi(Pascal) codefunction TForm1.Findwd(cpn:string):Boolean; //查找窗体的代码var fd:Boolean; i:Integer;begin fd:=False; for i:=0 to cxPageControl1.TabCount-1 do begin if cxPageControl1.Pages[i].Caption=cpn then begin fd:=True; cxPageControl1.ActivePageIndex:=i; Break; end; end; Result:=fd;end;
Delphi(Pascal) code procedure TForm2.ShowForm;//窗体显示的代码var tb:TcxTabSheet;begin tb:=TcxTabSheet.Create(Self); tb.PageControl:=form1.cxPageControl1; Application.CreateForm(TForm2,Form2); Form2.BorderIcons:=[]; Form2.BorderStyle:=bsNone; Form2.Align:=alClient; Form2.Parent:=tb; tb.Caption:=Form2.Caption; form1.cxPageControl1.ActivePageIndex:=form1.cxPageControl1.TabCount-1; Form2.Show; Form2:=nil;end;
Delphi(Pascal) codeprocedure TForm1.RzGroup1Items0Click(Sender: TObject);//单击显示时人代码begin if not Findwd(RzGroup1.Items[0].Caption) then Form2.ShowForm;end;
其中用了devexpress的第三方控件,为了实现单击TForm1.RzGroup1Items0就在form1的pagecontrol中出现form2
现在的问题是:1.如果多次单击item0的话出现连续相同的页面,怎样让相同的页面只出现一次。
2.我看其实demo中,Tabsheet右上角都有一个关闭的图标,很方便,我的怎么没有。
我是新手让各位哥哥们费心了,先谢过各位
[解决办法]Pages不能用,就用Tabs试试看。
关闭是在 Options 里pcoCloseButton
[解决办法]Delphi pagecontrol+formS
编辑 | 删除 | 权限设置 | 更多▼ 更多▲ 设置置顶 推荐日志 转为私密日志 待者 发表于2009年05月18日 13:10 阅读(5) 评论(0)
分类: 个人日记 权限: 公开
implementation
uses Unit5,Unit2,Unit4;
{$R *.dfm}
procedure TForm1.N4Click(Sender: TObject);
var
ts: TRzTabSheet;
Form2:TForm2;
i,j:integer;
begin
i:=0;
j:=0;
if TForm2(FindComponent('form2')) = nil then
begin
ts:= TRzTabSheet.Create(Self);
ts.PageControl := RzPageControl1;
Form2 := TForm2.Create(Self);
ts.Caption:='form2';
Form2.Parent := ts;
Form2.Align := alClient;
Form2.BorderStyle := bsNone;
Form2.Show;
Rzpagecontrol1.ActivePage:=ts;
end
else
begin
for i:=0 to rzpagecontrol1.PageCount -1 do
begin
if rzpagecontrol1.Pages.Caption ='form2' then
begin
j:=i;
break;
end;
end;
RzPageControl1.ActivePage :=RzPageControl1.Pages[j];
end;
end;
procedure TForm1.N3Click(Sender: TObject);
var
ts: TRzTabSheet;
Form4:TForm4;
i,j:integer;
begin
i:=0;
j:=0;
if TForm4(FindComponent('form4')) = nil then
begin
ts:= TRzTabSheet.Create(Self);
ts.PageControl := RzPageControl1;
Form4 := TForm4.Create(Self);
ts.Caption:='form4';
Form4.Parent := ts;
Form4.Align := alClient;
Form4.BorderStyle := bsNone;
Form4.Show;
Rzpagecontrol1.ActivePage:=ts;
end
else
begin
for i:=0 to rzpagecontrol1.PageCount -1 do
begin
if rzpagecontrol1.Pages.Caption ='form4' then
begin
j:=i;
break;
end;
end;
RzPageControl1.ActivePage :=RzPageControl1.Pages[j];
end;
end;
procedure TForm1.RzPageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
index:integer;
begin
if (Button = mbLeft) and (ssDouble in Shift) then
begin
Index := RzPageControl1.TabAtPos (X, Y);
if rzpagecontrol1.PageCount >1 then
begin
if index<rzpagecontrol1.PageCount-1 then
begin
RzPageControl1.Pages[Index].Free;
RzPageControl1.ActivePage :=RzPageControl1.Pages[index];
end
else
begin
RzPageControl1.Pages[Index].Free;
RzPageControl1.ActivePage :=RzPageControl1.Pages[index-1];
end;
end
else
RzPageControl1.Pages[Index].Free;
end;
end;
/////////////////这是可以解决你得需求!如果要原程序 你加我QQ81388409