全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:755
推到 Plurk!
推到 Facebook!

GBGrid元件超連結

尚未結案
sundy6719
初階會員


發表:136
回覆:78
積分:42
註冊:2002-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-28 13:03:43 IP:203.70.xxx.xxx 未訂閱
GBGrid元件在欄位內設計超連結嗎 因我想要在DBGrid元件內輸入一些資料而這些資料都有一些產品編號而這些產品編號則和其它的資料庫有超連結
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-28 16:50:48 IP:202.62.xxx.xxx 未訂閱
您好﹗    試試如下方法﹕ 1. 利用程式碼將DBGrid中的此超連接欄位控制無法Key In﹐只能使用Enter鍵使其Focus移到下一個欄位﹐使用者無法在此處輸入資料﹐只能對其PickList中已有的屬性值做選擇﹐相關語法如下﹕ DBGrid1元件的OnKeyPress事件中﹕
begin
  if (DBGrid1.SelectedIndex = 4) and (DBGrid1.SelectedIndex < DBGrid1.FieldCount -1) then
  //假設此欄位在DBGrid1中的順序編號為4
  begin
    if Key <> #13 then
    //如果不是触發Enter鍵
      Key := #0;
    else
      DBGrid1.SelectedIndex := DBGrid1.SelectedIndex   1;
  end;
end;
2. 在有超連接的其它資料集元件(ADOTable2)的AfterPost事件中﹐將其超連接欄位值加入到上述之DBGrid1元件的Column之PickList屬性中﹐相關語法如下﹕
begin
  ADOTable2.First;
  While Not ADOTable2.EOF do
    begin
      DBGrid1.Column[4].PickList.Clear;
      //先對PickList做清空動作      
      DBGrid1.Column[4].PickList.Add(ADOTable2.Fields.Fields[1].AsString;
      //ADOTable2的超連接欄位順序為1﹐欄位形態以String為例
      ADOTable2.Next;
    end;
  end;
end;
3. 在ADOTable2元件的AfterDelete事件中共用AfterPost事件中的程式碼 結果﹕完成如上步驟之后﹐當使用者在DBGrid元件的Column[4]欄位中無法輸入資料﹐只能對其PickList中的資料做選擇﹐而PickList中的資料會隨ADOTable2中對應的資料表的異動而產生相對應的異動﹒ ========================= 大病初愈﹐休養調整中... =========================
------
忻晟
系統時間:2024-06-13 21:13:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!