如何在一个窗体中包含另一个窗体(100分)

  • 主题发起人 主题发起人 boyjason
  • 开始时间 开始时间
B

boyjason

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一个窗体中包含另一个窗体,我是意思是看起来,就好像一个窗体是另一个
窗体的容器一样

要源码
 
用一个panel作为载体
Frm_l:=TFrm_l.Create(Frm_main.panel1);
Frm_l.Parent:=Frm_main.panel1;
Frm_l.Show;
 
你说的是mdi吧。
把主窗体的FormStyle设为FsMDIForm
把其他的窗体的FormStyle设为FsMDIChild
 
form2.Parent:=form1;
 
1.用Frame框架结构
2.
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Parent:=form1;
form2.Show
end;
3.Form1上放置ScrollBox1,如下。
拖动ScrollBox1的滚动条会看见Form2,假如此时Form2上有图片,
你会发现Form2移动时,图片一点都不闪烁!
呵呵 可以处理图片移动闪烁问题!

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form2.Color:=clred;
form2.Parent:=ScrollBox1;
Form2.Show;
end;
 
设定 form1 为主窗体 加入一个Panel1
把form2显示在form1中
设定 form2 为第二窗体
form1 中引用 form2
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Application .CreateForm(tform2,form2 );
form2 .Parent :=Panel1;
form2.Align := alClient;
form2 .Top :=0;
form2 .Left :=0;
form2.width:=Panel1 .Width ;
form2.height:=Panel1 .Height ;
form2 .Show ;
end;
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses
unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
with Form2 do begin
Parent := Self;
Show;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(Form2)
end;

end.


////////////////////////////////////////////////////////////////

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

 
多人接受答案了。
 
后退
顶部