unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ImgList, ComCtrls;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open: TMenuItem;
Close: TMenuItem;
Save1: TMenuItem;
Save2: TMenuItem;
PrinterSetup: TMenuItem;
Printer: TMenuItem;
Quit: TMenuItem;
WarningIndex: TMenuItem;
Contract: TMenuItem;
Construction: TMenuItem;
Fee: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
Contract1: TMenuItem;
Contract2: TMenuItem;
Construction1: TMenuItem;
Construction2: TMenuItem;
Construction3: TMenuItem;
Fee1: TMenuItem;
Fee2: TMenuItem;
Fee3: TMenuItem;
N1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
PrintDialog1: TPrintDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
ImageList1: TImageList;
New: TMenuItem;
N2: TMenuItem;
PageControl1: TPageControl;
tbshWarnIndex: TTabSheet;
TreeView1: TTreeView;
procedure OpenClick(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure PrinterSetupClick(Sender: TObject);
procedure PrinterClick(Sender: TObject);
procedure Contract1Click(Sender: TObject);
procedure Contract2Click(Sender: TObject);
procedure CloseClick(Sender: TObject);
procedure QuitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;
implementationuses Unit2;{$R *.dfm}
procedure TMainForm.OpenClick(Sender: TObject);
var
F : File;
begin
OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist];
OpenDialog1.Filter := 'Yujing files (*.gyj)|(*.gyj)|All files (*.*)|(*.*)';
if openDialog1.Execute then
begin
AssignFile(F,'OpenDialog1.FileName');
Reset(F);
Read(F);
end;
end;procedure TMainForm.Save1Click(Sender: TObject);
begin
SaveDialog1.Execute;
end;procedure TMainForm.PrinterSetupClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;procedure TMainForm.PrinterClick(Sender: TObject);
begin
PrintDialog1.Execute;
end;procedure TMainForm.Contract1Click(Sender: TObject);
begin
ConTractForm.Show;
end;procedure TMainForm.Contract2Click(Sender: TObject);
begin
ContractForm.Show;
end;procedure TMainForm.CloseClick(Sender: TObject);
var
F : File;
begin
CloseFile(F);
end;procedure TMainForm.QuitClick(Sender: TObject);
begin
ContractForm.Close;
MainForm.Close;//这里出错了。我不知道为什么。
end;end.
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TContractForm = class(TForm) private
{ Private declarations }
public
{ Public declarations }
end;var
ContractForm: TContractForm;implementation{$R *.dfm}
end.
我改成close;也不行。上面就是MainForm.Close;出错。
出错是:Unit1.pas Error :State expected, but expression of type 'TMenuItem' found.
Project1.dpr :Could not compile unit<Unit1.pas>.我做了个简单的。简单的程序如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;end.unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}end.
这个就可以。我怎么对比都没有找到原因!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ImgList, ComCtrls;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open: TMenuItem;
Close: TMenuItem;
Save1: TMenuItem;
Save2: TMenuItem;
PrinterSetup: TMenuItem;
Printer: TMenuItem;
Quit: TMenuItem;
WarningIndex: TMenuItem;
Contract: TMenuItem;
Construction: TMenuItem;
Fee: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
Contract1: TMenuItem;
Contract2: TMenuItem;
Construction1: TMenuItem;
Construction2: TMenuItem;
Construction3: TMenuItem;
Fee1: TMenuItem;
Fee2: TMenuItem;
Fee3: TMenuItem;
N1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
PrintDialog1: TPrintDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
ImageList1: TImageList;
New: TMenuItem;
N2: TMenuItem;
PageControl1: TPageControl;
tbshWarnIndex: TTabSheet;
TreeView1: TTreeView;
procedure OpenClick(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure PrinterSetupClick(Sender: TObject);
procedure PrinterClick(Sender: TObject);
procedure Contract1Click(Sender: TObject);
procedure Contract2Click(Sender: TObject);
procedure CloseClick(Sender: TObject);
procedure QuitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;
implementationuses Unit2;{$R *.dfm}
procedure TMainForm.OpenClick(Sender: TObject);
var
F : File;
begin
OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist];
OpenDialog1.Filter := 'Yujing files (*.gyj)|(*.gyj)|All files (*.*)|(*.*)';
if openDialog1.Execute then
begin
AssignFile(F,'OpenDialog1.FileName');
Reset(F);
Read(F);
end;
end;procedure TMainForm.Save1Click(Sender: TObject);
begin
SaveDialog1.Execute;
end;procedure TMainForm.PrinterSetupClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;procedure TMainForm.PrinterClick(Sender: TObject);
begin
PrintDialog1.Execute;
end;procedure TMainForm.Contract1Click(Sender: TObject);
begin
ConTractForm.Show;
end;procedure TMainForm.Contract2Click(Sender: TObject);
begin
ContractForm.Show;
end;procedure TMainForm.CloseClick(Sender: TObject);
var
F : File;
begin
CloseFile(F);
end;procedure TMainForm.QuitClick(Sender: TObject);
begin
ContractForm.Close;
MainForm.Close;//这里出错了。我不知道为什么。
end;end.
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TContractForm = class(TForm) private
{ Private declarations }
public
{ Public declarations }
end;var
ContractForm: TContractForm;implementation{$R *.dfm}
end.
我改成close;也不行。上面就是MainForm.Close;出错。
出错是:Unit1.pas Error :State expected, but expression of type 'TMenuItem' found.
Project1.dpr :Could not compile unit<Unit1.pas>.我做了个简单的。简单的程序如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;end.unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}end.
这个就可以。我怎么对比都没有找到原因!
MainForm.Close;//这里出错了。我不知道为什么。楼主说的"出错"是指编译错误还是运行错误?或者说执行的时候不能起到关闭窗口的作用?
begin
ContractForm.Close;
MainForm.Close;//这样是不对的,直接Close或Self.Close
end;
Project1.dpr :Could not compile unit<Unit1.pas>.
双击这条信息,看看问题出在哪一行
Project.dpr出错
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {ContractForm};//是这一行出错。{$R *.res}begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TContractForm, ContractForm);
Application.Run;
end.我这个是编译错误,不是运行时错误!谢谢楼上的各位,这么晚了还辛苦帮我看程序,向你们敬礼!
procedure TMainForm.QuitClick(Sender: TObject);
begin
ContractForm.Close;
MainForm.Close;//这样是不对的,直接Close或Self.Close
end;
-------------
我都是这样写也没有问题啊,而且,这样写会导致什么问题呢?请教一下.
要不你现在发工程文件到我信箱吧
[email protected]我帮你检查看