upopedomset.pas

来自「DELPHI编程入门篇.从基础入手,浅显易懂,一定物有所值.」· PAS 代码 · 共 205 行

PAS
205
字号
unit Upopedomset;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Buttons, StdCtrls, Grids, ExtCtrls;

type
  Tfrmpopedomset = class(TForm)
    StringGrid1: TStringGrid;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    CheckBox9: TCheckBox;
    CheckBox10: TCheckBox;
    CheckBox11: TCheckBox;
    CheckBox12: TCheckBox;
    CheckBox13: TCheckBox;
    CheckBox14: TCheckBox;
    CheckBox15: TCheckBox;
    CheckBox16: TCheckBox;
    CheckBox17: TCheckBox;
    CheckBox18: TCheckBox;
    CheckBox19: TCheckBox;
    CheckBox20: TCheckBox;
    CheckBox21: TCheckBox;
    CheckBox22: TCheckBox;
    CheckBox23: TCheckBox;
    CheckBox24: TCheckBox;
    CheckBox25: TCheckBox;
    CheckBox26: TCheckBox;
    CheckBox27: TCheckBox;
    ADOQuery1: TADOQuery;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    function strfresh:string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmpopedomset: Tfrmpopedomset;

implementation

uses Udatamodule, Uadduser;

{$R *.dfm}

procedure Tfrmpopedomset.FormCreate(Sender: TObject);
var
  arow:integer;
begin
  stringgrid1.Cells[0,0]:='用户名称';
  adoquery1.SQL.text:='select username from userinfo';
  adoquery1.Open;
  if adoquery1.RecordCount > 0 then
  begin
    stringgrid1.RowCount:=adoquery1.RecordCount+1;
    arow:=1;
    while not adoquery1.Eof do
    begin
      stringgrid1.Cells[0,arow]:=adoquery1.Fields[0].AsString;
      adoquery1.Next;
      inc(arow);
    end;
    strfresh;
  end;
  adoquery1.Close;    
end;

procedure Tfrmpopedomset.SpeedButton5Click(Sender: TObject);
begin
  modalresult:=mrcancel;
end;

procedure Tfrmpopedomset.SpeedButton1Click(Sender: TObject);
var
  i:integer;
begin
  if speedbutton5.Enabled then
  begin
    application.CreateForm(tfrmadduser,frmadduser);
    frmadduser.ShowModal;
    frmadduser.Release;
    if frmadduser.ModalResult = mrok then
    begin
      stringgrid1.Row:=stringgrid1.RowCount-1;
      for i:=2 to 28 do
      (components[i] as tcheckbox).Checked:=false;
    end;
  end
  else
   showmessage('请先保存数据');  
end;

procedure Tfrmpopedomset.SpeedButton6Click(Sender: TObject);
var
  arow,i:integer;
begin
  if stringgrid1.cells[0,1] = '' then
  if messagedlg('真的要删除吗?',mtConfirmation,[mbYes,mbno],0) = mryes then
  begin
    arow:=stringgrid1.Row;
    adoquery1.SQL.Text:='delete from userinfo where username = '''+stringgrid1.Cells[0,arow]+'''';
    adoquery1.ExecSQL;
    adoquery1.Close;
    for i:=arow to stringgrid1.RowCount-2 do
      stringgrid1.Cells[0,arow]:=stringgrid1.Cells[0,arow+1];
    stringgrid1.Rows[stringgrid1.RowCount-1].Clear;
    if stringgrid1.RowCount > 2 then
    stringgrid1.RowCount:=stringgrid1.RowCount-1;
    strfresh;
  end;  
end;

procedure Tfrmpopedomset.SpeedButton2Click(Sender: TObject);
var
  i:integer;
begin
  for i:=1 to ComponentCount-1 do
  begin
  if Components[i].ClassName = 'TCheckBox' then
  (Components[i] as tcheckbox).Checked:=false;
  end;
end;

procedure Tfrmpopedomset.SpeedButton3Click(Sender: TObject);
var
  i:integer;
begin
  for i:=1 to ComponentCount-1 do
  if Components[i].ClassName = 'TCheckBox' then
  (Components[i] as tcheckbox).Checked:=true;
end;

procedure Tfrmpopedomset.SpeedButton4Click(Sender: TObject);
var
  i:integer;
  spur:string; //权限标志
begin
  spur:='';
  for i:= 2 to 28 do
  begin
    if (components[i] as tcheckbox).Checked then    //判断哪个checkbox被选中
    spur:=spur+'1'
    else
    spur:=spur+'0';
  end;
  adoquery1.SQL.Text:='update userinfo set purview ='''+spur+''' where username = '''+stringgrid1.Cells[0,stringgrid1.Row]+'''';
  adoquery1.ExecSQL;
  adoquery1.Close;
  showmessage('保存成功!');
end;

procedure Tfrmpopedomset.StringGrid1Click(Sender: TObject);
begin
  strfresh;
end;

function tfrmpopedomset.strfresh:string;
var
  i:integer;
  s:string;//权限标志
begin
  if stringgrid1.Cells[0,stringgrid1.Row] <> '' then
  begin
    adoquery1.SQL.Text:='select purview from userinfo where username = '''+stringgrid1.Cells[0,stringgrid1.Row]+'''';
    adoquery1.Open;
    s:=adoquery1.FieldValues['purview'];
    for i:=2 to 28 do
    begin
      if s[i-1] = '1' then
        (components[i] as tcheckbox).Checked:=true
      else
        (components[i] as tcheckbox).Checked:=false;
    end;
    adoquery1.Close;
  end;  
end;

end.

⌨️ 快捷键说明

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