| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		logan1109
 
 
  註冊時間: 2009-06-09 文章: 24
 
  第 1 樓
  | 
		
			
				 發表於: 星期日 九月 13, 2009 6:31 pm    文章主題: 請問如何得知目前滑鼠指標所在位置 | 
				     | 
			 
			
				
  | 
			 
			
				請問如何得知目前滑鼠指標所在位置
 
 
條件:
 
有個 TEXT 的 VALUE="1234567890"
 
 
例如:
 
當滑鼠指標停在 4 跟 5 的中間閃爍
 
1234|567890
 
 
結果:
 
想要在 4 跟 5 的中間插入文字 "ABCD"
 
cTmp=THISFORM.TEXT.VALUE
 
nLen=4  <== 如何得知為 4
 
return substr(cTmp,1,nLen)+"ABCD"+substr(cTmp,nLen+1)
 
 
問題:
 
當LostFocus 時,該如何得知滑鼠指標停在 4 跟 5 的中間
 
 
 
請指教
 
感謝 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 2 樓
  | 
		
			
				 發表於: 星期日 九月 13, 2009 10:20 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我記得 textbox 或 editbox 中有一個屬性可以取得滑鼠指標的起始位置
 
您先去查一下 vfp help | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		pilipala
 
 
  註冊時間: 2009-05-13 文章: 75
 
  第 3 樓
  | 
		
			
				 發表於: 星期一 九月 14, 2009 8:01 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				SelStart 屬性
 
 
傳回使用者在控制項文字輸入區域選定文字的起始點,或者若沒有選定文字,則表示出插入點的位置。也可以指定控制項的文字輸入區域中文字選擇的開始點。設計時期不可用,執行時期可讀寫。
 
 
 
 [Form.]Control.SelStart[= nStart]
 
 
 
傳回值
 
nStart 
 
 
指定選定文字的起始點,或者若沒有選定文字,則表示出插入點的位置。選定的文字以陰影顯示。該設定的有效範圍從 0 到控制項編輯區域中字元的總數。 
 
說明
 
適用於:下拉式列示方塊 | 文書編輯方塊 | 數值微調器 | 文字輸入方塊
 
 
使用這個屬性與 SelLength 屬性和 SelText 屬性的結合,可以完成以下任務:
 
 
在字元字串內設定插入點。
 
 
建立一個限制插入點位置的插入範圍。
 
 
選定控制項中一組特定的字元 (子字串)。
 
 
清除文字。
 
 
處理這些屬性時,要注意以下行為:
 
設定 SelLength 屬性小於 0 將導致一個執行錯誤。
 
設定 SelStart 屬性大於文字長度,將設定該屬性為實際的文字長度。改變 SelStart 屬性將改變原有選擇為一個插入點,並設定 SelLength 屬性為 0。
 
設定 SelText 屬性為一個新值,將設定 SelLength 屬性為 0,並用新字串替換選定的文字。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		Abel
 
 
  註冊時間: 2005-03-14 文章: 189 來自: 鹿港小鎮
  第 4 樓
  | 
		
			
				 發表於: 星期一 九月 14, 2009 1:51 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這個問題也曾經困擾我許久,最近寫了個測試程式,
 
 
剛好可以給 先進參考 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		logan1109
 
 
  註冊時間: 2009-06-09 文章: 24
 
  第 5 樓
  | 
		
			
				 發表於: 星期一 九月 14, 2009 10:19 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				感謝指教
 
答案就是 SelStart 屬性
 
 
cTmp=THISFORM.TEXT.VALUE 
 
nLen=THISFORM.TEXT.SELSTART <== 答案
 
return substr(cTmp,1,nLen)+"ABCD"+substr(cTmp,nLen+1) 
 
 
原來如此
 
感謝各位的指教    | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		guku1101
 
 
  註冊時間: 2006-07-03 文章: 84 來自: 高雄
  第 6 樓
  | 
		
			
				 發表於: 星期三 一月 06, 2010 7:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果text 的CONTORSOURCE 是變數 SELSTART 傳回值都為0 請問有解決的辦法嗎~謝謝 _________________ BB | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		logan1109
 
 
  註冊時間: 2009-06-09 文章: 24
 
  第 7 樓
  | 
		
			
				 發表於: 星期三 一月 06, 2010 7:47 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				請問是在問這個 ControlSource 嗎?
 
 
據我所了解
 
SELSTART和ControlSource因該是沒什麼關係
 
ControlSource只是 "顯示" 資料的內容
 
重點在於 "滑鼠的指標所停留的位置"
 
 
好像是在 GotFocus 的時候才會依照滑鼠停留的位置,更改 SELSTART 的值
 
正確是在什麼時候變更 SELSTART 的值小弟是不確定
 
不過確定的是,滑鼠 "點下去" text 的時候 SELSTART 的值就會改變 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		mp484
 
 
  註冊時間: 2006-08-08 文章: 84
 
  第 8 樓
  | 
		
			
				 發表於: 星期五 一月 08, 2010 9:44 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果text 的CONTORSOURCE 是變數 SELSTART 傳回值都為0 請問有解決的辦法嗎~謝謝
 
 
Text的Format屬性不可設為K,否則Selstart都會為0 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |