设一程序主窗体为FormMain,在它的OnCreat事件中编写代码启动登陆窗体FormLoginprocedure TFormMain.FormCreate(Sender: TObject);
begin
Application.CreateForm(UnitLogin.TFormLogin, FormLogin);
FormLogin.ShowModal;
FormLogin.Free;
end;设有一数据模块DataModule1,放置ADOConnection1和ADOQuery1,前者的ConnectionString和后者的Connection属性设置正确。登陆窗体FormLogin中有两个Edit控件,分别为EditID和EditPW,用于输入用户名和密码;还有一个Button控件BtnLogin,用于进行验证。有如下代码出现问题procedure TFormLogin.BtnLoginClick(Sender: TObject);
begin
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('select * from 登陆信息 where 用户名 = :a and 密码 = :b');
DataModule1.ADOQuery1.Parameters.ParamByName('a').Value := Trim(EditID.Text);
DataModule1.ADOQuery1.Parameters.ParamByName('b').Value := Trim(EditPW.Text);
DataModule1.ADOQuery1.Open;
if DataModule1.ADOQuery1.RecordCount > 0 then 登陆成功的代码 else 登陆失败的代码;
end;错误提示如下图,求高人指点。
begin
Application.CreateForm(UnitLogin.TFormLogin, FormLogin);
FormLogin.ShowModal;
FormLogin.Free;
end;设有一数据模块DataModule1,放置ADOConnection1和ADOQuery1,前者的ConnectionString和后者的Connection属性设置正确。登陆窗体FormLogin中有两个Edit控件,分别为EditID和EditPW,用于输入用户名和密码;还有一个Button控件BtnLogin,用于进行验证。有如下代码出现问题procedure TFormLogin.BtnLoginClick(Sender: TObject);
begin
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('select * from 登陆信息 where 用户名 = :a and 密码 = :b');
DataModule1.ADOQuery1.Parameters.ParamByName('a').Value := Trim(EditID.Text);
DataModule1.ADOQuery1.Parameters.ParamByName('b').Value := Trim(EditPW.Text);
DataModule1.ADOQuery1.Open;
if DataModule1.ADOQuery1.RecordCount > 0 then 登陆成功的代码 else 登陆失败的代码;
end;错误提示如下图,求高人指点。
你必须在FormLogin前将DataModule1创建好.可以在auto-create forms中设置DataModule1为第一个
跪谢wyd531和flychenjun,我特佩服你们!加分,你俩一人一半!再次跪谢!program MyRD;uses
Forms,
UnitMain in 'UnitMain.pas' {FormMain},
UnitDataModule in 'UnitDataModule.pas' {DataModule1: TDataModule1},
UnitLogin in 'UnitLogin.pas' {FormLogin};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TDataModule1, DataModule1); // 这里出现了错误
Application.Run;
end.