VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

關於 SelStart 一直無法如人所願的問題終於發現了

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
jerryclt



註冊時間: 2009-03-10
文章: 334
來自: 佛心來的

第 1 樓

發表發表於: 星期五 三月 11, 2011 11:25 am    文章主題: 關於 SelStart 一直無法如人所願的問題終於發現了 引言回覆

可能有很多人和我一樣在控制游標位置方面被搞得火冒三丈,
今天總算找到原兇了...

原來是我在 controlsource 內放入陣列變數,
導致 SelStart 老是給我不正確的數值,
例如我宣告了一個和TABLE的欄位數一樣的陣列 aTableField[10],
然後在每個 textbox 的 controlsource 內分別放入對應陣列,
textbox1 : aTableField[1]
textbox2 : aTableField[2]
.
.
.
用意是做為在存檔時比對欄位是否有更改過,
結果就造成了我從FOXPRO 2.5以來的困擾,
大概很少有人像我這樣搞吧!
希望本篇能給和我一樣雞婆的同志有點兒助益.



p.s.太爽了,來企吃大餐慰勞自己一番 ^^"
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 2 樓

發表發表於: 星期五 三月 11, 2011 11:46 am    文章主題: 引言回覆

還是不太懂?
用陣列跟資料比對這部分可以理解
但這跟SelStart 又有啥關係???

煩請賜教
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 3 樓

發表發表於: 星期五 三月 11, 2011 7:39 pm    文章主題: Re: 關於 SelStart 一直無法如人所願的問題終於發現了 引言回覆

jerryclt 寫到:
可能有很多人和我一樣在控制游標位置方面被搞得火冒三丈,
今天總算找到原兇了...

原來是我在 controlsource 內放入陣列變數,
導致 SelStart 老是給我不正確的數值,
例如我宣告了一個和TABLE的欄位數一樣的陣列 aTableField[10],
然後在每個 textbox 的 controlsource 內分別放入對應陣列,
textbox1 : aTableField[1]
textbox2 : aTableField[2]
.
.
.
用意是做為在存檔時比對欄位是否有更改過,
結果就造成了我從FOXPRO 2.5以來的困擾,
大概很少有人像我這樣搞吧!
希望本篇能給和我一樣雞婆的同志有點兒助益.



p.s.太爽了,來企吃大餐慰勞自己一番 ^^"

應該跟controlsource沒關係吧!

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
jerryclt



註冊時間: 2009-03-10
文章: 334
來自: 佛心來的

第 4 樓

發表發表於: 星期日 三月 13, 2011 6:19 am    文章主題: 引言回覆

如附件 text1.value='12345'
無論游標是停在哪裡,
您按下Alt+1都會正確地貼上一個字,
並且正確地重算 SelStart 的值,
但是只要你輸入了什麼 比如在3的位置鍵入A ==> 123A|45
這時再去按 Alt+1 結果就不是我們所預測的 123A+|45
而是 +|123A45

以上個人推測有一個隱荿性的問題在其中,
text1.controlsource 的 _d[1] 在您按下組合鍵的同時並不是 123A45


接著我們把 text1 的 controlsource 的 _d[1] 拿掉,
可以發現 text1 變正常了,
但 text2 一樣回傳一個不正確的 SelStart 值

所以您說沒有關係?
這關係和我糾纏了廿幾年了 >"<
致於到底是什麼關係造成的,
老灰啊我已經測到越來越給他迷糊了,
只能靠實力堅強的狐友們把這關係給揪出來!
回頂端
檢視會員個人資料 發送私人訊息
DennisTsai



註冊時間: 2005-07-26
文章: 178


第 5 樓

發表發表於: 星期日 三月 13, 2011 8:58 am    文章主題: 引言回覆

沒關係的硬要攀關係!
被攀關係的搞不清到底有何關係!
攀關係的口口聲聲說是真的有關係!
一點都沒關係的就@#$%^&*
純屬玩笑!不要介意!因我是那"一點都沒關係的"
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 6 樓

發表發表於: 星期日 三月 13, 2011 11:56 pm    文章主題: 引言回覆

ALT+1我猜測是您有設定好的某設定字串 在A之後按ALT+1是為了插入某字串
有沒有可能是動用到某函數之後 而讓TEXT裡面的游標自動從頭或到尾改變了游標位置
例如LOSTFOCUS之類的

我不認為在按下A之後 再按ALT+1之前沒辦法取得游標位置 進而直接去塞入字串

=================
另外我試過您所上傳的程式
我在不修改的狀況之下測試
唯一怪怪的地方就是在少數時候TEXT1語TEXT2跳換時(還未按按鈕)
游標會自動跑到最左邊 而不會是我滑鼠所要點到的那個位置
其它的"貼上"功能都能貼到正確位置
並沒有突然跑到最左邊去貼入字的狀況

我是建議您在"貼上"這邊最後一行並不需要重新SETFOCUS
畢竟你已經在1跟2的LOSTFOCUS抓過SELSTART了
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
jerryclt



註冊時間: 2009-03-10
文章: 334
來自: 佛心來的

第 7 樓

發表發表於: 星期一 三月 14, 2011 8:13 am    文章主題: 引言回覆

LiuRambo 寫到:
ALT+1我猜測是您有設定好的某設定字串 在A之後按ALT+1是為了插入某字串
有沒有可能是動用到某函數之後 而讓TEXT裡面的游標自動從頭或到尾改變了游標位置
例如LOSTFOCUS之類的

我不認為在按下A之後 再按ALT+1之前沒辦法取得游標位置 進而直接去塞入字串

=================
另外我試過您所上傳的程式
我在不修改的狀況之下測試
唯一怪怪的地方就是在少數時候TEXT1語TEXT2跳換時(還未按按鈕)
游標會自動跑到最左邊 而不會是我滑鼠所要點到的那個位置
其它的"貼上"功能都能貼到正確位置
並沒有突然跑到最左邊去貼入字的狀況

我是建議您在"貼上"這邊最後一行並不需要重新SETFOCUS
畢竟你已經在1跟2的LOSTFOCUS抓過SELSTART了


測試重點在於.....隨便打幾個字後馬上按Alt+1 (用滑鼠點和按Alt+1是不同的),
您就可以發覺奧妙之處!
而解決這個奧妙的現象就是 => 拿掉 text1 內 controlsource 的內含值.

另外...在[貼上]處的SETFOCUS是要回到text1或text2用.
要拿掉也可以,
只是要看實際設計時 Alt+1 內的複雜程度!
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 8 樓

發表發表於: 星期一 三月 14, 2011 9:48 am    文章主題: 引言回覆

那...可以請教一下前輩
我查看HELP裡面:「對任何與 ALT 鍵的組合鍵,KeyPress 事件不會發生。
既然已知按了ALT複合鍵會無法攔截,是不是您要考慮用其他方式去變化您要的字串
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
jerryclt



註冊時間: 2009-03-10
文章: 334
來自: 佛心來的

第 9 樓

發表發表於: 星期一 三月 14, 2011 7:24 pm    文章主題: 引言回覆

LiuRambo 寫到:
那...可以請教一下前輩
我查看HELP裡面:「對任何與 ALT 鍵的組合鍵,KeyPress 事件不會發生。
既然已知按了ALT複合鍵會無法攔截,是不是您要考慮用其他方式去變化您要的字串


只要將表單的 keypreview 設為 .F.
就可以用 keypress 攔截任何 ALT 組合鍵...
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作