16,746
社区成员




unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, StdCtrls;
type
TFmMain = class(TForm)
RzPageControl1: TRzPageControl;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure OnCloseSheet(var msg: TMessage); message WM_USER+100;
public
{ Public declarations }
end;
var
FmMain: TFmMain;
implementation
uses Unit2;
{$R *.dfm}
procedure TFmMain.OnCloseSheet(var msg: TMessage);
var
i: integer;
sheet: TRzTabSheet;
begin
sheet := nil;
for i:=0 to RzPageControl1.PageCount-1 do
begin
if RzPageControl1.Pages[i].tag=msg.WParam then
begin
sheet := RzPageControl1.Pages[i];
break;
end;
end;
if sheet<>nil then sheet.Free;
end;
procedure TFmMain.Button1Click(Sender: TObject);
var
sheet: TRzTabSheet;
begin
if Form1<>nil then
begin
//TODO 激活Form1 对应的Sheet
exit;
end;
sheet := TRzTabSheet.Create(RzPageControl1);
sheet.PageControl := RzPageControl1;
sheet.Parent := RzPageControl1;
Form1 := TForm1.Create(sheet);
Form1.Parent := sheet;
Form1.Align := alClient;
sheet.Caption := Form1.Caption;
sheet.Tag := Form1.Handle;
Form1.Show;
RzPageControl1.ActivePage := sheet;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(Application.MainForm.Handle,WM_USER+100,Handle,0);
Form1 := nil;
end;
end.
unit UnitMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
RzTabs, Vcl.StdCtrls;
type
TFormMain = class(TForm)
RzPageControl1: TRzPageControl;
TabSheet系统导航: TRzTabSheet;
procedure FormCreate(Sender: TObject);
private
RzTabSheet1: TRzTabSheet;
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
{$R *.dfm}
uses unit1;
procedure TFormMain.FormCreate(Sender: TObject);
begin
RzTabSheet1 := TRzTabSheet.Create(RzPageControl1);
RzTabSheet1.PageControl := RzPageControl1;
RzTabSheet1.Caption := '主体模板';
RzTabSheet1.TabVisible := TRUE;
RzPageControl1.ActivePage := RzTabSheet1;
Form1 := TForm1.Create(RzTabSheet1); //指定Form1的Owner是RzTabSheet1
Form1.Parent := RzTabSheet1;
Form1.Align := alClient;
Form1.Show;
end;
end.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.Parent.Free;
end;
end.