16,748
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, ExtCtrls, RzPanel, RzButton, RzSplit, StdCtrls;
type
TForm1 = class(TForm)
RzSplitter1: TRzSplitter;
RzPanel1: TRzPanel;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
TabSheet4: TRzTabSheet;
TabSheet5: TRzTabSheet;
TabSheet6: TRzTabSheet;
RzButton1: TRzButton;
RzButton2: TRzButton;
RzButton3: TRzButton;
RzButton4: TRzButton;
RzButton5: TRzButton;
RzButton6: TRzButton;
TabSheet7: TRzTabSheet;
Label1: TLabel;
procedure RzButton6Click(Sender: TObject);
procedure RzButton5Click(Sender: TObject);
procedure RzButton4Click(Sender: TObject);
procedure RzButton3Click(Sender: TObject);
procedure RzButton2Click(Sender: TObject);
procedure RzButton1Click(Sender: TObject);
procedure RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.RzButton6Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
//TabSheet1.TabVisible:=true;
end;
procedure TForm1.RzButton5Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
TabSheet2.TabVisible:=true;
end;
procedure TForm1.RzButton4Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=2;
TabSheet3.TabVisible:=true;
end;
procedure TForm1.RzButton3Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=3;
TabSheet4.TabVisible:=true;
end;
procedure TForm1.RzButton2Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=4;
TabSheet5.TabVisible:=true;
end;
procedure TForm1.RzButton1Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=5;
TabSheet6.TabVisible:=true;
//TabSheet6.
end;
procedure TForm1.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
AllowClose:=True;
end;
end.
class function TSMUIDrv.LoadFuncForm(parent: TRzPageControl; clsName: string): TAWin;
var
i,j: integer;
tmp: TComponent;
sht: TRzTabSheet;
begin
//form exists?
for i:=0 to parent.PageCount-1 do
begin
for j:=0 to parent.Pages[i].ControlCount-1 do
begin
if parent.Pages[i].Controls[j].ClassName=clsName then
begin
parent.ActivePageIndex := i;
result := TAWin(parent.Pages[i].Controls[j]);
exit;
end;
end;
end;
//to load new form
sht := TRzTabSheet.Create(parent);
sht.PageControl := parent;
tmp := LoadComponent(clsName,sht);
if tmp<>nil then
begin
result := TAWin(tmp);
result.Parent := sht;
TAWin(tmp).BorderStyle := bsNone;
sht.Caption := TAWin(tmp).Caption;
result.Align := alClient;
sht.Tag := TAWin(tmp).Tag;
result.Show;
parent.ActivePageIndex := parent.PageCount-1;
end
else begin
sht.Free;
result := nil;
end;
end;
procedure TFmMain.OnCloseActivePage(sender: TObject; var allowClose: boolean);
var
i: integer;
begin
for i:=0 to pcCtl.ActivePage.ControlCount-1 do
begin
if (pcCtl.ActivePage.Controls[i] is TAWin) then
begin
if TAWin(pcCtl.ActivePage.Controls[i]).Dirty and
(TSMSystem.MessageBox('数据未保存,是否关闭?',MB_ICONQUESTION or MB_YESNO)=IDNO) then
begin
allowClose := false;
exit;
end;
TAWin(pcCtl.ActivePage.Controls[i]).Free;
allowClose := true;
end;
end;
end;
procedure TForm1.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
RzPageControl1.ActivePage.TabVisible:=false
//如有必要可与指定当前页
end;