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

📄 incept.pas

📁 一款不错的商务程序商品管理系统,有简易的窗体皮肤
💻 PAS
字号:
unit InCept;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, Grids, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3, IdMessage,
  StdCtrls, DB, ADODB, ImgList,Theme;

type
  TFrm_Incept = class(TBaseForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    StringGrid1: TStringGrid;
    IdPOP31: TIdPOP3;
    IdMessage1: TIdMessage;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    StringGrid2: TStringGrid;
    StatusBar1: TStatusBar;
    ADOIncept: TADODataSet;
    SaveDialog1: TSaveDialog;
    ADOPOP3: TADODataSet;
    ImageList1: TImageList;
    procedure FormShow(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure StringGrid2DblClick(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
  private
    ServerName,UName,Upwd,UEmail:string;
    UPort:Integer;
    MSGCount:Integer;
    { Private declarations }
    procedure SetTile;
    procedure RetrievePOPHeaders(inMsgCount: Integer);
    procedure RetrieveExecute;
  public
    { Public declarations }
  end;

var
  Frm_Incept: TFrm_Incept;

implementation
uses Main,DM;
{$R *.dfm}

{ TForm2 }

procedure TFrm_Incept.SetTile;
begin
  with StringGrid1 do
  begin
    Cells[0,0]:='主题';
    Cells[1,0]:='发件人';
    Cells[2,0]:='发件日期';
    Cells[3,0]:='邮件大小';
  end;

end;

procedure TFrm_Incept.FormShow(Sender: TObject);
begin
  SetTile;
  with ADOPOP3 do
  begin
    Open;
    ServerName:=FieldByName('MR_ServerName').AsString;
    UPort:=FieldByName('MR_Port').AsInteger;
    UName:=FieldByName('MR_Name').AsString;
    Upwd:=FieldByName('MR_Pwd').AsString;
    UEmail:=FieldByName('MR_Email').AsString;
  end;
end;

procedure TFrm_Incept.ToolButton9Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_Incept.ToolButton1Click(Sender: TObject);
begin
  if IdPOP31.Connected then
    IdPOP31.Disconnect;
  IdPOP31.Host:=ServerName;
  IdPOP31.Port:=UPort;
  IdPOP31.Username:=UName;
  IdPOP31.Password:=Upwd;
  IdPOP31.Connect;
  MSGCount:=IdPOP31.CheckMessages;//获取邮件数量
  RetrievePOPHeaders(MSGCount);
  StringGrid1.RowCount:=MSGCount;
  StatusBar1.Panels.Items[0].Text:='服务器连接成功!';
end;

procedure TFrm_Incept.RetrievePOPHeaders(inMsgCount: Integer);
var
  IntIndex:Integer;
begin
  for IntIndex:=0 to MSGCount-1 do
  begin
    IdMessage1.Clear;
    IdPOP31.RetrieveHeader(IntIndex,IdMessage1);
    StringGrid1.Cells[0,IntIndex+1]:=IdMessage1.Subject;
    StringGrid1.Cells[1,IntIndex+1]:=IdMessage1.From.Text;
    StringGrid1.Cells[2,IntIndex+1]:=DateTimeToStr(IdMessage1.Date);
    StringGrid1.Cells[3,IntIndex+1]:=IntToStr(IdPOP31.RetrieveMsgSize(IntIndex));
  end;
end;

procedure TFrm_Incept.RetrieveExecute;
var
  i:Integer;
begin
  if MSGCount<=0 then
    Exit;
  IdMessage1.Clear;
  Memo1.Clear;
  StringGrid2.Cells[0,0]:='文件名';
  StringGrid2.Cells[1,0]:='文件类型';
  for i:=0 to pred(IdMessage1.MessageParts.Count) do
  begin
    if (IdMessage1.MessageParts.Items[i] is TIdAttachment) then
    begin
      StringGrid2.Cells[0,i+1] := TIdAttachment(IdMessage1.MessageParts.Items[i]).Filename;
      StringGrid2.Cells[1,i+1]:= TIdAttachment(IdMessage1.MessageParts.Items[i]).ContentType;
      
    end
    else
    begin
      if IdMessage1.MessageParts.Items[i] is TIdText then
      begin
         Memo1.Lines.Clear;
         Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);
      end
    end;
  end;

end;

procedure TFrm_Incept.StringGrid1DblClick(Sender: TObject);
begin
  RetrieveExecute;
end;

procedure TFrm_Incept.ToolButton2Click(Sender: TObject);
begin
if IdPOP31.Connected then
  IdPOP31.Disconnect;
StatusBar1.Panels.Items[0].Text:='服务器已断开连接!';
end;

procedure TFrm_Incept.ToolButton5Click(Sender: TObject);
begin
  if StringGrid1.Row>0 then
  begin
    IdPOP31.Delete(StringGrid1.Row + 1);
  end;
end;

procedure TFrm_Incept.StringGrid2DblClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    StringGrid2.Cells[2,StringGrid2.Row+1]:=SaveDialog1.FileName;
    TIdAttachment(IdMessage1.MessageParts.Items[StringGrid2.Row+1]).SaveToFile(SaveDialog1.FileName);
  end;
end;

procedure TFrm_Incept.ToolButton8Click(Sender: TObject);
begin
  if Memo1.Lines.Count>0 then
  begin
    with ADOIncept do
    begin
      Open;
      Append;
      FieldByName('MR_Subject').AsString:=StringGrid1.Cells[0,StringGrid2.Row+1];
      FieldByName('MR_SendTo').AsString:=StringGrid1.Cells[1,StringGrid2.Row+1];
      FieldByName('MR_Date').AsDateTime:=StrToDateTime(StringGrid1.Cells[2,StringGrid2.Row+1]);
      FieldByName('MR_Size').AsString:=StringGrid1.Cells[3,StringGrid2.Row+1];
      FieldByName('MR_Affix').AsString:=StringGrid2.Cells[0,StringGrid2.Row+1];
      FieldByName('MR_AffixPath').AsString:=StringGrid2.Cells[2,StringGrid2.Row+1];
      FieldByName('MR_Memo').AsString:=Memo1.Text;
      FieldByName('MR_SaveDate').AsDateTime:=Now;
      Post;
    end;
    Application.MessageBox('数据保存成功!','明日科技');
  end;
end;

end.

⌨️ 快捷键说明

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