首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Query的Locate的参数有关问题

2013-09-05 
Query的Locate的参数问题.引用心得分享 : Set (集合型態) 的使用方法Set (集合型態) 是 Object pascal 特

Query的Locate的参数问题.



引用
心得分享 : Set (集合型態) 的使用方法

Set (集合型態) 是 Object pascal 特有型態 , 在 BCB 中是用一個名為 Set 的類別來模擬
Set 型態 , 由於在 VCL 元件中有許多屬性都會利用到 Set 型態 , 所以在此介紹其使用方法

■ 加入集合元素

語法 : 集合型態原型 << 元素一 [<< 元素二] [<< 元素二] [...]

舉例 :
 
1. 在 MessageDlg 談出示對話盒中 , 若需要有兩個按鈕 "YES" & "NO"
   則使用 TMsgDlgButtons() << mbYes << mbNo 
   完整範例如 if (MessageDlg("delete Record?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
                  DataModule3->Table1->Delete();

2. 我們要將某一元件之字型設為粗體 , 使用物件檢視器(Object Inspector)來設定很簡單 , 只要在
   Font 屬性中展開 Style 次屬性 , 再將 fsBold 設為 true 即可 
   
   但在程式碼中如何做到以上動作呢 ? (以設定 Edit1 字型為粗體為例)
   Edit1->Font->Style = TFontStyles() << fsBold;
   
   若要同時設定其字型為粗體加底線 :
   Edit1->Font->Style = TFontStyles() << fsBold << fsUnderline;

■ 判斷是否含有集合元素

   □ 判斷 Edit1 目前是否為粗體字型

   if (Edit1->Font->Style.Contains(fsBold))
       ShowMessage("true");
   else
       ShowMessage("false");

   □ 判斷 KeyDown 事件中是否帶有 Shift



   void __fastcall TFm_POS1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
      {

        if (Shift.Contains(ssShift))
           {
             ......
             ......
           }
      }

   □ 註 : 根據測試 Contains() 中好像無法同時塞入兩個集合元素值 ...

■ 移除集合元素

   同 "加入集合元素" 語法 , 但只要將 "<<" 改為 ">>" 即可
   
   if (Edit1->Font->Style.Contains(fsBold))
       Edit1->Font->Style = TFontStyles() >> fsBold;


[解决办法]
qry1->Locate("id",i,TLoacteOptions());

热点排行