 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 1 樓
|
發表於: 星期六 一月 29, 2005 11:26 am 文章主題: grid如何讓recordmark的黑色小箭頭同步移動 |
|
|
vfp6.0
按(上)下一筆按鍵時,如何能讓recordmark的黑色小箭頭同步移動
而不用自己拉捲軸小箭頭才移動
在grid中,如何偵測現在點選的列,是首,末,上,下筆,因為想和
首末上下筆按鍵組同步;例如:末筆時,下末筆會disabled的效果,
謝謝 |
|
回頂端 |
|
 |
小賴
註冊時間: 2004-12-27 文章: 476
第 2 樓
|
發表於: 星期六 一月 29, 2005 11:55 am 文章主題: |
|
|
移動記錄後Grid1.Refresh可重罝黑色小指標
使用RECNO(), RECCOUNT() 函數測知記錄是
否指到第一筆或最後一筆
RECCOUNT() = 0 : 資料表格無任何記錄 四個Command階Disabled
RECCOUNT() = RECNO() 記錄指到最後一筆; 下與未之Command Disabled
RECNO() = 1 記錄指到第一筆, 或無記錄, 上與首之Command Disabled
.......
詳細指令請自行測試 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 3 樓
|
發表於: 星期六 一月 29, 2005 1:31 pm 文章主題: |
|
|
小賴 寫到: | 移動記錄後Grid1.Refresh可重罝黑色小指標
使用RECNO(), RECCOUNT() 函數測知記錄是
否指到第一筆或最後一筆
RECCOUNT() = 0 : 資料表格無任何記錄 四個Command階Disabled
RECCOUNT() = RECNO() 記錄指到最後一筆; 下與未之Command Disabled
RECNO() = 1 記錄指到第一筆, 或無記錄, 上與首之Command Disabled
.......
詳細指令請自行測試 |
感謝小賴大的回應
報告一下小弟之前的試驗
弟有在click中去refresh grid,但似乎無效,一定要拉捲軸才行
也有試過在click中執行grid的scrolled事件,捲軸有被拉動,但指標沒跟著同步移動
RECCOUNT() = 0似乎對已deleteMark的資料仍會算進去,即使已於主索引
設定filter為not deleted()
我現在是用count for去計算,但會使指標移到eof,因此要先記錄目前的recno(),
以便back to 原記錄
不知是否因為有對table先做過排序動作的關係
,我發現grid中的第一筆資料,它的recno()並非1,
因而無法用recno()=1,判斷此時首筆該disabled
不知grid是否有可以抓座標或方向的事件
判斷我是點選grid中的首筆,末筆或上,下筆 |
|
回頂端 |
|
 |
小賴
註冊時間: 2004-12-27 文章: 476
第 4 樓
|
發表於: 星期六 一月 29, 2005 2:23 pm 文章主題: |
|
|
小指標經Grid1.refresh後重置我試了幾次都沒問題
因此你的這問題我就不得而知了
倒是資料表格在有INDEX與Filter的情況要確認指標位置
還真是不容易;如果你只要確認的只是第一筆或最後一筆
不妨考慮如下最笨的程式碼(這種笨方法有誰需要我提示
我還真不是普通笨)
SKIP
IF EOF()
GO BOTTOM
&& 已到尾; 看你要幹嘛
ELSE
SKIP -1
ENDIF
SKIP -1
IF BOF()
GO TOP
&& 已到首; 看你要幹嘛
ELSE
SKIP
ENDIF
Thisform.Grid1.Refresh |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 5 樓
|
發表於: 星期六 一月 29, 2005 4:40 pm 文章主題: |
|
|
小賴 寫到: | 小指標經Grid1.refresh後重置我試了幾次都沒問題
因此你的這問題我就不得而知了
|
我想到了
應該是我去count for(指標移動了)動作,放的位置不太對導致 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 6 樓
|
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 7 樓
|
發表於: 星期日 一月 30, 2005 9:24 pm 文章主題: |
|
|
黑色小箭頭同步移動 -- > 試看看 thisform.grid.columns(1).text1.setfocus() _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 8 樓
|
發表於: 星期一 一月 31, 2005 2:04 am 文章主題: |
|
|
garfield 寫到: | 黑色小箭頭同步移動 -- > 試看看 thisform.grid.columns(1).text1.setfocus() |
感謝garfield大的指點,的確可以了
而且setfocus時,方格會變藍色的,
看起來清楚多了
grid.refresh的方式感覺怪怪的,有一次有成功
其他次都失敗,可能是焦點跑掉了 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 9 樓
|
發表於: 星期一 一月 31, 2005 10:18 pm 文章主題: Re: grid如何讓recordmark的黑色小箭頭同步移動 |
|
|
jms7275 寫到: | vfp6.0
在grid中,如何偵測現在點選的列,是首,末,上,下筆,因為想和
首末上下筆按鍵組同步;例如:末筆時,下末筆會disabled的效果,
|
自答一下,想到寫法了,在Grid的AfterRowColChange事件裡
SKIP -1
IF BOF()
GOTO top
thisform.isbof=.t.
thisform.iseof=.f.
thisform.pos(1,1)=1 &&首筆
ELSE
SKIP 2
IF EOF()
GOTO bottom
thisform.isbof=.f.
thisform.iseof=.t.
thisform.pos(1,1)=3 &&末筆
ELSE
SKIP -1
thisform.isbof=.f.
thisform.iseof=.f.
thisform.pos(1,1)=2 &&非首亦非末筆
ENDIF
ENDIF
commandButton_Group.refresh
&&利用thisform.pos(1,1)的值讓command_Group refresh時做改變
&&宣告thisform.pos(3,1),因為有三個grid共用這組按鈕 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|