2018年3月29日 星期四

BCB 選擇路徑(資料夾)

BCB 選擇路徑(資料夾)


工作關係要將各式各樣的資料彙整並輸出
各式各樣的資料都放在同一目錄下
所以在設計程式就必須設計可以給使用者選擇目錄
但BCB10似乎沒有這種元件
(其實有 DirectoryListBox 但我駕馭不了)

於是Google發現大家用的是 SelectDirectory();
網路上大大們說有 2 種版本

Boolean SelectDirectory(AnsiString Directory, TSelectDirOpts Options, Longint HelpCtx);
Boolean SelectDirectory(const AnsiString Caption, const BSTR Root, AnsiString Directory, TSelectDirExtOpts Options = [sdNewUI], TWinControl * Parent = nil);

一個是 Windows 的對話框,一個是 BCB 自己的
但我試不出來兩個似乎都長一樣
不知道是 BCB10 的改動還是我用錯

以下是程式碼 ( 第2種版本 )
#include <vcl .filectrl.hpp>
void __fastcall TMainForm::BitBtn1Click(TObject *Sender)
{
    String str;
    TSelectDirExtOpts opt;
    opt += TSelectDirExtOpts()<<sdShowEdit;
    opt += TSelectDirExtOpts()<<sdValidateDir;
    if (SelectDirectory(L"Please Select a Directory", L"", str, opt, this))
        LabeledEdit1->Text = str;
}

SelectDirectory 共輸入了 5 個參數

第一個 Caption = 對話框顯示的字

第二個 Root = 根路徑

第三個 Directory = 選擇的字串

第四個 Options = 對話框樣式

第五個 不清楚,自己理解是 選擇 this 等於我按"這個" Button 這元件就會跳出來

其中 TSelectDirExtOpts 參數可以參考官方文件


參考資料
http://hcl123.blogspot.tw/2012/09/using-open-directory-dialog-box-in-bcb.html

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/FileCtrl_SelectDirectory@string@TSelectDirOpts@Longint.html

Related Posts:

  • Node.js - 支援 ES6 module Nodejs 支援 ES6 module     要讓 nodejs 去支援 ES6 module,必須去改寫 package.json。     開啟一個新的 nodejs project 首先是 node package manager npm init # 應該會有一堆要填的,若沒任何想法可以改下 npm init -y 自動幫你填完 這時候多一個 package.… Read More
  • 重新踏入網頁開發 (2) - ES6 模組化     Ryan Dahl 創造的 node.js 專案之所以如此重要, 是因為其理念為 模組(module), 讓 javascript 的大規模專案得以實現, 也讓 javascript 可以做伺服器端程式設計。 node.js 的模組     這裡示範 node.js 原生的模組, moduleA.js // 想像這裡有隱藏程式碼 // # var modul… Read More
  • 重新踏入網頁開發 (3) - Route Route ( URL )     通過不同的 URL 去區別不同請求 Server.js import http from 'http' import url from 'url' function onRequest(request, response) { // 會紀錄 request url var path_na… Read More
  • 重新踏入網頁開發 (4) - Dependency injection 耦合性 (Coupling,dependency)     耦合性是指一程式中,模組及模組之間資訊或參數依賴的程度。低耦合性是結構良好程式的特性,低耦合性程式的可讀性及可維護性會比較好。舉例來說 Module A 使用了 Module B 功能, 今天 Module B 更改了功能而造成 Module A 必須也更改使用其功能的邏輯, 則會說 Module A 對 Module B 依賴程度高, 具有高耦合性。所以你要維護 … Read More
  • LINUX - cURL 筆記 cURL - Client URL     cURL is a command-line tool for getting or sending data including files using URL syntax。網站在開發 Restful API 時,測試會用到的最基本工具。這邊紀錄一些常用的參數 基本的 request # Default 是 GET curl http://loca… Read More

0 意見:

張貼留言

Popular Posts