主窗口的代码:
unit main;
interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB;type
Tmain_Form = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
ADOConnection1: TADOConnection;
procedure N3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
main_Form: Tmain_Form;implementation{$R *.dfm}
uses usergl;
procedure Tmain_Form.N3Click(Sender: TObject);
begin
close;
end;procedure Tmain_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messageDlg('真的要退出业绩管理系统?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
Action:=caFree
else
Action:=caNone;
end;procedure Tmain_Form.N2Click(Sender: TObject);
begin
Application.CreateForm(Tusergl_form,usergl_Form);
usergl_form.Show;
end;end.子窗口的代码
unit usergl;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, DB, ADODB;type
Tusergl_Form = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
oldmm_edit: TEdit;
newmm_edit: TEdit;
qrmm_edit: TEdit;
btn_ok: TButton;
btn_cancel: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBGrid1: TDBGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
RadioBtn1: TRadioButton;
RadioBtn2: TRadioButton;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure RadioBtn1Click(Sender: TObject);
procedure RadioBtn2Click(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
usergl_Form: Tusergl_Form;implementation{$R *.dfm}
//uses main;
procedure Tusergl_Form.FormCreate(Sender: TObject);
begin
with ADOQuery1.Create(nil) do
try
close;
SQL.Clear;
SQL.Add('select* from usergl');
open;
finally
free;
end; end;procedure Tusergl_Form.RadioBtn1Click(Sender: TObject);
begin
newmm_edit.Visible:=true;
qrmm_edit.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;procedure Tusergl_Form.RadioBtn2Click(Sender: TObject);
begin
newmm_edit.Visible:=False;
qrmm_edit.Visible:=False;
label2.Visible:=False;
label3.Visible:=False;
end;procedure Tusergl_Form.btn_okClick(Sender: TObject);
var
oldmm,newmm,qrmm,xm:string;
begin
newmm:=Trim(newmm_edit.Text);
qrmm:=Trim(qrmm_edit.Text);
//检查是否处于修改
if radioBtn1.Checked then
begin
// 检查修改的新密码合法性
if (length(newmm)<6) or (length(newmm)>12) then
begin
ShowMessage('密码要由6~~~~12位数字组成,请重输');
newmm_edit.SelectAll;
end;
//检查新密码与确认密码是否一致
if newmm<>qrmm then
begin
ShowMessage(' ');
newmm_edit.SelectAll;
end;
oldmm:=Trim(oldmm_edit.Text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select* from where(mm='''+oldmm+''')');
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin
ADOQUERY1.FieldByName('MM').AsString:=newmm;
ShowMessage('添加成功');
newmm_edit.Clear;
qrmm_edit.Clear;
end
else
showMessage('系统不存在此用户');
end
else
begin
ADOQuery1.FieldByName('mm').AsString:=oldmm;
showMessage('添加成功');
oldmm_edit.Clear;
end;
end;procedure Tusergl_Form.btn_cancelClick(Sender: TObject);
begin
ADOQuery1.Delete;
ADOQuery1.Edit;
ADOQuery1.Post;
end;procedure Tusergl_Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;end;end.
当我调用USERGL窗口时出现以示警告(Pr_main Missing connection or connetionstring),并死机,请各位楼主帮手分析啊,初学姐,我已设好一运行应用程序时首先出现主窗口
unit main;
interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB;type
Tmain_Form = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
ADOConnection1: TADOConnection;
procedure N3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
main_Form: Tmain_Form;implementation{$R *.dfm}
uses usergl;
procedure Tmain_Form.N3Click(Sender: TObject);
begin
close;
end;procedure Tmain_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messageDlg('真的要退出业绩管理系统?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
Action:=caFree
else
Action:=caNone;
end;procedure Tmain_Form.N2Click(Sender: TObject);
begin
Application.CreateForm(Tusergl_form,usergl_Form);
usergl_form.Show;
end;end.子窗口的代码
unit usergl;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, DB, ADODB;type
Tusergl_Form = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
oldmm_edit: TEdit;
newmm_edit: TEdit;
qrmm_edit: TEdit;
btn_ok: TButton;
btn_cancel: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBGrid1: TDBGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
RadioBtn1: TRadioButton;
RadioBtn2: TRadioButton;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure RadioBtn1Click(Sender: TObject);
procedure RadioBtn2Click(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
usergl_Form: Tusergl_Form;implementation{$R *.dfm}
//uses main;
procedure Tusergl_Form.FormCreate(Sender: TObject);
begin
with ADOQuery1.Create(nil) do
try
close;
SQL.Clear;
SQL.Add('select* from usergl');
open;
finally
free;
end; end;procedure Tusergl_Form.RadioBtn1Click(Sender: TObject);
begin
newmm_edit.Visible:=true;
qrmm_edit.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;procedure Tusergl_Form.RadioBtn2Click(Sender: TObject);
begin
newmm_edit.Visible:=False;
qrmm_edit.Visible:=False;
label2.Visible:=False;
label3.Visible:=False;
end;procedure Tusergl_Form.btn_okClick(Sender: TObject);
var
oldmm,newmm,qrmm,xm:string;
begin
newmm:=Trim(newmm_edit.Text);
qrmm:=Trim(qrmm_edit.Text);
//检查是否处于修改
if radioBtn1.Checked then
begin
// 检查修改的新密码合法性
if (length(newmm)<6) or (length(newmm)>12) then
begin
ShowMessage('密码要由6~~~~12位数字组成,请重输');
newmm_edit.SelectAll;
end;
//检查新密码与确认密码是否一致
if newmm<>qrmm then
begin
ShowMessage(' ');
newmm_edit.SelectAll;
end;
oldmm:=Trim(oldmm_edit.Text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select* from where(mm='''+oldmm+''')');
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin
ADOQUERY1.FieldByName('MM').AsString:=newmm;
ShowMessage('添加成功');
newmm_edit.Clear;
qrmm_edit.Clear;
end
else
showMessage('系统不存在此用户');
end
else
begin
ADOQuery1.FieldByName('mm').AsString:=oldmm;
showMessage('添加成功');
oldmm_edit.Clear;
end;
end;procedure Tusergl_Form.btn_cancelClick(Sender: TObject);
begin
ADOQuery1.Delete;
ADOQuery1.Edit;
ADOQuery1.Post;
end;procedure Tusergl_Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;end;end.
当我调用USERGL窗口时出现以示警告(Pr_main Missing connection or connetionstring),并死机,请各位楼主帮手分析啊,初学姐,我已设好一运行应用程序时首先出现主窗口
解决方案 »
- DELPHI高手请出招
- QRMemo中字体大小问题
- 统计一下各位兄弟身边的大牛有多少?
- 怎样打印网页 在线等
- 在开发三层数据库应用中要不主张用DBgrid??????
- 求救--关于文件拷贝
- 如何在程序中将已知的文件复制到另一个文件夹中?
- Could not compile used unit 'FR_Pars.pas'
- 请教高手:如何关闭一个窗口或隐藏一个窗口?我是新手,我只知在工程-->设置了autocreate,那一运行就出现一个登录窗口,输入密码正确我就show主窗口,但登录窗口就关不掉了!
- Ado又有新问题!!!
- 哭求高手:怎样在Delphi中从数据集中得到某列的值,而这个列不是原有数据库中的,使用Fieldbyname老是出错
- Access写的一个算法转delphi,急用,谢谢
而将子窗体的FormStyle设置为:fsMDIChild即可再有就是在程序退出时,退出的检查代码应该写在FromCloseQuery中至于窗体登录,你应该写在主窗体创建的时候,或许这样会好一些