以下是代码
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
SQL.Clear;
Sql.Add('select * from test where (id=:a) and (code=:b) ');
parameters.ParamByName('a').Value:=Trim(edit1.Text);
parameters.ParamByName('b').Value:=Trim(edit2.Text);
open;
end;
if adoquery1.RecordCount>0 then
application.MessageBox('登录成功!','提示',0+64)
else
application.MessageBox('用户名或密码不正确,请重新输入!','提示',0+64);
end;end.unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;type
TForm2 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
Edit1: TEdit;
Button1: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Button2: TButton;
Button3: TButton;
procedure N1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
Selected: Boolean);
procedure BANGZHU1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure FormPaint(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=10; //设置为足够大的字号
ACanvas.Font.Name:= '新宋体 '; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption); end;procedure TForm2.BANGZHU1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=10; //设置为足够大的字号
ACanvas.Font.Name:= '新宋体 '; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption);
end;procedure TForm2.FormPaint(Sender: TObject);
var
pic:TBitmap;
pic2:TBitmap;begin
pic:=TBitmap.Create;
pic.LoadFromFile('b.bmp');
Canvas.Draw(0,450,pic);
pic.Free ;
pic2:=TBitmap.Create;
pic2.LoadFromFile('2.bmp');
Canvas.Draw(270,80,pic2);
pic2.Free ;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form1.Show;
end;procedure TForm2.N2Click(Sender: TObject);
begin
Form1.Show ;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
SQL.Clear;
Sql.Add('select * from test where (id=:a) and (code=:b) ');
parameters.ParamByName('a').Value:=Trim(edit1.Text);
parameters.ParamByName('b').Value:=Trim(edit2.Text);
open;
end;
if adoquery1.RecordCount>0 then
application.MessageBox('登录成功!','提示',0+64)
else
application.MessageBox('用户名或密码不正确,请重新输入!','提示',0+64);
end;end.unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;type
TForm2 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
Edit1: TEdit;
Button1: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Button2: TButton;
Button3: TButton;
procedure N1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
Selected: Boolean);
procedure BANGZHU1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure FormPaint(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=10; //设置为足够大的字号
ACanvas.Font.Name:= '新宋体 '; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption); end;procedure TForm2.BANGZHU1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=10; //设置为足够大的字号
ACanvas.Font.Name:= '新宋体 '; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption);
end;procedure TForm2.FormPaint(Sender: TObject);
var
pic:TBitmap;
pic2:TBitmap;begin
pic:=TBitmap.Create;
pic.LoadFromFile('b.bmp');
Canvas.Draw(0,450,pic);
pic.Free ;
pic2:=TBitmap.Create;
pic2.LoadFromFile('2.bmp');
Canvas.Draw(270,80,pic2);
pic2.Free ;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form1.Show;
end;procedure TForm2.N2Click(Sender: TObject);
begin
Form1.Show ;
end;end.
begin
Free;
end;
应该是这句的问题,应改成
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form1:=nil;
end;
再在onDestroy加上Form1:=nil;