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

📄 poptst1.pas

📁 灰鸽子1.23源码,,,,,,,
💻 PAS
📖 第 1 页 / 共 2 页
字号:
procedure TPOP3ExcercizerForm.DeleteButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Dele, 'Delete');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.NoopButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Noop, 'Noop');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.LastButtonClick(Sender: TObject);
begin
    if DoTheJob(Pop3Client.Last, 'Last') then
        InfoLabel.caption := 'Last = ' + IntToStr(Pop3Client.MsgNum);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.ResetButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Rset, 'Rset');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.TopButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Top, 'Top');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.RpopButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Rpop, 'Rpop');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.UidlButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Uidl, 'Uidl');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.ApopButtonClick(Sender: TObject);
begin
    DoTheJob(Pop3Client.Apop, 'Apop');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called when TPop3Client is about to receive a       }
{ message. The MsgNum property gives the message number.                    }
{ This event handler could be used to open the file used to store the msg.  }
{ The file handle could be stored in the TPop3Client.Tag property to be     }
{ easily retrieved by the OnMessageLine and OnMessageEnd event handlers.    }
procedure TPOP3ExcercizerForm.Pop3ClientMessageBegin(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** Message ' +
                          IntToStr((Sender as TPop3Client).MsgNum) +
                          ' begin ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called when TPop3Client has detected the end of a   }
{ message, even if there is an error or exception, this event gets called.  }
{ This event handler could be used to close the file used to store the msg. }
procedure TPOP3ExcercizerForm.Pop3ClientMessageEnd(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** Message ' +
                          IntToStr((Sender as TPop3Client).MsgNum) +
                          ' end ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called for each message line that TPop3Client is    }
{ receiveing. This could be used to write the message lines to a file.      }
procedure TPOP3ExcercizerForm.Pop3ClientMessageLine(Sender: TObject);
begin
    DisplayMemo.Lines.Add((Sender as TPop3Client).LastResponse);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called when TPop3Client is about to receive a       }
{ list line. The MsgNum property gives the message number.                  }
procedure TPOP3ExcercizerForm.Pop3ClientListBegin(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** List begin ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called when TPop3Client has received the last list  }
{ line.                                                                     }
procedure TPOP3ExcercizerForm.Pop3ClientListEnd(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** List End ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ This event handler is called for each list line received by TPop3Client.  }
procedure TPOP3ExcercizerForm.Pop3ClientListLine(Sender: TObject);
var
    Buffer : String;
begin
    Buffer := 'MsgNum = ' + IntToStr((Sender as TPop3Client).MsgNum) + ' ' +
              'MsgSize = ' + IntToStr((Sender as TPop3Client).MsgSize) + ' ' +
              'Line = ''' + (Sender as TPop3Client).LastResponse + '''';
    DisplayMemo.Lines.Add(Buffer);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.Pop3ClientUidlBegin(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** Uidl begin ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.Pop3ClientUidlEnd(Sender: TObject);
begin
    DisplayMemo.Lines.Add('*** Uidl end ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.Pop3ClientUidlLine(Sender: TObject);
var
    Buffer : String;
begin
    Buffer := 'MsgNum = ' + IntToStr((Sender as TPop3Client).MsgNum) + ' ' +
              'MsgUidl = ' + (Sender as TPop3Client).MsgUidl + '''';
    DisplayMemo.Lines.Add(Buffer);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.MessageBegin(Sender: TObject);
begin
    MessageForm.Caption := 'Message ' +
                           IntToStr((Sender as TPop3Client).MsgNum);
    MessageForm.Show;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.MessageLine(Sender: TObject);
begin
    MessageForm.DisplayMemo.Lines.Add((Sender as TPop3Client).LastResponse);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.NextButtonClick(Sender: TObject);
var
    OldBegin : TNotifyEvent;
    OldEnd   : TNotifyEvent;
    OldLine  : TNotifyEvent;
begin
    OldBegin := Pop3Client.OnMessageBegin;
    OldEnd   := Pop3Client.OnMessageEnd;
    OldLine  := Pop3Client.OnMessageLine;

    Pop3Client.OnMessageBegin := MessageBegin;
    Pop3Client.OnMessageEnd   := nil;
    Pop3Client.OnMessageLine  := MessageLine;

    MessageForm.DisplayMemo.Clear;
    MessageForm.Caption := 'Message';

    DoTheJob(Pop3Client.Retr, 'Retr');

    if (Length(Pop3Client.LastResponse) > 0) and
       (Pop3Client.LastResponse[1] = '-') then
        MessageForm.DisplayMemo.Lines.Add(Pop3Client.LastResponse)
    else
        MsgNumEdit.Text := IntToStr(StrToInt(MsgNumEdit.Text) + 1);

    MessageForm.DisplayMemo.SelStart  := 0;
    MessageForm.DisplayMemo.SelLength := 0;

    Pop3Client.OnMessageBegin := OldBegin;
    Pop3Client.OnMessageEnd   := OldEnd;
    Pop3Client.OnMessageLine  := OldLine;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.GetAllMessageLine(Sender: TObject);
begin
    Writeln(FFile, (Sender as TPop3Client).LastResponse);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TPOP3ExcercizerForm.GetAllButtonClick(Sender: TObject);
var
    MsgCnt   : Integer;
    MsgNum   : Integer;
    Uidl     : String;
    OldBegin : TNotifyEvent;
    OldEnd   : TNotifyEvent;
    OldLine  : TNotifyEvent;
    IniFile  : TIniFile;
    Path     : String;
begin
    if not DoTheJob(Pop3Client.Stat, 'Stat') then
        Exit;

    InfoLabel.Caption := 'Stat ok, ' +
                         IntToStr(Pop3Client.MsgCount) + ' messages ' +
                         IntToStr(Pop3Client.MsgSize) + ' bytes';
    if Pop3Client.MsgCount < 1 then
        Exit;

    { Get path from INI file }
    IniFile := TIniFile.Create(IniFileName);
    Path    := IniFile.ReadString('Data', 'MsgPath',
                                  ExtractFilePath(Application.ExeName));
    IniFile.Free;

    { Be sure to have an ending backslash }
    if (Length(Path) > 0) and (Path[Length(Path)] <> '\') then
        Path := Path + '\';

    OldBegin := Pop3Client.OnMessageBegin;
    OldEnd   := Pop3Client.OnMessageEnd;
    OldLine  := Pop3Client.OnMessageLine;
    Pop3Client.OnMessageBegin := nil;
    Pop3Client.OnMessageEnd   := nil;
    Pop3Client.OnMessageLine  := GetAllMessageLine;

    try
        MsgCnt := Pop3Client.MsgCount;
        for MsgNum := 1 to MsgCnt do begin
            Pop3Client.MsgNum := MsgNum;
            if not Pop3Client.Uidl then
                continue;
            Uidl := Pop3Client.MsgUidl;
            FFileName := Path + 'Msg ' + Uidl + '.txt';
            if FileExists(FFileName) then begin
                DisplayMemo.Lines.Add('Message ' + IntToStr(MsgNum) + ' already here');
                continue;
            end;

            DisplayMemo.Lines.Add('Message ' + IntToStr(Pop3Client.MsgNum));
            AssignFile(FFile, FFileName);
            Rewrite(FFile);
            try
                Pop3Client.Retr;
            finally
                CloseFile(FFile);
            end;
        end;
        DoTheJob(Pop3Client.Quit, 'Quit');
    finally
        Pop3Client.OnMessageBegin := OldBegin;
        Pop3Client.OnMessageEnd   := OldEnd;
        Pop3Client.OnMessageLine  := OldLine;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.

⌨️ 快捷键说明

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