function 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;
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;procedure 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右上角都有一个关闭的图标,很方便,我的怎么没有。
我是新手让各位哥哥们费心了,先谢过各位
关闭是在 Options 里pcoCloseButton
编辑 | 删除 | 权限设置 | 更多▼ 更多▲ 设置置顶 推荐日志 转为私密日志 待者 发表于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