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

📄 frmuserinfo.pas

📁 Mailserver Source code - Delphi. Simple Mail server source code. SMTP and POP3 protocols.
💻 PAS
字号:
unit FrmUserInfo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls,inifiles,ImgList, Menus;

type
  TFrmUserInfo1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    ListView1: TListView;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    procedure ComboBox1Select(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
    function  GetSumStr:string;
    procedure AddToListView(AStr:string);
    function  GetOneline(var AStr:string):string;
    function  GetDetal:string;
    function  GetMailNum(AStr:string):Double;
    function  GetMailByte(AStr:string):Double;
  public
    { Public declarations }
    procedure IniShow;
  end;

var
  FrmUserInfo1: TFrmUserInfo1;

implementation

uses UnitDataModule, UnitConst, FrmStatistics;

{$R *.dfm}

//显示信息
procedure TFrmUserInfo1.IniShow;
begin
  C_SetCombox(UnitDataModule1.GetDomain,ComboBox1);
  AddToListView(UnitDataModule1.GetUsersTetailInfoInDomain(ComboBox1.text));

end;

procedure TFrmUserInfo1.ComboBox1Select(Sender: TObject);
begin
  AddToListView(UnitDataModule1.GetUsersTetailInfoInDomain(ComboBox1.text));
end;

//加入到listview中
procedure TFrmUserInfo1.AddToListView(AStr:string);
var
  i:integer;
  MyList:TStringList;
  MyItem:TListItem;
  MyStr:string;
begin
  MyList:=TStringList.Create;
  try
    MyList.Text:=AStr;
    ListView1.Clear;
    for i:=0 to MyList.Count-1 do
    begin
      MyStr:=MyList.Strings[i];
      MyItem:=ListView1.Items.Add;
      MyItem.ImageIndex:=0;
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
      MyItem.SubItems.Add(GetOneline(MyStr));
    end;
  finally
    MyList.Free;
  end;
end;

//在字符串中截取一个字符串,并删除原字符串中的这个字符串
function TFrmUserInfo1.GetOneline(var AStr:string):string;
begin
  if pos(',',AStr)<>0 then
  begin
    Result:=copy(AStr,1,pos(',',AStr)-1);
    Delete(AStr,1,pos(',',AStr));
  end
  else begin
    result:=AStr;
  end;
end;

procedure TFrmUserInfo1.N1Click(Sender: TObject);
var
  MyStr:string;
begin
  MyStr:=GetSumStr;
  FrmStatistics1.ShowText:=MyStr;
  FrmStatistics1.ShowModal;
end;

function TFrmUserInfo1.GetSumStr:string;
var
  MyStrList:TstringList;
begin
  MyStrList:=TstringList.Create;
  try
    MyStrList.Text:=GetDetal;
    MyStrList.insert(0,'用户总数为:'+inttostr(listview1.Items.Count));
    MyStrList.insert(1,'');
    MyStrList.insert(0,'===================域名 "'+ComboBox1.Text+'"===================');
    MyStrList.insert(1,'');
    result:=MyStrList.Text;
  finally
  end;
end;

function TFrmUserInfo1.GetDetal:string;
var
  i:integer;
  ina,faa,tra,dea,wra,rda,uda:double;
  inx,fax,trx,dex,wrx,rdx,udx:double;
  MyStr:string;
  MyList:TStringList;
begin
  ina:=0;
  faa:=0;
  tra:=0;
  dea:=0;
  wra:=0;
  rda:=0;
  uda:=0;
  inx:=0;
  fax:=0;
  trx:=0;
  dex:=0;
  wrx:=0;
  rdx:=0;
  udx:=0;
  for i:=0 to listview1.Items.Count-1 do
  begin
    MyStr:=listview1.Items[i].SubItems[2];
    ina:=ina+GetMailNum(MyStr);
    inx:=inx+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[3];
    faa:=faa+GetMailNum(MyStr);
    fax:=fax+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[4];
    tra:=tra+GetMailNum(MyStr);
    trx:=trx+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[5];
    dea:=dea+GetMailNum(MyStr);
    dex:=dex+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[6];
    wra:=wra+GetMailNum(MyStr);
    wrx:=wrx+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[7];
    rda:=rda+GetMailNum(MyStr);
    rdx:=rdx+GetMailByte(MyStr);

    MyStr:=listview1.Items[i].SubItems[8];
    uda:=uda+GetMailNum(MyStr);
    udx:=udx+GetMailByte(MyStr);
  end;

  MyList:=TStringList.Create;
  try
    MyList.Add('收件箱:        '+FloatToStr(ina)+'封 '+'('+FloatToStr(inx)+'kb)');
    MyList.Add('');
    MyList.Add('收藏箱:        '+FloatToStr(faa)+'封 '+'('+FloatToStr(fax)+'kb)');
    MyList.Add('');
    MyList.Add('垃圾箱:        '+FloatToStr(tra)+'封 '+'('+FloatToStr(trx)+'kb)');
    MyList.Add('');
    MyList.Add('已删除邮件:    '+FloatToStr(dea)+'封 '+'('+FloatToStr(dex)+'kb)');
    MyList.Add('');
    MyList.Add('待转发邮件:    '+FloatToStr(wra)+'封 '+'('+FloatToStr(wrx)+'kb)');
    MyList.Add('');
    MyList.Add('已转发邮件:    '+FloatToStr(rda)+'封 '+'('+FloatToStr(rdx)+'kb)');
    MyList.Add('');
    MyList.Add('转发失败邮件:  '+FloatToStr(uda)+'封 '+'('+FloatToStr(udx)+'kb)');

    result:=MyList.Text;
  finally
    MyList.Free;
  end;
end;

function TFrmUserInfo1.GetMailNum(AStr:string):double;
begin
  AStr:=trim(AStr);
  result:=strtofloat(copy(AStr,1,pos('封',AStr)-1));
end;

function TFrmUserInfo1.GetMailByte(AStr:string):Double;
var
  i,j:integer;
begin
  AStr:=lowercase(trim(AStr));
  i:=pos('(',AStr);
  j:=pos('kb',AStr);
  result:=strtofloat(copy(AStr,i+1,j-i-1));
end;

end.

⌨️ 快捷键说明

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