📄 frmuser.pas
字号:
unit FrmUser;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
ImgList,ExtCtrls, Menus, Buttons,ComCtrls, StdCtrls,StrUtils,dialogs;
type
TFrmUser1 = class(TForm)
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
ListView1: TListView;
Panel3: TPanel;
ComboBox1: TComboBox;
Label1: TLabel;
ImageList1: TImageList;
N4: TMenuItem;
procedure N1Click(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ComboBox1Select(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
function AddNewUser:boolean;
function ModifyUser:boolean;
procedure Add_IniForm;
procedure Modify_IniForm(AUserID:string);
function GetDomainID:string;
procedure AddToListview(AStr,ASelectedUserID:string); //ASelectedUserID为选择指定的userid
function RevertCrlf(AStr,ARepStr:string):string;
public
{ Public declarations }
procedure IniShow;
end;
var
FrmUser1: TFrmUser1;
implementation
uses UnitDataModule, FrmAddNewUser, UnitConst, FrmStatistics;
{$R *.dfm}
//显示用户
procedure TFrmUser1.IniShow;
begin
C_SetCombox(UnitDataModule1.GetDomain,ComboBox1);
AddToListview(UnitDataModule1.GetUserInfoInDomain(ComboBox1.Text),'');
end;
procedure TFrmUser1.ComboBox1Select(Sender: TObject);
begin
AddToListview(UnitDataModule1.GetUserInfoInDomain(ComboBox1.Text),'');
end;
//处理listview
procedure TFrmUser1.AddToListview(AStr,ASelectedUserID:string);
var
i:integer;
MyListItem:TListItem;
MyList:TStringList;
begin
MyList:=TStringList.Create;
try
MyList.Text:=AStr;
i:=0;
listview1.Clear;
while i<MyList.Count-1 do
begin
MyListItem:=listview1.Items.Add;
with MyListItem do
begin
if lowercase(MyList.Strings[i+1])=lowercase(ASelectedUserID) then
begin
listview1.Selected:=MyListItem;
end;
SubItems.Add(MyList.Strings[i+0]);
SubItems.Add(MyList.Strings[i+1]);
if MyList.Strings[i+2]='1' then
begin
SubItems.Add('可用');
ImageIndex:=0;
end
else begin
SubItems.Add('禁用');
ImageIndex:=1;
end;
SubItems.Add(MyList.Strings[i+3]);
SubItems.Add(MyList.Strings[i+4]);
SubItems.Add(MyList.Strings[i+5]);
SubItems.Add(MyList.Strings[i+6]);
SubItems.Add(MyList.Strings[i+7]);
end;
i:=i+8;
end;
finally
MyList.free;
end;
end;
{-------------------------------------------------------------------------------
+ start 右键菜单 +
+ +
--------------------------------------------------------------------------------}
//处理弹出菜单
procedure TFrmUser1.PopupMenu1Popup(Sender: TObject);
begin
if listview1.Selected=nil then
begin
n2.Enabled:=false;
n3.Enabled:=false;
end
else begin
n2.Enabled:=true;
n3.Enabled:=true;
end;
end;
//新增用户
procedure TFrmUser1.N1Click(Sender: TObject);
begin
if not UnitDataModule1.ChechkReg then
begin
Application.MessageBox('试用版本,只能支持两个用户','注意',MB_OK);
Exit;
end ;
Add_IniForm; //先清空
while true do
begin
if FrmAddNewUser1.ShowModal=mrOk then
begin
if FrmAddNewUser1.Checktrue=true then
begin
if AddNewUser=true then
break;
end;
end
else begin
break;
end;
end;
end;
//修改用户
procedure TFrmUser1.N2Click(Sender: TObject);
begin
if listview1.Selected<>nil then
begin
Modify_IniForm(listview1.Selected.SubItems[0]);
while true do
begin
if FrmAddNewUser1.ShowModal=mrOk then
begin
if FrmAddNewUser1.Checktrue=true then
begin
if ModifyUser=true then
break;
end;
end
else begin
break;
end;
end;
end;
end;
//删除用户
procedure TFrmUser1.N3Click(Sender: TObject);
begin
case Application.MessageBox(pchar('是否删除用户 "'+listview1.Selected.SubItems[0]+'"'+#13#10#13#10+'该操作将删除该用户在系统中的所有信息'),'提示信息',MB_YESNO or
MB_ICONQUESTION) of
IDNO:exit;
end;
screen.Cursor:=crHourGlass;
if UnitDataModule1.DeleteUserID(listview1.Selected.SubItems[0]) then
begin
UnitDataModule1.DCOMConnection1.AppServer.ClearUserOtherInfo(listview1.Selected.SubItems[1],ComboBox1.text);
listview1.Selected.Delete;
end;
screen.Cursor:=crDefault;
end;
procedure TFrmUser1.N4Click(Sender: TObject);
var
MyStr:string;
begin
MyStr:='===================域名 "'+ComboBox1.Text+'"==================='+#13#10#13#10;
MyStr:=MyStr+'用户总数为:'+inttostr(listview1.Items.Count)+#13#10;
FrmStatistics1.ShowText:=MyStr;
FrmStatistics1.ShowModal;
end;
{--------------------------------------------------------------------}
//修改
function TFrmUser1.ModifyUser:boolean;
var
ActiveTag:string;
begin
result:=false;
with FrmAddNewUser1 do
begin
if checkbox1.Checked=true then
ActiveTag:='0'
else
ActiveTag:='1';
if UnitDataModule1.ModifyUserInfo(listview1.Selected.SubItems[0],edit2.text,ActiveTag,edit3.text,edit4.text,edit5.text,
edit6.text,edit7.text,edit8.text,memo1.text)=true then
begin
AddToListview(UnitDataModule1.GetUserInfoInDomain(ComboBox1.Text),edit1.text);
result:=true;
end
else begin
application.MessageBox('修改用户资料失败。','提示信息',MB_ok or MB_ICONQUESTION);
end;
end;
end;
//修改窗口的数据
procedure TFrmUser1.Modify_IniForm(AUserID:string);
var
MyList:TStringList;
begin
MyList:=TStringList.Create;
try
MyList.text:=UnitDataModule1.GetOneUserInfo(AUserID);
if MyList.Count>9 then
begin
with FrmAddNewUser1 do
begin
Caption:='修改用户资料';
HintLabel.Caption:='修改用户资料';
edit1.Color:=clBtnFace;
edit1.ReadOnly:=true;
edit1.text:=MyList.Strings[0];
edit2.text:=MyList.Strings[1];
edit9.text:=MyList.Strings[1];
if MyList.Strings[2]='1' then
CheckBox1.Checked:=false
else
CheckBox1.Checked:=true;
edit3.text:=MyList.Strings[3];
edit4.text:=MyList.Strings[4];
edit5.text:=MyList.Strings[5];
edit6.text:=MyList.Strings[6];
edit7.text:=MyList.Strings[7];
edit8.text:=MyList.Strings[8];
memo1.text:=RevertCrlf(MyList.Strings[9],'%+%');
BitBtn1.Enabled:=false;
SetUserAndDomain(AUserID,UnitDataModule1.GetDomainID(ComboBox1.Text));
BitBtn3.Enabled :=True;
end;
end;
finally
MyList.free;
end;
end;
//------------------------------------------------------------------------------
//清空新建窗口的内容
procedure TFrmUser1.Add_IniForm;
begin
with FrmAddNewUser1 do
begin
Caption:='增加用户';
HintLabel.Caption:='增加用户';
edit1.Color:=clWindow;
edit1.ReadOnly:=false;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';
memo1.Text:='';
CheckBox1.Checked:=false;
BitBtn1.Enabled:=false;
BitBtn3.Enabled :=False;
end;
end;
//增加用户
function TFrmUser1.AddNewUser:boolean;
var
ActiveTag:string;
begin
result:=false;
//是否已存在该用户
if UnitDataModule1.CheckIsExistsUserID(FrmAddNewUser1.edit1.text,ComboBox1.text)=false then
begin
{----------}
with FrmAddNewUser1 do
begin
if CheckBox1.Checked=true then
ActiveTag:='0'
else
ActiveTag:='1';
if UnitDataModule1.AddNewUserID(edit1.text,edit2.text,GetDomainID,ActiveTag,edit3.text,edit4.text,edit5.text,
edit6.text,edit7.text,edit8.text,memo1.text)=true then
begin
AddToListview(UnitDataModule1.GetUserInfoInDomain(ComboBox1.Text),edit1.text);
UnitDataModule1.DCOMConnection1.AppServer.SendWelcomMail(listview1.Selected.SubItems[0]);
result:=true;
end
else begin
application.MessageBox('新建用户名失败。','提示信息',MB_ok or MB_ICONQUESTION);
end;
end;
{-----------}
end
else begin
FrmAddNewUser1.Label1.Font.Color:=clred;
application.MessageBox('用户名已存在。','提示信息',MB_ok or MB_ICONQUESTION);
end;
end;
function TFrmUser1.GetDomainID:string;
begin
result:=UnitDataModule1.GetDomainID(ComboBox1.text);
end;
function TFrmUser1.RevertCrlf(AStr,ARepStr:string):string;
var
MyStr:string;
begin
result:='';
try
MyStr:=AStr;
MyStr:=AnsiReplaceStr(MyStr,ARepStr,#13#10);
result:=MyStr;
finally
end;
end;
{-------------------------------------------------------------------------------
+ end 右键菜单 +
+ +
--------------------------------------------------------------------------------}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -