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

📄 frmuser.pas

📁 Mailserver Source code - Delphi. Simple Mail server source code. SMTP and POP3 protocols.
💻 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 + -