我做一个有登陆的程序,但是老是作不好。请大家帮忙。(下面是主窗体文件)
有错误。帮我调式下。注意:我用了别人的vcl控件
unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMenu, AHMControls, AHMTOfficeButton, AHMTLabel, StdCtrls, DB,
DBTables, ADODB;type
Tmainform = class(TForm)
Label1: TLabel;
Label2: TLabel;
AHMLabel1: TAHMLabel;
AHMOfficeButton1: TAHMOfficeButton;
AHMOfficeButton2: TAHMOfficeButton;
AHMOfficeButton3: TAHMOfficeButton;
AHMOfficeButton4: TAHMOfficeButton;
Query1: TQuery;
DataSource1: TDataSource;
Table1: TTable;
Table1UserId: TSmallintField;
Table1UserName: TStringField;
Table1Class: TSmallintField;
Table1Userpwd: TStringField;
procedure AHMOfficeButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AHMOfficeButton4Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
loged : integer;
username , userpwd :string;
Function CheckUser (AUsername , AUserpwd :string) : integer;
procedure init(p :integer);
Function GetFilePath(FilePath : string) :string;
function GetfileName(FileName : string) :string;
function GetFileExt(FileExt : string) :string;
end;var
mainform: Tmainform;implementation
uses
loginFR, uGloabVar ,uMain;{$R *.dfm}procedure Tmainform.AHMOfficeButton1Click(Sender: TObject);
begin
loged := -1;
if Loged = -1 then
begin
if LoginF.ShowModal = mrok then
begin
UserName := LoginF.flatEdit1.Text;
UserPwd := LoginF.flatEdit2.Text;
Loged := CheckUser(UserName,UserPwd);
end
else Loged := -1;
if Loged <> -1 then
begin
Init(Loged);
AnwerF := TAnwerF.Create(nil);
end; end;
end;procedure Tmainform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;procedure Tmainform.AHMOfficeButton4Click(Sender: TObject);
begin
mainform.Close;
end;function Tmainform.CheckUser(AUsername, AUserpwd: string): integer;
begin
try
//Query1 := TAdoQuery.Create(nil);
//Query.DatabaseName :=ExtractFileName(GetFilePath+'\data');
with query1 do
begin
// DatabaseName := 'User';
SQL.Clear;
SQL.Add('select UserName from "User.db" where Username = :Username');
SQL.Add('select userpwd from "User.db" where UserPwd = :userpwd');
ParamByName('UserName').AsString := AUserName;
Prepare;
ExecSQL;
//Close;
Open;
if RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit; //检查用户名;
end else begin
if FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query1.FieldByName('权限').AsInteger;
end;
Close;
Free;
end;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;procedure Tmainform.init(p: integer);
begin
case p of
-1 : begin end;
0: begin end;
1: begin end;
end;
//定义各种用户的不同操作权限
end;
function Tmainform.GetFileExt(FileExt: string): string;
begin
result := extractfileext(application.ExeName);
end;function Tmainform.GetfileName(FileName: string): string;
begin
result := ExtractFileName(application.ExeName);
end;function Tmainform.GetFilePath(FilePath: string): string;
begin
result := extractfilepath(application.ExeName);
end;end.
······························
有错误。帮我调式下。注意:我用了别人的vcl控件
unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMenu, AHMControls, AHMTOfficeButton, AHMTLabel, StdCtrls, DB,
DBTables, ADODB;type
Tmainform = class(TForm)
Label1: TLabel;
Label2: TLabel;
AHMLabel1: TAHMLabel;
AHMOfficeButton1: TAHMOfficeButton;
AHMOfficeButton2: TAHMOfficeButton;
AHMOfficeButton3: TAHMOfficeButton;
AHMOfficeButton4: TAHMOfficeButton;
Query1: TQuery;
DataSource1: TDataSource;
Table1: TTable;
Table1UserId: TSmallintField;
Table1UserName: TStringField;
Table1Class: TSmallintField;
Table1Userpwd: TStringField;
procedure AHMOfficeButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AHMOfficeButton4Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
loged : integer;
username , userpwd :string;
Function CheckUser (AUsername , AUserpwd :string) : integer;
procedure init(p :integer);
Function GetFilePath(FilePath : string) :string;
function GetfileName(FileName : string) :string;
function GetFileExt(FileExt : string) :string;
end;var
mainform: Tmainform;implementation
uses
loginFR, uGloabVar ,uMain;{$R *.dfm}procedure Tmainform.AHMOfficeButton1Click(Sender: TObject);
begin
loged := -1;
if Loged = -1 then
begin
if LoginF.ShowModal = mrok then
begin
UserName := LoginF.flatEdit1.Text;
UserPwd := LoginF.flatEdit2.Text;
Loged := CheckUser(UserName,UserPwd);
end
else Loged := -1;
if Loged <> -1 then
begin
Init(Loged);
AnwerF := TAnwerF.Create(nil);
end; end;
end;procedure Tmainform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;procedure Tmainform.AHMOfficeButton4Click(Sender: TObject);
begin
mainform.Close;
end;function Tmainform.CheckUser(AUsername, AUserpwd: string): integer;
begin
try
//Query1 := TAdoQuery.Create(nil);
//Query.DatabaseName :=ExtractFileName(GetFilePath+'\data');
with query1 do
begin
// DatabaseName := 'User';
SQL.Clear;
SQL.Add('select UserName from "User.db" where Username = :Username');
SQL.Add('select userpwd from "User.db" where UserPwd = :userpwd');
ParamByName('UserName').AsString := AUserName;
Prepare;
ExecSQL;
//Close;
Open;
if RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit; //检查用户名;
end else begin
if FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query1.FieldByName('权限').AsInteger;
end;
Close;
Free;
end;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;procedure Tmainform.init(p: integer);
begin
case p of
-1 : begin end;
0: begin end;
1: begin end;
end;
//定义各种用户的不同操作权限
end;
function Tmainform.GetFileExt(FileExt: string): string;
begin
result := extractfileext(application.ExeName);
end;function Tmainform.GetfileName(FileName: string): string;
begin
result := ExtractFileName(application.ExeName);
end;function Tmainform.GetFilePath(FilePath: string): string;
begin
result := extractfilepath(application.ExeName);
end;end.
······························
解决方案 »
- delphi中如何实现图片的alpha值转换
- 能帮忙把这些数据写入一下注册吗呀,谢谢了。
- 处么把ListView中的数据写入数组或TStrings,还有处么把数组或TStrings写入ListView?
- 如何使FR自定义纸张与WINDOWS中打印机纸张相一致?
- 请介绍一本Delphi开发Access的书
- 如何定义系统热键?
- 常用软件安装器这个界面及功能如何实现
- 新手上路,请多关照,一个小问题,别介意简单!
- 使用IMEDIACONTROL.run老是返回s_false
- 用Real Player的控件播放ram,Mp3文件,怎样才能知道它的时间长度?
- 如何用代码来实现“任务栏和开始菜单”中的“自动隐藏”功能?急急急
- 怎么让启动窗体中的Label字体来回改动??
可以这样:不要xpmenu,它是一个菜单控件,可以不要。
AHMTOfficeButton→Button
AHMControls→Controls
AHMTLabel→Label
剩下的就和原来的一样了,老兄帮我解决问题呀!
SQL.Add('select userpwd from "User.db" where UserPwd = :userpwd');
ParamByName('UserName').AsString := AUserName;
这个地方我不知道你是什么意思!但绝对不能这样用 如果你要是查用户名和密码的话就不能这样用。我建议你这样
sql.add('select username,userpwd from user where Username = :Username and UserPwd = :userpwd');
ParamByName('UserName').AsString := AUserName;
ParamByName('UserPwd').AsString := *;
不知道我回答的对不对,另外不管你用不用第三方控件,只要你把它的属性、事件、方法用对了也没什么问题
好想我的问题出现在连接上。
我的数据表在..\data里,有个表为User我在
function Tmainform.CheckUser(AUsername, AUserpwd: string): integer;
中怎么加上些什么呢?在线等待。