⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usermanunit.~pas

📁 一个简单的数据库管理系统,是用delphi开发的.
💻 ~PAS
字号:
unit UserManUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, Buttons, ImgList, StdCtrls;

type
  TUserManForm = class(TForm)
    Panel1: TPanel;
    ControlPanel: TPanel;
    EditPanel: TPanel;
    AddPanel: TPanel;
    ExitButton: TSpeedButton;
    AddButton: TSpeedButton;
    EditButton: TSpeedButton;
    DelButton: TSpeedButton;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    EditYesButton: TSpeedButton;
    EditCancelButton: TSpeedButton;
    AddYesButton: TSpeedButton;
    AddCancelButton: TSpeedButton;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    EditSignPanel: TPanel;
    AddSignPanel: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    ListView1: TListView;
    ImageList1: TImageList;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ExitButtonClick(Sender: TObject);
    procedure EditCancelButtonClick(Sender: TObject);
    procedure AddCancelButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure AddButtonClick(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure AddYesButtonClick(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
    procedure DelButtonClick(Sender: TObject);
    procedure EditButtonClick(Sender: TObject);
    procedure EditYesButtonClick(Sender: TObject);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  UserManForm: TUserManForm;

implementation
uses DataUnit,MainUnit,PublicUnit;
{$R *.DFM}

procedure TUserManForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  DataForm.qryEdit.close;
end;

procedure TUserManForm.ExitButtonClick(Sender: TObject);
begin
  close;
end;

procedure TUserManForm.EditCancelButtonClick(Sender: TObject);
begin
  Edit4.Clear;
  Edit5.clear;
  Edit6.clear;
  Edit7.clear;
  EditPanel.Visible := False;
end;

procedure TUserManForm.AddCancelButtonClick(Sender: TObject);
begin
  Edit1.clear;
  Edit2.clear;
  Edit3.clear;
  AddPanel.Visible := False;
end;

procedure TUserManForm.FormShow(Sender: TObject);
var
 UserName:String;
 Mylist:TListItem;
begin
  ListView1.Items.Clear;
  Try
    OpenSQL(DataForm.qrySource,'Select * From UserInfo');
    If DataForm.qrySource.IsEmpty Then Exit;
    DataForm.qrySource.FindFirst;
    While Not DataForm.qrySource.Eof Do
    Begin
      UserName := DataForm.qrySource.FieldbyName('UserName').AsString;
      Mylist :=Listview1.Items.Add;
      Mylist.Caption := UserName;
      Mylist.ImageIndex:= 0;
      DataForm.qrySource.Next;
    end;
  Finally
    DataForm.qrySource.Close;
  End;           
end;

procedure TUserManForm.AddButtonClick(Sender: TObject);
begin
  If AddPanel.Visible Then
    AddPanel.Visible:=False
  Else
  Begin
    AddPanel.Visible:=True;
    Edit1.Text:='';
    Edit1.SetFocus;
  End;
end;

procedure TUserManForm.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = 13) or (key = vk_down) then
    selectnext(ActiveControl,true,true);
  if key = vk_up then
    selectnext(ActiveControl,false,true);
end;

procedure TUserManForm.Edit3KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
    AddYesButton.Click;
  if key = vk_up then
    selectnext(ActiveControl,false,true);
end;

procedure TUserManForm.AddYesButtonClick(Sender: TObject);
Var
 UserName,QryText:String;
 Mylist:TListItem;
begin
  If Trim(Edit1.Text) = '' Then
  Begin
    ShowMessage('用户名称不能为空。');
    Edit1.SetFocus;
    Exit;
  End;

  If Trim(Edit2.Text)<>Trim(Edit3.Text) Then
  Begin
    ShowMessage('口令校验错误,请重新输入。');
    Edit2.SetFocus;
    Edit2.SelectAll;
    Edit3.Text:='';
    Exit;
  End;
  
  Try
    QryText := 'Select * From userinfo Where UserName = '+''''+Trim(Edit1.Text)+''' ';
    OpenSQL(DataForm.qryEdit,QryText); //测试用户名称是否被使用
    IF Not DataForm.qryEdit.IsEmpty Then
    Begin
      ShowMessage('该用户名称已被占用,请重新输入。');
      Edit1.SelectAll;
      Edit1.SetFocus;
      Exit;
    End;
    
    QryText := 'Insert Into userinfo(UserName,Pwd) Values('''+Trim(Edit1.Text)+''','''+Trim(Edit2.Text)+''')';
    ExecSQL(DataForm.qryEdit,qrytext);      //保存
    Try                                    //重新刷新数据
      OpenSQL(DataForm.qrySource,'Select * From UserInfo');
      ListView1.Items.Clear;
      DataForm.qrySource.First;
      While Not DataForm.qrySource.Eof Do
      Begin
        UserName:=DataForm.qrySource.FieldbyName('UserName').AsString;
        Mylist :=Listview1.Items.Add;
        Mylist.Caption := UserName;
        Mylist.ImageIndex:= 0;
        DataForm.qrySource.Next;
      end;
    Finally
      DataForm.qrySource.Close;
    End;
  Except
   ShowMessage('访问数据库发生异常,添加用户操作失败。');
   Exit;
  End;
  AddCancelButton.Click;
end;

procedure TUserManForm.ListView1Click(Sender: TObject);
begin
  If ListView1.Selected <> Nil Then
  Begin
    AddButton.Enabled:=False;
    EditButton.Enabled:=True;
    DelButton.Enabled:=True;
    If EditPanel.Visible Then
      EditButton.Click;
  End
  Else
  Begin
    AddButton.Enabled:=True;
    EditButton.Enabled:=False;
    DelButton.Enabled:=False;
  End;
end;

procedure TUserManForm.DelButtonClick(Sender: TObject);
var
  MyGetlist,MyDellist:Tlistitem;
  DelName:string;
  Myindex:integer;
Begin
  IF Listview1.Selected = nil Then Exit;
  MyGetlist := Listview1.Selected;  //获得鼠标单击的图标索引及名称
  DelName := Trim(MyGetlist.Caption);
  Myindex := Mygetlist.Index ;
  if Trim(DelName) = trim(MainForm.StatusBar1.Panels[1].Text) then
  begin
    ShowMessage('不能删除当前用户。');
    Exit;
  end;
  if MessageDlg('确实要删除用户‘'+DelName+'’吗?',mtConfirmation,[mbyes,mbno],0) = mryes then
  begin
    Try
      ExecSQL(DataForm.qryEdit,'Delete From UserInfo Where UserName ='+''''+DelName+''' ');
      MyDelList:=Listview1.Items.Item[myindex];
      Mydellist.Delete;
    Except
      ShowMessage('访问数据库发生异常,删除操作失败。');
      Exit;
    End;
  end;
  
end;

procedure TUserManForm.EditButtonClick(Sender: TObject);
Var
 SelectItem:TListItem;
 UserName:String;
begin
  If EditPanel.Visible Then EditPanel.Visible := False;
  EditPanel.Visible := True;
  Try
    SelectItem := ListView1.Selected;
    UserName := SelectItem.Caption;
    OpenSQL(DataForm.qryEdit,'Select * From UserInfo Where UserName='+''''+UserName+''' ');
    Edit4.Text:=DataForm.qryEdit.fieldbyName('UserName').AsString;
    Edit5.SetFocus;
  Except
    ShowMessage('访问数据库发生异常,用户编辑操作失败。');
    Exit;
  End;
end;

procedure TUserManForm.EditYesButtonClick(Sender: TObject);
begin
  Try
    OpenSQL(DataForm.qryEdit,'Select * From UserInfo Where UserName='+''''+Trim(Edit4.Text)+''' ');
    If Trim(Edit5.Text)<>Trim(DataForm.qryEdit.fieldbyname('Pwd').AsString) Then
    Begin
      ShowMessage('老口令校验不正确,请重新输入.');
      Edit5.SetFocus;
      Edit5.SelectAll;
      Exit;
    End;
    If Trim(Edit6.Text)<>Trim(Edit7.Text) Then
    Begin
       ShowMessage('口令校验不正确,请重新输入.');
       Edit6.SetFocus;
       Edit6.SelectAll;
       Edit7.Text:='';
       Exit;
    End;
    ExecSQL(DataForm.qryEdit,'Update UserInfo SET Pwd='+''''+Trim(Edit6.Text)+''''+' Where UserName = '+''''+Trim(Edit4.Text)+''' ');
  Except
    ShowMessage('访问数据库发生异常,用户编辑操作失败。');
    Exit;
  End;
  EditCancelButton.Click;
end;

procedure TUserManForm.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = 13) or (key = vk_down) then
    selectnext(ActiveControl,true,true);
  if key = vk_up then
    selectnext(ActiveControl,false,true);
end;

procedure TUserManForm.Edit7KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
    EditYesButton.Click;
  if key = vk_up then
    selectnext(ActiveControl,false,true);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -