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

想請問DBGrid的問題:

尚未結案
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-02 19:18:34 IP:61.59.xxx.xxx 未訂閱
想請問一下,我使用一個DBGrid元件,當open起來後,DBGrid元件裡會有多筆資料,現在我希望能做到滑鼠雙擊DBGrid元件裡的某一筆資料,會再跳出另一個Form來,顯示此筆的明細資料,不知該如何撰寫呢?? 煩請各位前輩不吝指教!!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-03 04:36:10 IP:219.68.xxx.xxx 未訂閱
您好: 請在DBGrid的OnDblClick事件中寫下以下程式:
procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin
if (not Table1.IsEmpty) then//如果資料集不為空
 begin
  Form1.ID:=Table1.FieldByName('ID').AsString;//傳入主副明細的關連值
  Form1.ShowModal();
 end;
end;
然後再到開啟的Form的OnActivate事件中寫下以下程式碼:    procedure TForm1.FormActivate(Sender: TObject);
begin
Table1.Close();
Table1.SQL.Clear();
Table1.SQL.Add('Select * From Table Where ID=''' ID '''');//使用from2所傳過來的ID去找出他的明細資料
Table1.Open();
end;
以上您問題的處理方式。
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-04 13:44:08 IP:61.59.xxx.xxx 未訂閱
不好意思: 我想再問的清楚一點, DBGrid是怎麼將我目前滑鼠點到的那一筆傳到另一個form的呢?
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-04 14:11:37 IP:61.70.xxx.xxx 未訂閱
DBGrid不會幫你傳,你必須自己傳 procedure TForm2.DBGrid1DblClick(Sender: TObject); begin if (not Table1.IsEmpty) then//如果資料集不為空  begin   Form1.ID:=Table1.FieldByName('ID').AsString;//傳入主副明細的關連值 Form1.ShowModal(); end; end; 你必須在Form1定義一個叫ID的變數去接收 type TForm1 = class(TForm) Button1: TButton; DBGrid1: TDBGrid; procedure Button2Click(Sender: TObject); private { Private declarations } public ID:String; end;
系統時間:2024-06-29 16:40:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!