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

如何获得行数并回到刚才的行上?

答題得分者是:P.D.
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-26 12:53:52 IP:220.184.xxx.xxx 訂閱

各位大大,小弟又有问题求教:
比如说,我当前的游标在dbgrid1的第x行上,那么我要如何得到这个行数?
同时,当我操作了
adotable1.Active:=false;
adotable1.Active:=true;
后,游标还能回到刚才的行位置上?

不胜感激!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-28 16:50:21 IP:61.67.xxx.xxx 未訂閱
DBGRID中的任何有關行數指標的用法都是指向當頁的位置, 例如, 一頁有17行, 你現在位於第5行, 但你翻了兩頁之後(即通過34行), 當你回頭指定第5行, DBGRID是回到畫面上的第5行, 而不是-34行的第5行, 所以建議你直接向 ADOQUERY 的指標位置下手是比較實際
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-28 20:44:25 IP:58.100.xxx.xxx 訂閱
谢谢P.D.版主的关注,我本来是用bookmark来实现这个功能的,但后来发现只要一执行
adotable1.active:=false;
adotable1.active:=true; (执行这二行code,是因为adotable1中的内容发生了变化,所以想在dbgrid中也同步变化)

后,游标就会回来dbgrid的第一行,而不是回到bookmark指定的那一行,不知有没有好的办法?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-29 12:16:44 IP:118.168.xxx.xxx 未訂閱
您好,

bookmark 只是記錄當時位置,
您在 active := fasle 再 active := true 後有再用 gotobookmark 讓他回到 bookmark 那一筆嗎?


===================引 用 luowy651 文 章===================
谢谢P.D.版主的关注,我本来是用bookmark来实现这个功能的,但后来发现只要一执行
adotable1.active:=false;
adotable1.active:=true; (执行这二行code,是因为adotable1中的内容发生了变化,所以想在dbgrid中也同步变化)

后,游标就会回来dbgrid的第一行,而不是回到bookmark指定的那一行,不知有没有好的办法?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-29 16:19:55 IP:220.184.xxx.xxx 訂閱
是的,正如st33chen大大所言,不知能不能做到

===================引 用 st33chen 文 章===================
您好,

bookmark 只是記錄當時位置,
您在 active := fasle 再 active := true 後有再用 gotobookmark 讓他回到 bookmark 那一筆嗎?

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-29 16:48:06 IP:61.67.xxx.xxx 未訂閱
之前我也一直為這個bookmark 所困擾, 在ktop中討論後發現 bookmark 的指標在active:=flase時即已消滅(但有時又不會), 所以顯示bookmark的狀況並不是很穩定的支援, 再者對sql的資料庫結構, 條件不同所造成的bookmark又是另一回事了, 所以要藉由bookmark來取得最初的位置真的很困難!
===================引 用 st33chen 文 章===================
您好,

bookmark 只是記錄當時位置,
您在 active := fasle 再 active := true 後有再用 gotobookmark 讓他回到 bookmark 那一筆嗎?


===================引 用 luowy651 文 章===================
谢谢P.D.版主的关注,我本来是用bookmark来实现这个功能的,但后来发现只要一执行
adotable1.active:=false;
adotable1.active:=true; (执行这二行code,是因为adotable1中的内容发生了变化,所以想在dbgrid中也同步变化)

后,游标就会回来dbgrid的第一行,而不是回到bookmark指定的那一行,不知有没有好的办法?
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-12-29 17:55:33 IP:61.219.xxx.xxx 未訂閱
完整的解答,或說客戶滿意的答案不僅是Close/Open後游標要回到DBGrid那一筆,
還要回到Close前的那筆那欄,才行。
如果BookMark不行,就不要用BookMark,很多多西可以用阿。
------
Kevin
編輯記錄
kevin2004 重新編輯於 2008-12-29 17:56:20, 註解 無‧
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-12-30 11:11:37 IP:220.184.xxx.xxx 訂閱
我现在就是用这个方法解决了,我先在close前用另一个adoquery2, 把当前的记录保存,然后在open后,再用locate把游标定位到刚才用adoquery2保存下来的条件上
===================引 用 P.D. 文 章===================
......所以建議你直接向 ADOQUERY 的指標位置下手是比較實際
系統時間:2024-05-07 2:06:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!