我现在编写了一个父子窗口,每次起动时每一个子窗口都打开了。为什么会这样了,我想form2打开,别的窗口不打开如何做呢?
解决方案 »
- 关于 Delphi dll 数据库操作问题
- delphi7如何读取excel文件
- 超级难的Delphi调用Excel问题!!!!!!!
- 如何设计这个表?(送分100,心情不好,婚姻不如意!)
- 请大虾帮我看看源码关于取得系统目录。
- 关于DBGrid的界面问题
- 怎么把整数转换成十六进制字符串啊?
- 又一個Delphi Fans 的好去處! www.91delphi.com (速度很快) 文銀100請笑納
- 关于TExCell控件?
- 请教:非常奇怪的,socket 发送字符串可以,但是发送图片就不行,这是什么原因啊?谢谢!
- 我的主程序传递一个数据库连接字符串给dll,到了dll里面怎么会变成乱码了?
- 哈尔滨工业大学同科数码科技有限公司招DELPHI程序员
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
改成:
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
TForm1=class(TForm)
...
private
OperateForm:TForm;
...打开Form2窗体进行操作
if OperateForm<>nil then
FreeAndNil(OperateForm);
OPerateForm:=TForm2.Create(nil);
....
打开Form3窗体进行操作
if OperateForm<>nil then
FreeAndNil(OperateForm);
OPerateForm:=TForm3.Create(nil);
....
如果你对代码不熟悉,可以这样:
菜单:Project->options,在里面的forms选项卡进行设置,
把不想启动的窗口放到Available forms中,等要用的时候再创建。
if Form2 = Nil then
Form2 := TForm2.Create(Nil);
Form2.Show;
我有一个窗口名为openimage的。
我的程序如下:
var
OperateForm:TForm;
begin
if OperateForm<>nil then
FreeAndNil(OperateForm);
OPerateForm:=Topenimage.Create(nil); //我用这种方式对吗?
OPerateForm.show; //这句写不写了?我写了也错,不写也错。为什么?
end;请帮助解决。
begin
Form1:=Tform1.create(Application);
Form1.show
end;
把不想启动的窗口放到Available forms中,等要用的时候再创建
OperateForm:Topenimage;
begin
if OperateForm<>nil then
FreeAndNil(OperateForm);
OPerateForm := Topenimage.Create(nil);
end;
if Form2 = Nil then
Form2 := TForm2.Create(Nil);
Form2.Show;
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
///************************************主窗体的代码
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
btnCreateForm2: TButton;
btnCreateForm3: TButton;
procedure FormCreate(Sender: TObject);
procedure btnCreateForm2Click(Sender: TObject);
procedure btnCreateForm3Click(Sender: TObject);
private
{ Private declarations }
OperateForm:TForm;
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2, Unit3;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
OperateForm:=nil;
end;
//创建Form2
procedure TForm1.btnCreateForm2Click(Sender: TObject);
begin
if OperateForm<>nil then
FreeAndNil(OperateForm);
OperateForm:=Tform2.Create(nil);
end;
//创建Form3
procedure TForm1.btnCreateForm3Click(Sender: TObject);
begin
if OperateForm<>nil then
FreeAndNil(OperateForm);
OperateForm:=Tform3.Create(nil);
end;end.