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

📄 c14_4f.cpp

📁 C++Builder编程实例详解,用具体的例子阐明C++的一些基本操作,所有程序均在BC++上编译过.可靠,建议下载
💻 CPP
📖 第 1 页 / 共 2 页
字号:
             FileNewItem->Enabled = true;
             ViewLargeItem->Enabled = true;
             ViewSmallItem->Enabled = true;
             ViewListItem->Enabled = true;
             ViewDetailsItem->Enabled = true;
             ViewRefreshItem->Enabled = true;
             ToolsDisconnectItem->Enabled = true;
             LargeBtn->Enabled = true;
             SmallBtn->Enabled = true;
             ListBtn->Enabled = true;
             DetailsBtn->Enabled = true;
             RefreshBtn->Enabled = true;
           }
           break;
        case prcDisconnecting: // 开始关闭连接
            StatusBar->Panels->Items[0]->Text =
            "正在结束连接...";
            break;
        case prcDisconnected: // 结束连接
           {
             ConnectBtn->Hint = "连接";
             DirTree->Items->Clear();
             FileNewItem->Enabled = false;
             ViewLargeItem->Enabled = false;
             ViewSmallItem->Enabled = false;
             ViewListItem->Enabled = false;
             ViewDetailsItem->Enabled = false;
             ViewRefreshItem->Enabled = false;
             ToolsDisconnectItem->Enabled = false;
             LargeBtn->Enabled = false;
             SmallBtn->Enabled = false;
             ListBtn->Enabled = false;
             DetailsBtn->Enabled = false;
             RefreshBtn->Enabled = false;
             StatusBar->Panels->Items[0]->Text = "已经断开";
           }
           break;
     }
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FilePopupPopup(TObject *Sender)
{ // 弹出菜单时,执行该程序,用于设置各菜单项的属性
    CopyItem->Enabled   = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);
    DeleteItem->Enabled = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);
    RenameItem->Enabled = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);
    PasteFromItem->Enabled = (ActiveControl == DirTree) &&
      (DirTree->Selected != NULL);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FileNewItemClick(TObject *Sender)
{ // 选择“新文件夹”菜单项
    String DirName;
    if(InputQuery("Input Box", "Prompt", DirName))
        FTP->CreateDir(NodePath(DirTree->Selected) + "/" + DirName);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FileMenuClick(TObject *Sender)
{ // 用于打开“文件”菜单时,执行该程序,用户设置菜单项属性
    FileCopyItem->Enabled   = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);
    FileDeleteItem->Enabled = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);
    FileRenameItem->Enabled = (ActiveControl == FileList) &&
      (FileList->Selected != NULL);

}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FileDeleteItemClick(TObject *Sender)
{ // 选择“文件”菜单的“删除”项,执行该程序
    if ((DirTree->Selected != NULL)&&(FileList->Selected != NULL))
       FTP->DeleteFile(FileList->Selected->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FileCopyItemClick(TObject *Sender)
{ // 选择“文件”菜单的“复制”项。
    SaveDialog1->FileName = FileList->Selected->Caption;
    if (SaveDialog1->Execute())
       FTP->GetFile(NodePath(DirTree->Selected) + "/" +
         FileList->Selected->Caption, SaveDialog1->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DirTreeChange(TObject *Sender, TTreeNode *Node)
{ // 当控件 DirTree 的数据改变时,触发该事件
    String NP;

    if((FTP->State == prcDisconnected)||(FTP->Busy))	return;
    if (Node != NULL)
    {
       NP = NodePath(DirTree->Selected);
       FileList->Items->Clear();
       FTP->List(NP);
       Label2->Caption = NP.Format("目录: %s", ARRAYOFCONST((NP)));
    }

}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DirTreeChanging(TObject *Sender, TTreeNode *Node,
	bool &AllowChange)
{ // DirTree 开始更新
    // 当 FTP 忙时禁止更新
    AllowChange = !FTP->Busy;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DeleteItemClick(TObject *Sender)
{ // 用户选择弹出菜单的“删除”项时,触发该事件
    if(ActiveControl == DirTree)
       FTP->DeleteDir(NodePath(DirTree->Selected));
    if (ActiveControl == FileList)
       FTP->DeleteFile(NodePath(DirTree->Selected) + "/" +
          FileList->Selected->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CopyItemClick(TObject *Sender)
{ // 用户选择弹出菜单的“复制”项时,触发该事件
    SaveDialog1->FileName = FileList->Selected->Caption;
    if (SaveDialog1->Execute())
       FTP->GetFile(NodePath(DirTree->Selected) + "/" +
          FileList->Selected->Caption, SaveDialog1->FileName);
}
//---------------------------------------------------------------------------

void TMainForm::Disconnect()
{ // 断开连接
    FTP->Quit();
    Application->ProcessMessages();
}
//---------------------------------------------------------------------------

void _fastcall TMainForm::CreateItem(String &filename, int Attributes, int Size,
  String& Date)
{ // 自定义成员函数,用于在文件列表中增加项。
    String Ext;
    TSHFileInfo SHFileInfo;
    TListItem * Result;

    Result = FileList->Items->Add();
    Result->Caption = filename;
    if (Size > 0)
    {
       int Size1 = Size/1024;
       if (Size1 != 0)
      {
         Result->SubItems->Add(String ((String)Size1));
         Result->SubItems->Strings[0] = Result->SubItems->Strings[0] + "KB";
      }else
      Result->SubItems->Add(Size);

    }
    else
      Result->SubItems->Add("");
    if(Attributes == 1)
    {
       Result->SubItems->Add("File Folder");
       Result->ImageIndex = 3;
    }
    else
    {
       Ext = ExtractFileExt(filename);
       SHGetFileInfo(String("C:\\*." + Ext).c_str(), 0, &SHFileInfo,
          sizeof(SHFileInfo),
       SHGFI_SMALLICON | SHGFI_SYSICONINDEX | SHGFI_TYPENAME);
       if (String(SHFileInfo.szTypeName).Length() == 0)
       {
       	  if (Ext.Length() > 0)
       	  {
             Ext.Delete(1, 1);
             Result->SubItems->Add(Ext + " File");
       	  }
         else
            Result->SubItems->Add("File");
       }
       else
          Result->SubItems->Add(SHFileInfo.szTypeName);
       Result->ImageIndex = SHFileInfo.iIcon;
    }
    Result->SubItems->Add(Date);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FileListChange(TObject *Sender, TListItem *Item,
   TItemChange Change)
{ // 文件列表改变
    if (FileList->Selected != NULL)
       CopyButton->Enabled = true;
    else
       CopyButton->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ToolsASCIIItemClick(TObject *Sender)
{ // 选择了“工具”菜单的“文本传输”项
    FTP->Type_ (ftpAscii);
    ToolsASCIIItem->Checked = true;
    ToolsBinaryItem->Checked = false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ToolsBinaryItemClick(TObject *Sender)
{ // 选择了“工具”菜单的“二进制传输”项
    FTP->Type_ (ftpBinary);
    ToolsBinaryItem->Checked = true;
    ToolsASCIIItem->Checked = false;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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