帮忙看一下系统登录时源程序存在的问题(30分)

S

sdjdxc

Unregistered / Unconfirmed
GUEST, unregistred user!
存在的问题:当密码正确时系统也终止
Program Project1;

Uses
Forms,
Unit1 In 'Unit1.pas' {Form1},
Unit2 In 'Unit2.pas' {DataModule2: TDataModule},
Unit3 In 'Unit3.pas' {Form3},
Unit4 In 'Unit4.pas' {Form4},
Unit5 In 'Unit5.pas' {Form5},
Unit6 In 'Unit6.pas' {Form6},
Unit7 In 'Unit7.pas',
Unit8 In 'Unit8.pas' {Form8};

{$R *.res}

Begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDataModule2, DataModule2);
Form3 := TForm3.Create(Application);
If Form3.ShowModal = 1 Then //登录窗口
Begin
Form3.Hide;
Form3.Free;
Application.Run;
End;
End.
========================
登录窗口
Unit Unit3;

Interface

Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, StdCtrls;

Type
TForm3 = Class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
Bevel1: TBevel;
SpeedButton2: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
Procedure BitBtn1Click(Sender: TObject);
Procedure SpeedButton2Click(Sender: TObject);
Procedure FormCreate(Sender: TObject);
PRIVATE
{ Private declarations }
PUBLIC
{ Public declarations }
End;

Var
Form3: TForm3;

Implementation
Uses unit2, Unit1, ADODB, DB;
{$R *.dfm}

Procedure TForm3.FormClose(Sender: TObject; Var Action: TCloseAction);
Begin
Action := caFree;
End;

Procedure TForm3.BitBtn1Click(Sender: TObject);
Var
s1, s2, cusername: String;
Begin
s2 := Trim(Edit1.Text);
s1 := Trim(ComboBox1.Text);
cusername := s1;
With DataModule2.ADOQuery1 Do
Begin
SQL.Clear;
SQL.Add('select * from main.user where trim(xm)=' + '''' + s1 + '''' + 'and Trim(mm)=' + '''' + s2 + '''');
Open;
End;
If DataModule2.ADOQuery1.RecordCount > 0 Then
Begin
ModalResult := mrOk;
Form1.StatusBar1.Panels[0].Text := '当前用户是:' + cusername;
username := cusername;
End
Else
showmessage('密码不正确,系统终止!');
Application.Terminate;

End;

Procedure TForm3.SpeedButton2Click(Sender: TObject);
Begin
Application.Terminate;
End;

Procedure TForm3.FormCreate(Sender: TObject);
Var
j: Integer;
Begin
With DataModule2.ADOQuery1 Do
Begin
SQL.Clear;
SQL.Text := 'select * from main.user';
Open;

For j := 1 To RecordCount Do
Begin
ComboBox1.Items.Add(FieldValues['xm']); //用户列表
Next;
End;
ComboBox1.ItemIndex := 0;
End;
End;

End.
 
If DataModule2.ADOQuery1.RecordCount > 0 Then
Begin
ModalResult := mrOk;
Form1.StatusBar1.Panels[0].Text := '当前用户是:' + cusername;
username := cusername;
End
Else
begin
showmessage('密码不正确,系统终止!');
Application.Terminate; //begin end
end;
 
你 BitBtn1 设置了 ModalResult 属性吗?
 
Procedure TForm3.BitBtn1Click(Sender: TObject);
Var
s1, s2, cusername: String;
Begin
s2 := Trim(Edit1.Text);
s1 := Trim(ComboBox1.Text);
cusername := s1;
With DataModule2.ADOQuery1 Do
Begin
SQL.Clear;
SQL.Add('select * from main.user where trim(xm)=' + '''' + s1 + '''' + 'and Trim(mm)=' + '''' + s2 + '''');
Open;
End;
If DataModule2.ADOQuery1.RecordCount > 0 Then
Begin
ModalResult := mrOk;
Form1.StatusBar1.Panels[0].Text := '当前用户是:' + cusername;
username := cusername;
End
Else
begin
showmessage('密码不正确,系统终止!');
Application.Terminate;
end
End;
 
[8D]完全同意楼上的,,注意
if …… then
begin
……
end
else
begin
……
end;个人认为 就算是只有一行代码建议也要加上 begin 和 end ,为了代码的可读性!
 
顶部