?? poptst1.pas
字號:
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 + -