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

📄 frmmain.pas

📁 一些关于电子邮件SMTP`POP3 MIME`的源码·个人感觉还不错
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      FileName:=QueueList.Items[0].Caption;
      QueueList.Items[0].SubItems[3]:='正在下载';
      QueueList.Refresh;
      if FileExists(FileName) then
      begin
        if MessageDlg('文件已存在,是否继续', mtConfirmation, [mbYes,mbNo], 0) = mrYes then
           FTPClient.Get(FileName, LocalPath+'\'+FileName,false, true)
        else FTPClient.Get(FileName, LocalPath+'\'+FileName, true);
      end
      else
        FTPClient.Get(FileName, LocalPath+'\'+FileName, false);
      QueueList.items[0].Delete;
      QueueList.Refresh;
      LocalChangeDirExecute(Sender);
    end;
    RemoteFileList.Enabled:=True;
    ComboHistory.Enabled:=True;
    RemoteUpDir.Enabled:=True;
    IsTransParent:=False;
  except
    QueueList.Items[0].SubItems[3]:='错误';
    ShowMessage('下载文件错误!');
    RemoteFileList.Enabled:=True;
    ComboHistory.Enabled:=True;
    RemoteUpDir.Enabled:=True;
    IsTransParent:=False;
  end;
end;

procedure TFMain.UploadExecute(Sender: TObject);
var
  FileName : String;
  Item : TListItem;
  QueueItem : TListItem;
begin
  if not FTPClient.Connected Then Exit;
  if LocalFileList.Selected = nil then Exit;
  Item := LocalFileList.Selected;
  QueueList.Clear;
  while Item <> nil do
  begin
    QueueItem := QueueList.Items.Add;
    QueueItem.Caption := Item.Caption;
    QueueItem.SubItems.Add(LocaLPath);
    QueueItem.SubItems.Add(Item.SubItems[1]);
    QueueItem.SubItems.Add('->');
    QueueItem.SubItems.Add('');
    QueueItem.SubItems.Add(ComboHistory.Text);
    Item:=LocalFileList.GetNextItem(Item,sdAll, [isSelected]);
  end;
  QueueList.Refresh;

  LocalFileList.Enabled:=false;
  DriveComboBox1.Enabled:=false;
  RemoteFileList.Enabled:=False;
  ComboHistory.Enabled:=false;
  RemoteUpDir.Enabled:=false;
  IsTransParent:=True;
  try
    while QueueList.Items.Count > 0 do
    begin
      FileName:=QueueList.Items[0].Caption;
      QueueList.Items[0].SubItems[3]:='正在上传';
      QueueList.Refresh;
      FTPClient.Put(LocalPath+'\'+FileName, FileName);
      RemoteChangeDirExecute(Sender);
      QueueList.items[0].Delete;
      QueueList.Refresh;;
    end;
    LocalFileList.Enabled:=True;
    DriveComboBox1.Enabled:=True;
    RemoteFileList.Enabled:=True;
    ComboHistory.Enabled:=True;
    RemoteUpDir.Enabled:=True;
    IsTransParent:=False;
  except
    QueueList.Items[0].SubItems[3]:='错误';
    ShowMessage('上传文件错误!');
    LocalFileList.Enabled:=True;
    DriveComboBox1.Enabled:=True;
    RemoteFileList.Enabled:=True;
    ComboHistory.Enabled:=True;
    RemoteUpDir.Enabled:=True;
    IsTransParent:=False;
  end;
end;

procedure TFMain.LocalDirUpExecute(Sender: TObject);
begin
  if length(LocalPath) = 3 then exit;
  LocalPath:=LocalPath+'.txt';
  LocalPath:=ExtractFileDir(LocalPath);
  LocalChangeDirExecute(Sender);
end;

procedure TFMain.LocalMakeDirExecute(Sender: TObject);
var
  NewFolder : String;
begin
  NewFolder:= InputBox('新建文件夹', '名字', '');
  if NewFolder <> '' then
  try
    CreateDir(NewFolder);
    LocalChangeDirExecute(Sender);
  except
    ShowMessage('创建本地目录错误');
  end;
end;

procedure TFMain.RemoteDelExecute(Sender: TObject);
Var
  FileName:String;
begin
  if not FTPClient.Connected then exit;
  if RemoteFileList.Selected = nil then exit;

  FileName:= RemoteFileList.Selected.Caption;
  if  RemoteFileList.Selected.SubItems[0] = '文件夹' then
    FTPClient.RemoveDir(FileName)
  else
    FtpClient.Delete(FileName);
  RemoteChangeDirExecute(Sender);
end;

procedure TFMain.RemoteNewDirExecute(Sender: TObject);
var
  NewFolder : String;
begin
  if not FTPClient.Connected then exit;
  NewFolder := InputBox('新建文件夹', '名字', '');
  if NewFolder <> '' then
    FTPClient.MakeDir(NewFolder);
  RemoteChangeDirExecute(Sender);
end;

procedure TFMain.LocalChangeDirExecute(Sender: TObject);
var
  sr: TSearchRec;
  Item : TListItem;
begin
  SetCurrentDir(LocalPath);
  LocalFileList.Clear;
  if FindFirst('*', faDirectory, sr) = 0 then
  begin
    repeat
      if ((sr.Attr and faDirectory) = sr.Attr) and (sr.Name <> '.') and (sr.Name <> '..') then
      begin
        Item:=LocalFileList.Items.Add;
        Item.ImageIndex:=0;
        Item.Caption:=sr.Name;
        Item.SubItems.Add('文件夹');
        Item.SubItems.Add('');
        Item.SubItems.Add(DateTimeToStr(sr.Time));
      end;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;

  if FindFirst('*', faArchive, sr) = 0 then
  begin
    repeat
      Item:=LocalFileList.Items.Add;
      Item.ImageIndex:=1;
      Item.Caption:=sr.Name;
      Item.SubItems.Add('');
      Item.SubItems.Add(IntToStr(sr.Size));
      Item.SubItems.Add(DateTimeToStr(sr.Time));
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
end;

procedure TFMain.LocalFileListContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  if LocalFileList.Selected = nil then
  begin
    LocalMakeDir.Enabled:=true;
    ViewIcon.Enabled:=true;
    ViewSmallIcon.Enabled:=true;
    ViewList.Enabled:=True;
    ViewReport.Enabled:=True;
    UpLoad.Enabled:=False;
  end
  else begin
    LocalMakeDir.Enabled:=False;
    ViewIcon.Enabled:=False;
    ViewSmallIcon.Enabled:=False;
    ViewList.Enabled:=False;
    ViewReport.Enabled:=False;
    if LocalFileList.Selected.SubItems[0] = '文件夹' then
       UpLoad.Enabled:=False
    else UpLoad.Enabled:=True
  end;
end;

procedure TFMain.RemoteFileListContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  if RemoteFileList.Selected = nil then
  begin
    RemoteNewDir.Enabled:=True;
    N86.Enabled:=True;
    ViewIcon.Enabled:=True;
    ViewSmallIcon.Enabled:=True;
    ViewList.Enabled:=True;
    ViewReport.Enabled:=True;
    DownLoad.Enabled:=False;
    RemoteRename.Enabled:=False;
    RemoteDel.Enabled:=False;
  end
  else begin
    RemoteNewDir.Enabled:=False;
    N86.Enabled:=false;
    ViewIcon.Enabled:=False;
    ViewSmallIcon.Enabled:=False;
    ViewList.Enabled:=False;
    ViewReport.Enabled:=False;
    RemoteRename.Enabled:=true;
    RemoteDel.Enabled:=True;
    if remoteFileList.Selected.SubItems[0] = '文件夹' then
       DownLoad.Enabled:=False
    else download.Enabled:=True
  end;
end;

procedure TFMain.DriveComboBox1Change(Sender: TObject);
begin
  LocalPath:= DriveComboBox1.Drive+':\';
  LocalChangeDirExecute(Sender);
end;

procedure TFMain.LocalFileListDblClick(Sender: TObject);
var
  FileName : String;
begin
  if LocalFileList.Selected = nil then Exit;
  FileName :=LocalFileList.Selected.Caption;
  if LocalFileList.Selected.SubItems[0] = '文件夹' then
  begin
    if Length(LocalPath)=3 then
       LocalPath := LocalPath + FileName
    else LocalPath := LocalPath + '\' + FileName;
    LocalChangeDirExecute(Sender);
  end
  else begin
    if not FTPClient.Connected Then Exit;
    if MessageDlg('是否上传该文件?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
       UpLoadExecute(Sender);
  end;
end;

procedure TFMain.ViewIconExecute(Sender: TObject);
begin
  LocalFileList.ViewStyle:=vsIcon;
//  TListView(Sender).ViewStyle:=vsIcon;
end;

procedure TFMain.ViewSmallIconExecute(Sender: TObject);
begin
  LocalFileList.ViewStyle:=vsSmallIcon;
end;

procedure TFMain.ViewListExecute(Sender: TObject);
begin
  LocalFileList.ViewStyle:=vsList;
end;

procedure TFMain.ViewReportExecute(Sender: TObject);
begin
  LocalFileList.ViewStyle:=vsReport;
end;

end.

⌨️ 快捷键说明

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