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

TQuery與 ( TDBEdit or TEdit ) 的配合

尚未結案
ooctiger
一般會員


發表:25
回覆:46
積分:14
註冊:2002-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-14 16:53:04 IP:61.219.xxx.xxx 未訂閱
在資料庫做上下筆移動時 Query1.Prior; Query1.Next TDBEdit元件可以做到上下筆的資料顯示 如果不使用TDBEdit而使用一般的TEdit要如何與TQuery做配合 才能達到上述TDBEdit的功能 請各位指點一下
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-14 17:18:13 IP:202.39.xxx.xxx 未訂閱
在 TQuery 的 AfterScroll 事件中 把各欄位的值指定給 TEdit, 例:
procedure TForm1.Query1AfterScroll(Dataset: TDataset);
begin
  Edit1.Text := Query1.FieldByName('Field1').AsString;
  Edit2.Text := Query1.FieldByName('Field2').AsString;
end;
不過, TDBEdit 這麼方便, 為什麼不用? --- Everything I say is a lie.
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-14 18:53:02 IP:63.84.xxx.xxx 未訂閱
您好﹗    也可將程式碼寫在DataSource元件的OnDataChange事件中﹐當資料錄指針移動時﹐即時地在Edit元件中反應出相對應的值﹕
begin
  if Query1.State = dsBrowse then
    begin
      Edit1.Text := Query1.FieldByName('Field1').AsString;
      Edit2.Text := Query1.FieldByName('Field2').AsString;
    end;
end;
小弟比較認同hagar版主的建議﹐DBEdit等資料感知元件已經通過DataSource元件的橋梁作用﹐通過屬性設定即可完成此類工作﹐省去編譯如上程式碼的部分﹐應為首選喔﹗ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
ooctiger
一般會員


發表:25
回覆:46
積分:14
註冊:2002-07-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-14 21:12:24 IP:218.172.xxx.xxx 未訂閱
不過, TDBEdit 這麼方便, 為什麼不用? 只是曾經有人建議過. 所以想要了解這其中有何不同 另外如果是做新增,存檔,刪除的動作又要如何做 敬請指教
cashxin2002
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-14 21:45:56 IP:63.84.xxx.xxx 未訂閱
您好!    DBEdit等資料感知元件可以通過Datasource元件對應資料表中的欄位, 顯示其欄位值, 并可做相對應的異動. 以其比較普通的資料輸入元件(如Edit等)的使用更為便捷, 只需要設定其Datasource屬性和DataField屬性即可, 就您的問題而言, 可使用DBEdit元件, 分別設定其DataSource屬性值和DataField屬性如下: DataSource屬性: 設定為連接資料表的DataSource元件名稱, 如DataSource1 DataField屬性: 正确設定DataSource屬性之后, DataField屬性中即可選取對應的資料表中所有的欄位名, 選擇需要對應的欄位名稱.    完成以上的步驟之后, 只需將資料集元件(如Table, Query)的Active屬性值設為True, 即將資料集元件Open, 您的資料感知元件(如DBEdit)中就是顯示對應的欄位值了, 其還有一個好處就是可以自行判斷目前資料集元件的State狀態, 如當資料集元件處于瀏覽(dsBrowse)狀態時, 即可對應顯示, 當資料集元件處于新增狀態(dsInsert)狀態時, 即可出現空白以供輸入儲存...    照以上的方法, 新建一個測試專案試一下, 再加上一個DBNavigator元件, 以用作操控資料表(可使用新增, 刪除, 修改方法等等). 您就會了解資料感知元件的作用及使用方法了.    參考看看!    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-04-27 19:18:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!