📄 adduser.pas
字号:
unit Adduser;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, DelphiWizard, StdCtrls, CheckLst, ActnList, DB, SUIForm, SUIDlg;
type
TFrmAdduser = class(TForm)
suiForm1: TsuiForm;
Notebook1: TNotebook;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Image2: TImage;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit_user: TEdit;
Image3: TImage;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Edit_pwd1: TEdit;
Edit_pwd2: TEdit;
Image4: TImage;
Label15: TLabel;
GroupBox1: TGroupBox;
CLBox_user: TCheckListBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
CheckBox1: TCheckBox;
Image5: TImage;
Label16: TLabel;
Label17: TLabel;
DelphiWizard1: TDelphiWizard;
suiMessageDialog1: TsuiMessageDialog;
procedure FormShow(Sender: TObject);
procedure DelphiWizard1EndClick(Sender: TObject);
procedure DelphiWizard1PageChange(Sender: TObject);
procedure Notebook1PageChanged(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmAdduser: TFrmAdduser;
username,Password,powerOptions : string;
implementation
uses yhgl, Main, DataModule, PubUnit;
{$R *.DFM}
procedure TFrmAdduser.FormShow(Sender: TObject);
var
i,j,k:integer;
begin
Application.ProcessMessages ;
//添加菜单选项
CLBox_user.Items.Clear ;
j:=FrmMain.ComponentCount-1;
for i:= 0 to j-1 do
if FrmMain.components[i] is TAction then
CLBox_user.Items.Add(Trim(TAction(FrmMain.components[i]).caption));
k:=CLBox_user.Items.Count;
for i:=0 to k - 1 do CLBox_user.State[i]:=cbUnchecked;
username := '';Password := '';powerOptions := '';
if LoginUser <> '' then
case Super of
1 : CheckBox1.Enabled := true;
0 : CheckBox1.Enabled := false;
end;
end;
procedure TFrmAdduser.DelphiWizard1EndClick(Sender: TObject);
var
locatesuccess:boolean;
searchoptions:TLocateOptions;
begin
searchoptions:=[loPartialKey];
if notebook1.PageIndex = 4 then begin
//检测用户是否存在
with DataModule1.tbl_Power do begin
locatesuccess:=locate('用户名',username,searchoptions);
if locatesuccess then begin
NoteBook1.PageIndex := 1;
Edit_user.SetFocus ;
suiMessageDialog1.ButtonCount := 1;
suiMessageDialog1.Button1Caption := '确定(&S)';
suiMessageDialog1.Button1ModalResult := mrOK;
suiMessageDialog1.Caption := Self.Caption ;
suiMessageDialog1.IconType := suiStop;
suiMessageDialog1.Text := '该用户已经存在!';
suiMessageDialog1.ShowModal ;
Exit;
end;
end;
if powerOptions = '' then begin
suiMessageDialog1.ButtonCount := 1;
suiMessageDialog1.Button1Caption := '确定(&S)';
suiMessageDialog1.Button1ModalResult := mrOK;
suiMessageDialog1.Caption := Self.Caption ;
suiMessageDialog1.IconType := suiStop;
suiMessageDialog1.Text := '必须选择用户权限!';
suiMessageDialog1.ShowModal ;
Exit;
end;
with DataModule1.tbl_Power do begin
append;
fieldvalues['用户名']:=AnsiLowerCase(username);
fieldvalues['密码']:=AnsiLowerCase(password);
fieldvalues['用户权限']:= poweroptions;
if CheckBox1.Checked then
FieldByName('用户级别').AsInteger := 1
else
FieldByName('用户级别').AsInteger := 0;
end;
close;
end else close;
end;
procedure TFrmAdduser.DelphiWizard1PageChange(Sender: TObject);
var i,j : integer;
begin
username:=Trim(Edit_user.text);
password := Trim(Edit_pwd1.Text) ;
case notebook1.PageIndex of
2 :
if username = '' then begin
notebook1.PageIndex :=1;
Edit_user.SetFocus ;
suiMessageDialog1.ButtonCount := 1;
suiMessageDialog1.Button1Caption := '确定(&S)';
suiMessageDialog1.Button1ModalResult := mrOK;
suiMessageDialog1.Caption := Self.Caption ;
suiMessageDialog1.IconType := suiStop;
suiMessageDialog1.Text := '请输入用户名!';
suiMessageDialog1.ShowModal ;
Exit;
end;
3 :
if password<>Trim(Edit_pwd2.text) then begin
notebook1.PageIndex := 2;
edit_pwd1.SetFocus ;
suiMessageDialog1.ButtonCount := 1;
suiMessageDialog1.Button1Caption := '确定(&S)';
suiMessageDialog1.Button1ModalResult := mrOK;
suiMessageDialog1.Caption := Self.Caption ;
suiMessageDialog1.IconType := suiStop;
suiMessageDialog1.Text := '前后两次输入的密码不一致,请重新输入!';
suiMessageDialog1.ShowModal ;
Exit;
end;
4 :
begin
powerOptions :='';
j:=clbox_user.Items.Count;
for i:=0 to j - 1 do
if clbox_user.Checked[i] then
powerOptions := powerOptions +'['+ clbox_user.Items.Strings[i]+']';
end;
end;
end;
procedure TFrmAdduser.Notebook1PageChanged(Sender: TObject);
begin
Self.Caption := NoteBook1.ActivePage ;
end;
procedure TFrmAdduser.RadioButton2Click(Sender: TObject);
var i,k : integer;
begin
k:=CLBox_user.Items.Count;
for i:=0 to k - 1 do CLBox_user.State[i]:=cbchecked;
end;
procedure TFrmAdduser.RadioButton1Click(Sender: TObject);
var i,k : integer;
begin
k:=CLBox_user.Items.Count;
for i:=0 to k - 1 do CLBox_user.State[i]:=cbUnchecked;
end;
procedure TFrmAdduser.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
with DataModule1 do
begin
tbl_Power.Next ;
if tbl_Power.UpdatesPending then
begin
suiMessageDialog1.ButtonCount := 2;
suiMessageDialog1.Button1Caption := '是';
suiMessageDialog1.Button1ModalResult := mrYes;
suiMessageDialog1.Button2Caption := '否';
suiMessageDialog1.Button2ModalResult := mrNo ;
suiMessageDialog1.Caption := suiForm1.Caption ;
suiMessageDialog1.IconType := suiHelp ;
suiMessageDialog1.Text := '是否保存所添加的用户?' ;
if suiMessageDialog1.ShowModal = mrNo then
begin
tbl_Power.CancelUpdates ;
Exit ;
end;
try
db1.StartTransaction ;
tbl_Power.ApplyUpdates ;
tbl_Power.CommitUpdates ;
db1.Commit ;
except
on E : Exception do
begin
suiMessageDialog1.ButtonCount := 1;
suiMessageDialog1.Button1Caption := '确定(&S)';
suiMessageDialog1.Button1ModalResult := mrOK;
suiMessageDialog1.Caption := Self.Caption ;
suiMessageDialog1.IconType := suiStop;
suiMessageDialog1.Text := '数据错误无法保存:'+E.Message ;
suiMessageDialog1.ShowModal ;
tbl_Power.CancelUpdates ;
db1.Rollback ;
Abort ;
end;
end;
end;
end;
end;
procedure TFrmAdduser.FormCreate(Sender: TObject);
begin
ChangeInterface(Self,suiForm1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -