operator.~pas

来自「完整的delphi书籍源代码,大家有空的时候自己慢慢看看」· ~PAS 代码 · 共 172 行

~PAS
172
字号
unit Operator;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids;

type
  TOperatorFrm = class(TForm)
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    PassEd: TEdit;
    Pass1Ed: TEdit;
    EditButton: TButton;
    OperaidComboB: TComboBox;
    OperanameComboB: TComboBox;
    AddButton: TButton;
    procedure FormCreate(Sender: TObject);
    procedure EditButtonClick(Sender: TObject);
    procedure OperaidComboBChange(Sender: TObject);
    procedure AddButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  OperatorFrm: TOperatorFrm;

implementation
  uses DB_Frm,login;
{$R *.dfm}

procedure TOperatorFrm.FormCreate(Sender: TObject);
var
  i,count:integer;
  qrystring:string;
  temp_id,temp_name:array[1..50]of string;
begin
  qrystring:='select * from Operator';
  with DBFrm.Opera_Query do
    begin
      close;
      SQL.Clear;
      SQL.Add(qrystring);
      open;
      first;
      count:=recordcount;
      for i:=1 to count do
        begin
          temp_id[i]:=fieldbyname('Opera_id').asstring;
          temp_name[i]:=fieldbyname('Opera_name').asstring;
          next;
        end;
      for i:=1 to count do
        begin
          OperaidComboB.Items.Add(temp_id[i]);
          OperanameComboB.Items.Add(temp_name[i]);
        end;
      OperaidComboB.Text:=OperaidComboB.Items[0];
      OperanameComboB.Text:=OperanameComboB.Items[0];
    end;
end;

procedure TOperatorFrm.EditButtonClick(Sender: TObject);
var
  qrystring:string;
begin
  if (length(PassEd.Text)=0) or (length(Pass1Ed.Text)=0) then
    messagebox(OperatorFrm.Handle,'请先输入密码','警告',mb_ok+mb_iconwarning)
  else
    begin
      if PassEd.Text=Pass1Ed.Text then
        begin
          qrystring:='update Operator set password='+''''+trim(PassEd.Text)+''''+'where Opera_id='+''''+trim(OperaidComboB.Text)+'''';
          with DBFrm.Opera_Query do
            begin
              close;
              SQL.Clear;
              SQL.Add(qrystring);
              ExecSql;
            end;
          qrystring:='update login set password='+''''+trim(PassEd.Text)+''''+'where user_id='+''''+trim(OperaidComboB.Text)+'''';
          with loginFrm.loginQuery do
            begin
              close;
              SQL.Clear;
              SQL.Add(qrystring);
              ExecSql;
            end;
        end
      else
        begin
          Application.MessageBox('请重新确认密码','密码确认错误',MB_OK);
          PassEd.Text:='';
          Pass1Ed.Text:='';
          exit;
        end;
    end;
  DBFrm.Opera_Table.Refresh;
end;

procedure TOperatorFrm.OperaidComboBChange(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to OperaidComboB.Items.Count-1 do
    begin
      if OperaidComboB.Text=OperaidComboB.Items[i] then
        OperanameComboB.Text:=OperanameComboB.Items[i];
    end;
end;

procedure TOperatorFrm.AddButtonClick(Sender: TObject);
var
  qrystring:string;
begin
  if (length(OperaidComboB.Text)=0)or(length(OperanameComboB.Text)=0)or(length(PassEd.Text)=0)or(length(Pass1Ed.Text)=0)then
    Messagedlg('请输入新记录!',mtError,[mbOK],0)
  else
    begin
      if PassEd.Text=Pass1Ed.Text then
        begin
          qrystring:='select * from Operator where Opera_id='+''''+trim(OperaidComboB.Text)+'''';
          with DBFrm.Opera_Query do
            begin
              close;
              sql.Clear;
              sql.Add(qrystring);
              open;
              recordcount;
              if recordcount<>0 then
                Messagedlg('该记录已经存在!',mtError,[mbOK],0)
              else
                begin
                  with DBFrm.Opera_Table do
                    begin
                      close;
                      open;
                      append;
                      fieldbyname('Opera_id').AsString:=trim(OperaidComboB.Text);
                      fieldbyname('Opera_name').AsString:=trim(OperanameComboB.Text);
                      fieldbyname('password').AsString:=trim(PassEd.Text);
                      post;
                    end;
                  with DBFrm.login_Table do
                    begin
                      close;
                      open;
                      append;
                      fieldbyname('user_id').AsString:=trim(OperaidComboB.Text);
                     // fieldbyname('Opera_name').AsString:=trim(OperanameComboB.Text);
                      fieldbyname('password').AsString:=trim(PassEd.Text);
                      post;
                    end;
                end;
            end;
        end
      else
        messagedlg('两次输入的密码不一致,请从新输入!',mtError,[mbOK],0);
    end;
end;

end.

⌨️ 快捷键说明

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