小弟在运行用户进行登录时,然后连接窗体在DBGrid中显示只跟用户有关的信息,这都能够实现,但在关闭登录窗口和主窗体是都有上述标题的报错,不明白这么回事,请教,谢谢!
窗体显示只跟登录用户的代码
unit Unit3;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, DBCtrls, Grids, DBGrids, StdCtrls, ExtCtrls;type
TFormPlan = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
ADOConn: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
end;var
FormPlan: TFormPlan;implementation{$R *.dfm}end.
主窗体dpr代码 //我觉得在这里有问题
program Project_FormMain;uses
Forms,
SysUtils,
Unit_FormMain in 'Unit_FormMain.pas' {FormMain},
Unit1 in 'Unit1.pas' {FormSplash},
Unit2 in 'Unit2.pas' {FormLogin},
UnitPwd in 'UnitPwd.pas' {FormPwd},
Unit3 in '..\Unit3.pas' {FormPlan};{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormSplash, FormSplash); FormSplash.Showmodal;
FormSplash.Free;
FormSplash := nil; if not Assigned(FormLogin) then
Application.CreateForm(TFormLogin, FormLogin); //登录窗口
FormLogin.ShowModal;
FormLogin.Free;
FormLogin:=Nil; if Unit2.ok then
begin Application.CreateForm(TFormMain, FormMain);
Application.Run;
end; Application.CreateForm(TFormPwd, FormPwd);
Application.CreateForm(TFormPlan, FormPlan);//在没这个窗体前 程序运行正常
end.
窗体显示只跟登录用户的代码
unit Unit3;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, DBCtrls, Grids, DBGrids, StdCtrls, ExtCtrls;type
TFormPlan = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
ADOConn: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
end;var
FormPlan: TFormPlan;implementation{$R *.dfm}end.
主窗体dpr代码 //我觉得在这里有问题
program Project_FormMain;uses
Forms,
SysUtils,
Unit_FormMain in 'Unit_FormMain.pas' {FormMain},
Unit1 in 'Unit1.pas' {FormSplash},
Unit2 in 'Unit2.pas' {FormLogin},
UnitPwd in 'UnitPwd.pas' {FormPwd},
Unit3 in '..\Unit3.pas' {FormPlan};{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormSplash, FormSplash); FormSplash.Showmodal;
FormSplash.Free;
FormSplash := nil; if not Assigned(FormLogin) then
Application.CreateForm(TFormLogin, FormLogin); //登录窗口
FormLogin.ShowModal;
FormLogin.Free;
FormLogin:=Nil; if Unit2.ok then
begin Application.CreateForm(TFormMain, FormMain);
Application.Run;
end; Application.CreateForm(TFormPwd, FormPwd);
Application.CreateForm(TFormPlan, FormPlan);//在没这个窗体前 程序运行正常
end.
解决方案 »
- 研究心得----个人最喜欢的Delphi2006的功能.记录类型操作符重载
- 饭桶,接分~~~~~~~~~~`(感谢搞定图片透明问题)
- 请教一个三层的问题
- 为什么执行不出来啊???
- DATABASE连接SQL2000报错!(两层)连接数据库成功但表格无法打开,说对象lxgl不存在!
- 请教各位大侠一个关于在DELPHI中搞用SQL SERVER中的存储过程的问题
- 如何用format实现位数不够填0补位?
- 关于ActionManager和ActionMainMenuBar的问题
- 难道用HOOK钩WH_GETMESSAGE只能获取一般消息(WM_KEYDOWN),不能获取WM_CLOSE吗?
- 如何将C的Memcpy()转换成Delphi中的代码??
- dbgrid数据指针问题
- 文本输入框如何记忆使用的输入法?
procedure TFormMain.N1Click(Sender: TObject);
begin
FormPlan:=TFormPlan.Create(application);
self.Edit1.Text:=UserName;
with FormPlan.ADOQuery1 do
begin
Close;
SQL.Clear;
SQl.Add('select * from PlanInfo where PersonPlanDataEnter='''+FormMain.Edit1.Text+'''');
Open;
end;
FormPlan.ShowModal;
end;