百度知道真垃圾,那么大的一个企业,就给那么点空间,提个问1500字限制了。想想来csdn,挂了一个星期都没人理,不知道是我分太少,还是真的高手都不来这里???期待一个英雄的到来,菜鸟我在这里拜谢了!!其实这根本不是生命难题,我才刚刚学,问不出生命高深的题目来:
rT;
delphi7 ,DB:oracle
问题运行工程文件exe不报错,出现了登入界面却,无法进入基本界面,调出任务管理器看不到EXE的进程,生命这个系统已经退出了。
主界面的代码:login.pass ,name 属性frmLogin
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TfrmMain = class(TForm)
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses GoodsInfo, Vendor, InHouse, OutHouse, Stocks, AlterPWD;
{$R *.dfm}
procedure TfrmMain.SpeedButton2Click(Sender: TObject);
begin
frmGoodsinfo:=TfrmGoodsinfo.Create(self);
frmGoodsinfo.Showmodal;
frmGoodsinfo.Free;
end;
procedure TfrmMain.SpeedButton3Click(Sender: TObject);
begin
frmVendor:=TfrmVendor.Create(self);
frmVendor.Showmodal;
frmVendor.Free;
end;
procedure TfrmMain.SpeedButton4Click(Sender: TObject);
begin
frmInHouse:=TfrmInHouse.Create(self);
frmInHouse.Showmodal;
frmInhouse.Free;
end;
procedure TfrmMain.SpeedButton5Click(Sender: TObject);
begin
frmOutHouse:=TfrmOutHouse.Create(self);
frmOutHouse.Showmodal;
frmOutHouse.Free;
end;
procedure TfrmMain.SpeedButton6Click(Sender: TObject);
begin
frmStocks:=TfrmStocks.Create(self);
frmStocks.Showmodal;
frmStocks.Free;
end;
procedure TfrmMain.BitBtn1Click(Sender: TObject);
begin
frmalterpwd:=Tfrmalterpwd.Create(self);
frmalterpwd.Showmodal;
frmalterpwd.Free;
end;
end.
登入界面
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB;
type
TfrmLogin = class(TForm)
edtUserID: TEdit;
edtPassword: TEdit;
bbtYes: TBitBtn;
bbtNo: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure bbtYesClick(Sender: TObject);
procedure bbtNoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogin: TfrmLogin;
// 提供外界访问该表单的接口函数
// sAdminNo:用于接受登录用户输入的账号传递给调用者
// nStatus:当为0时表示是第一次登录,单击取消按钮退出整个程序
// 当为1时表示是重新登录,单击取消按钮仅退出本程序
function gfunOpenLogin(var usAdminNo:string ; nStatus:integer):integer;
implementation
uses DataModual,main;
var
sAdminNo: string; // 接收管理员账号
unStatus: integer; // 与nStatus含义一样
unTimes: integer; // 计算用户登录次数
{$R *.dfm}
//登录表单提供出来的接口函数
function gfunOpenLogin(var usAdminNo:string ; nStatus:integer):integer;
begin
frmLogin := TfrmLogin.Create(nil); // 动态创建登录表单对象
unStatus := nStatus; // 将调用者参数送人unStatus变量中
unTimes := 1; // 初始登录次数设置为1
frmLogin.ShowModal; // 显示登录界面
usAdminNo := sAdminNo; // 将登录界面的管理员账号返回给调用者
result := 0; // 函数返回0值
frmLogin.Free; // 释放登录表单对象
end;
procedure TfrmLogin.bbtYesClick(Sender: TObject);
var
sConn : string;
sAdminPwd : string;
begin
sAdminNo := trim(edtUserID.text);
sAdminPwd := trim(edtPassword.text);
if sAdminNo = '' then //没有输入管理员账号
begin
application.MessageBox('没有输入管理员账号','提示',mb_ok);
edtUserID.setFocus;
exit;
end;
sConn := 'Provider=OraOLEDB.Oracle.1;Password='+sAdminPwd+';Persist Security Info=True;User ID='+sAdminNo+';Data Source=connb01';
if DataModule1.ADOConnection1.connected then
DataModule1.ADOConnection1.close;
DataModule1.ADOConnection1.ConnectionString := sConn;
DataModule1.ADOConnection1.loginprompt := False;
try
DataModule1.ADOConnection1.open;
close; //关闭登陆界面
main.frmMain.Show; //显示仓库管理系统界面
except
application.MessageBox('输入账号或密码有误,请重新登陆','提示',mb_ok);
unTimes := unTimes+1;
if unTimes > 3 then
begin
application.MessageBox('你已经试图登录三次不成功,退出系统','提示',mb_ok);
application.Terminate;
end
else
edtUserID.setFocus;
end;
end;
procedure TfrmLogin.bbtNoClick(Sender: TObject);
begin
if unStatus = 0 then //初次取消退出整个应用程序
begin
if DataModule1.ADOConnection1.Connected then
DataModule1.ADOConnection1.Close;
application.Terminate;
end
else //重新登录后取消本次登录
close;
end;
end.