C++Builder(簡稱 CB)作為 Borland 繼 Delphi 後推出的 RAD 工具,以 C++ 語言為核心,保留 Delphi 的視覺化開發體驗,能產出高效能原生碼。本文帶領讀者從零開始,使用 CB 建立一個功能類似 Windows 記事本的文本編輯器,快速體驗 CB 的開發魅力。
| 元件類別 | Name | 關鍵屬性 |
|---|---|---|
| TMemo | edit | — |
| TButton | bopen | Caption="open" |
| TButton | bsave | Caption="save" |
| TButton | bexit | Caption="exit" |
| TOpenDialog | opendialog | — |
| TSaveDialog | savedialog | — |
// 表單建立:初始化狀態
void __fastcall TForm1::FormCreate(TObject *Sender)
{
bsave->Enabled = false; // 存檔鈕預設禁用
edit->Lines->Clear(); // 清空編輯區
edit->Enabled = false; // 編輯區預設禁用
}
// 開啟檔案:處理未存檔提示與載入
void __fastcall TForm1::bopenClick(TObject *Sender)
{
if (edit->Modified) {
int yn = Application->MessageBox("檔案已修改,是否儲存?", "開啟", MB_YESNO | MB_ICONQUESTION);
if (yn == IDYES) edit->Lines->SaveToFile(savedialog->FileName);
}
edit->Enabled = true;
if (opendialog->Execute()) edit->Lines->LoadFromFile(opendialog->FileName);
edit->Modified = false;
bsave->Enabled = false;
}
// 儲存檔案
void __fastcall TForm1::bsaveClick(TObject *Sender)
{
if (savedialog->Execute()) edit->Lines->SaveToFile(savedialog->FileName);
edit->Modified = false;
bsave->Enabled = false;
}
// 內容變更:啟用存檔鈕
void __fastcall TForm1::editChange(TObject *Sender)
{
bsave->Enabled = true;
}
// 離開
void __fastcall TForm1::bexitClick(TObject *Sender)
{
Close();
}
TMemo 內建 Modified 屬性自動追蹤內容變更,配合 editChange 事件即時啟用存檔鈕,體驗流暢。Modified,彈出確認對話框避免資料遺失。Modified=false 並禁用存檔鈕,確保 UI 與資料狀態一致。TOpenDialog/TSaveDialog 封裝系統檔案選擇器,跨平台相容性佳。TActionList 統一管理命令,支援工具列/選單/快捷鍵多入口TPageControl + 多 TMemo)這個極簡版編輯器雖功能基礎,卻完整展示了 CB 視覺化開發的核心流程:拖放元件 → 設定屬性 → 撰寫事件處理 → 編譯執行。幾分鐘內即可產出可用應用,這正是 CB 作為 RAD 工具的最大價值所在。