2018年4月1日 星期日

BCB 筆記1 (MessageBox、ComboBox)

寫有介面的程式時常會需要跳出訊息
這裡介紹Application->MessageBox int MessageBox(const char* Text, const char* Caption, int Flags);

這裡沒啥好講的
想寫的幾乎都會變照抄網上的東西,所以就給連結當備份吧
1. http://yanjuns.blogspot.tw/2015/06/cbuilder-vcl.html
2. http://nelson.pixnet.net/blog/post/217684-%5Bbcb%5D-messagebox-%E7%9A%84%E5%8F%83%E6%95%B8%E8%AA%AA%E6%98%8E


如何令 ComboBox 顯示的字不會被更改

答案就是將 ComboBox style 屬性改為 csDropDownList
因為我總是用 BCB10 給的元件去設定 ( Object Inspector )
所以再寫新程式的時候,總忘記當初怎改的
( 因為公司並不會一直要求我去寫資料彙整的程式,久久寫一次 )

令 ComboBox 顯示的字不會被更改

深入了解 ComboBox 後來發現另一招
當 ComboBox 顯示框文字被修改時
會自動尋找是否為 ComboBox 其中一個 Item
是 ItemIndex 修改為該Item 的
否 ItemIndex = -1
此為 BCB10 程式碼
int tempindex;
void __fastcall TMainForm::CSTestSiteComboBoxChange(TObject *Sender)
{
    if(CSTestSiteComboBox->ItemIndex == -1){
        CSTestSiteComboBox->ItemIndex = tempindex;
    }
    tempindex = CSTestSiteComboBox->ItemIndex;
}
如上所示
文字被修改後若不屬於原有 Item (也就是ItemIndex == -1)
修改回來後達到類似無法修改的效果
通常不給修改是為了防呆
所以只能顯示範疇內的東西也是防呆的一種

Related Posts:

  • BCB OLE操作EXCEL(2) BCB 操作 EXCEL、WORD ( OLE的應用 ) 有時候再操作 EXCEL 和 WORD 的時候,有可能會要應用到 MultiProcess 的概念 但真正需要的地方很少,我自己是用偷懶的方式來避開, 因為互相搶奪導致資料錯誤出現的機率微乎其微。 下面介紹一些我常碰到的錯誤 bool __fastcall JunYe_Word::getDataTable(int index){ Variant Range; bool… Read More
  • BCB 選擇路徑(資料夾) BCB 選擇路徑(資料夾) 工作關係要將各式各樣的資料彙整並輸出 各式各樣的資料都放在同一目錄下 所以在設計程式就必須設計可以給使用者選擇目錄 但BCB10似乎沒有這種元件 (其實有 DirectoryListBox 但我駕馭不了) 於是Google發現大家用的是 SelectDirectory(); 網路上大大們說有 2 種版本 Boolean SelectDirectory(AnsiString Directory, TSelectD… Read More
  • BCB OLE操作EXCEL(1) BCB 操作 EXCEL、WORD ( OLE的應用 ) 之前有講工作關係需要彙整報告,報告不外乎 WORD、EXCEL、PDF檔 程式要操作 WORD、EXCEL 可以靠微軟的 COM(Component Object Model)或 .NET Framework. 照理說應該要用 .NET Framework ( 比較潮?? ) 但是公司前輩使用的是 COM 新人啥都不懂乖乖跟著學就對了,其實也不知道兩者實際差異 因為從來沒試過另外一種… Read More
  • BCB OLE操作EXCEL(3)在用 OLE 操作 Excel 時 有可能會遇到剪貼簿裡的資料過大 導致關閉 Excel 時跳出視窗警告 "是否放棄剪貼簿裡的資料" 要避開的話通常會用關閉 DisplayAlert 的方法來避免 但我常常失敗,原因不明。 所以給失敗的朋友另一個辦法 在 Excel 關閉前複製一格 避免剪貼簿裡資料過多跳出視窗 void __fastcall Excel::Close_2(){ Exc.Range = Exc.WorkSheet.… Read More
  • BCB Debug BCB Debug 因為工作關係接觸了 BCB10 這是我人生中第一次學 C++ 頁面打開其實不難理解但仍然迷茫了一星期 ( 公司只有一個人會,不好意思一直煩他 ) 雖然有強大的斷點功能 但我還是不太會用,應該說不習慣 加上我寫的都是小程式 所以我選擇寫一個TXT檔 來記錄LOG 程式碼如下 void BugReport(AnsiString msg) { AnsiString Path = ExtractFilePath(Appl… Read More

0 意見:

張貼留言

Popular Posts