線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1282
推到 Plurk!
推到 Facebook!

有關dbgrid的問題

尚未結案
zoe888
一般會員


發表:1
回覆:1
積分:0
註冊:2004-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-09 13:06:06 IP:61.222.xxx.xxx 未訂閱
1.dbgrid SET 各欄位值(分取值時、回存前) 2.新增、刪除使用DBNavigator之功能,可以直接呼叫嗎?
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-09 16:20:14 IP:202.39.xxx.xxx 未訂閱
1.假設 DBGrid1 顯示的是 Table1 的資料, ex:
begin
  ShowMessage(Table1.FieldByName('Field1').AsString); // 取 Field1 這欄位的值
  Table1.FieldByName('Field1').AsString := '新值'; // 設定 Field1 這欄位的新的值
end;
2.
begin
  DBNavigator1.BtnClick(nbFirst); // 第一筆
  DBNavigator1.BtnClick(nbPrior); // 上一筆
  DBNavigator1.BtnClick(nbNext);  // ...
  DBNavigator1.BtnClick(nbLast);
  DBNavigator1.BtnClick(nbInsert);
  DBNavigator1.BtnClick(nbDelete);
  DBNavigator1.BtnClick(nbEdit);
  DBNavigator1.BtnClick(nbPost);
  DBNavigator1.BtnClick(nbCancel);
  DBNavigator1.BtnClick(nbRefresh);
end;
-- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。
zoe888
一般會員


發表:1
回覆:1
積分:0
註冊:2004-07-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-12 10:24:19 IP:211.21.xxx.xxx 未訂閱
1.dbgrid 在取值及set 值時,不用考慮到是第幾行嗎?如何得知dbgrid有幾行?focus目前是在第幾行?還有取值是要寫在Form5.beforepost 中嗎? 2.呼叫DBNavigator1.BtnClick(nbInsert); 時他都是insert 在focus 的上方列,如何新增到下方列呢?
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-12 11:53:21 IP:202.39.xxx.xxx 未訂閱
引言: 1.dbgrid 在取值及set 值時,不用考慮到是第幾行嗎?如何得知dbgrid有幾行? focus目前是在第幾行?還有取值是要寫在Form5.beforepost 中嗎?
您可注意到在 TDBGrid 的最左方有個三角形箭頭,它指到哪一筆(行) 所取的值就在哪一筆(行) 如果是想知道整個 Dataset 有幾筆,可使用 TDBGrid.DataSource.Dataset.RecordCount 如果是想知道 TDBGrid 一個畫面有幾筆, 參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39130 focus 在哪一筆,就是上述的箭頭指向哪一筆(行) 要取值就直接取就好了,為什麼要寫在 BeforePost Event 中?
引言: 2.呼叫DBNavigator1.BtnClick(nbInsert); 時他都是insert 在focus 的上方列,如何新增到下方列呢?
nbInsert 是在箭頭所指向位置處插入一筆 想要新增到最下方的話,可用 TDBGrid.DataSource.Dataset.Append; 的方式 -- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。
cashxin2002
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-12 11:58:01 IP:63.84.xxx.xxx 未訂閱
您好﹗    1.dbgrid 在取值及set 值時,不用考慮到是第幾行嗎?如何得知dbgrid有幾行?focus目前是在第幾行?還有取值是要寫在Form5.beforepost 中嗎?  //DBGrid在取值及Set值時(准确的說應是Table等資料集元件在取值及Set值時﹐是針對當前的資料錄(Focus)進行動作﹐所以不必考慮是第幾行嘍﹒ //取得目前資料錄的總筆數方法﹕ Label1.Caption := '總筆數為﹕' IntToStr(Table1.RecordCount); //取得當前資料錄為第幾筆方法﹕ Label2.Caption := '指針位于第﹕' IntToStr(Table1.RecNo) '筆'; //取值的時機必須在資料集元件的State屬性為﹕瀏覽狀態(dsBrowse)﹐也可說成是非關閉狀態(dsInactive)﹐非編輯狀態(dsEdit)﹐非插入狀態(dsInsert)等﹒ 2.呼叫DBNavigator1.BtnClick(nbInsert); 時他都是insert 在focus 的上方列,如何新增到下方列呢? //有一個簡單的方法就是在Insert之前﹐先將資料錄指針向下移動一筆﹐即移動指針到原Focus的下一筆資料上﹐再做Insert的動作﹐原則上就等同于Insert新資料到原Focus之后了﹐方法如下﹕
begin
  DBNavigator1.BtnClick(nbNext);  
  DBNavigator1.BtnClick(nbInsert);
end;
參考看看﹗ Sorry hagar版大﹐回覆后發現撞到您了﹐失禮失禮 :D ========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/07/12 12:11:00
------
忻晟
hagar
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-12 12:30:41 IP:202.39.xxx.xxx 未訂閱
哇咧! 本站可沒有白色恐怖哦! < >< > -- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-12 13:38:13 IP:211.23.xxx.xxx 未訂閱
來插花的。用DBNavigator1.BtnClick(nbFirst);  有點多此一舉的感覺。 用 TDBGrid.DataSource.Dataset.First; TDBGrid.DataSource.Dataset.Prior; TDBGrid.DataSource.Dataset.Next; ......    也有一樣的功能。 除了.Delete沒有尋問刪除的對話框之外,其它都一樣。        ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
系統時間:2024-05-24 1:55:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!