17 个解决方案
#1
你的代碼有問題, 貼出來
#2
不是很清楚
#3
这是form1中的代码
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Show;
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Show;
#4
form2.parent := form1 干掉,要这句话干什么
#5
如果是控件button那么 需要button.parent := form1
如果如你那样是调用窗体,那么不要form2.parent := form1
如果如你那样是调用窗体,那么不要form2.parent := form1
#6
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Showmodal; //只要注意这里就行了
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Showmodal; //只要注意这里就行了
#7
form1是放在panel上的,我想让form2显示在form1上,点击form1时form2不消失。
#8
不明白你为什么那样做
#9
那为什么不用主次窗体呢?这样不是很好吗?
#10
to cll007(gazo)
因为form2是form1的附属,form1用来添加基本信息,form2用来添加一些附属信息。
帮帮我好么,我知道你很厉害的。拜托了。
因为form2是form1的附属,form1用来添加基本信息,form2用来添加一些附属信息。
帮帮我好么,我知道你很厉害的。拜托了。
#11
to 22932565(天地之鹰)
我在MDI中无法让子窗体和panel上的窗体同时显示。
我在MDI中无法让子窗体和panel上的窗体同时显示。
#12
对啊,是不能显示的啊,我只是意见一下,你那样做到底有什么意思啊,
你说说看,你那样做到最后会是什么样的效果。我帮你想想看会不会有其它的办法。
你说说看,你那样做到最后会是什么样的效果。我帮你想想看会不会有其它的办法。
#13
你看看这样做行吗?
我是这样想的:
建立一个工程,在里面添加form1,form2。从project-options 在forms选项卡中,把form2移动到available forms 中,在使用一下代码:
if not assigned(form2) then
begin
form2:= Tform2.Create(Application);
form2.parent := panel1;
form2.Show;
end;
这样可以了
我是这样想的:
建立一个工程,在里面添加form1,form2。从project-options 在forms选项卡中,把form2移动到available forms 中,在使用一下代码:
if not assigned(form2) then
begin
form2:= Tform2.Create(Application);
form2.parent := panel1;
form2.Show;
end;
这样可以了
#14
比如form1上显示的是基本信息的内容,form2是对基本信息的添加,当form2出现时form1不消失,而操作完form2后,不用重新调form1它的内容就自动显示了。
#15
那你也没必要这么写form2.parent := form1吧!
比如在form1中有个添加的按钮,你在这个按钮的
事件里写:
if form2.ShowModal = mrOK then
begin
...
end;
就可以达到你的目的了嘛!
比如在form1中有个添加的按钮,你在这个按钮的
事件里写:
if form2.ShowModal = mrOK then
begin
...
end;
就可以达到你的目的了嘛!
#16
非常感谢!!!
#17
你要的效果是否是
如同记事本的 查找 窗口一样,结果可以 在背后窗体显示,而当前窗体不背遮住
如果是,那么下面的
Form1的FormStyle是fsMDIForm 主窗体
Form2的FormStyle是fsMDIChild 基本信息的内容窗体
Form3的FormStyle是fsStayOnTop 对基本信息的添加的窗体
必须保证Form1,Form2,Form3是全局变量,才能使if not assigned(Form)有效
---------
改变Form3上的Edit1的内容时,Form2上Edit1的内容同时改变
----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then
Form2:=TForm2.Create(Application);
Form2.Show;
end;
end.
-------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
if not Assigned(Form3) then
Form3:=TForm3.Create(Self);
Form3.Show;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil
end;
end.
-----------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2;
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
Form2.Edit1.Text:=(Sender as TEdit).Text;
end;
end.
如同记事本的 查找 窗口一样,结果可以 在背后窗体显示,而当前窗体不背遮住
如果是,那么下面的
Form1的FormStyle是fsMDIForm 主窗体
Form2的FormStyle是fsMDIChild 基本信息的内容窗体
Form3的FormStyle是fsStayOnTop 对基本信息的添加的窗体
必须保证Form1,Form2,Form3是全局变量,才能使if not assigned(Form)有效
---------
改变Form3上的Edit1的内容时,Form2上Edit1的内容同时改变
----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then
Form2:=TForm2.Create(Application);
Form2.Show;
end;
end.
-------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
if not Assigned(Form3) then
Form3:=TForm3.Create(Self);
Form3.Show;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil
end;
end.
-----------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2;
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
Form2.Edit1.Text:=(Sender as TEdit).Text;
end;
end.
#1
你的代碼有問題, 貼出來
#2
不是很清楚
#3
这是form1中的代码
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Show;
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Show;
#4
form2.parent := form1 干掉,要这句话干什么
#5
如果是控件button那么 需要button.parent := form1
如果如你那样是调用窗体,那么不要form2.parent := form1
如果如你那样是调用窗体,那么不要form2.parent := form1
#6
if not Assigned(form2) then
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Showmodal; //只要注意这里就行了
form2:= Tform2.Create(Application);
form2.parent := Frm_LRYG;
form2.Showmodal; //只要注意这里就行了
#7
form1是放在panel上的,我想让form2显示在form1上,点击form1时form2不消失。
#8
不明白你为什么那样做
#9
那为什么不用主次窗体呢?这样不是很好吗?
#10
to cll007(gazo)
因为form2是form1的附属,form1用来添加基本信息,form2用来添加一些附属信息。
帮帮我好么,我知道你很厉害的。拜托了。
因为form2是form1的附属,form1用来添加基本信息,form2用来添加一些附属信息。
帮帮我好么,我知道你很厉害的。拜托了。
#11
to 22932565(天地之鹰)
我在MDI中无法让子窗体和panel上的窗体同时显示。
我在MDI中无法让子窗体和panel上的窗体同时显示。
#12
对啊,是不能显示的啊,我只是意见一下,你那样做到底有什么意思啊,
你说说看,你那样做到最后会是什么样的效果。我帮你想想看会不会有其它的办法。
你说说看,你那样做到最后会是什么样的效果。我帮你想想看会不会有其它的办法。
#13
你看看这样做行吗?
我是这样想的:
建立一个工程,在里面添加form1,form2。从project-options 在forms选项卡中,把form2移动到available forms 中,在使用一下代码:
if not assigned(form2) then
begin
form2:= Tform2.Create(Application);
form2.parent := panel1;
form2.Show;
end;
这样可以了
我是这样想的:
建立一个工程,在里面添加form1,form2。从project-options 在forms选项卡中,把form2移动到available forms 中,在使用一下代码:
if not assigned(form2) then
begin
form2:= Tform2.Create(Application);
form2.parent := panel1;
form2.Show;
end;
这样可以了
#14
比如form1上显示的是基本信息的内容,form2是对基本信息的添加,当form2出现时form1不消失,而操作完form2后,不用重新调form1它的内容就自动显示了。
#15
那你也没必要这么写form2.parent := form1吧!
比如在form1中有个添加的按钮,你在这个按钮的
事件里写:
if form2.ShowModal = mrOK then
begin
...
end;
就可以达到你的目的了嘛!
比如在form1中有个添加的按钮,你在这个按钮的
事件里写:
if form2.ShowModal = mrOK then
begin
...
end;
就可以达到你的目的了嘛!
#16
非常感谢!!!
#17
你要的效果是否是
如同记事本的 查找 窗口一样,结果可以 在背后窗体显示,而当前窗体不背遮住
如果是,那么下面的
Form1的FormStyle是fsMDIForm 主窗体
Form2的FormStyle是fsMDIChild 基本信息的内容窗体
Form3的FormStyle是fsStayOnTop 对基本信息的添加的窗体
必须保证Form1,Form2,Form3是全局变量,才能使if not assigned(Form)有效
---------
改变Form3上的Edit1的内容时,Form2上Edit1的内容同时改变
----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then
Form2:=TForm2.Create(Application);
Form2.Show;
end;
end.
-------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
if not Assigned(Form3) then
Form3:=TForm3.Create(Self);
Form3.Show;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil
end;
end.
-----------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2;
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
Form2.Edit1.Text:=(Sender as TEdit).Text;
end;
end.
如同记事本的 查找 窗口一样,结果可以 在背后窗体显示,而当前窗体不背遮住
如果是,那么下面的
Form1的FormStyle是fsMDIForm 主窗体
Form2的FormStyle是fsMDIChild 基本信息的内容窗体
Form3的FormStyle是fsStayOnTop 对基本信息的添加的窗体
必须保证Form1,Form2,Form3是全局变量,才能使if not assigned(Form)有效
---------
改变Form3上的Edit1的内容时,Form2上Edit1的内容同时改变
----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then
Form2:=TForm2.Create(Application);
Form2.Show;
end;
end.
-------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
if not Assigned(Form3) then
Form3:=TForm3.Create(Self);
Form3.Show;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil
end;
end.
-----------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2;
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
Form2.Edit1.Text:=(Sender as TEdit).Text;
end;
end.