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

請問如何利用timer設計當使用者在10分內未按任何鍵,則強迫將form關閉,謝謝。

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



註冊時間: 2004-12-27
文章: 45


第 1 樓

發表發表於: 星期四 九月 01, 2005 2:23 am    文章主題: 請問如何利用timer設計當使用者在10分內未按任何鍵,則強迫將form關閉,謝謝。 引言回覆

請問如何利用timer設計當使用者在10分內未按任何鍵,則強迫將form關閉,謝謝。
回頂端
檢視會員個人資料 發送私人訊息
bin1x



註冊時間: 2004-08-27
文章: 462


第 2 樓

發表發表於: 星期四 九月 01, 2005 9:33 am    文章主題: 引言回覆

哈哈動腦時間到
在form 中
加入個timer
interval 原先不清楚mili seconds 對於10分鐘的意義
後來用我較熟悉的函數seconds()
找到了10分鐘是10秒鐘的60倍,而10秒鐘=10000
timer.timer 中加了thisform.release,搞定
至於10分鐘內有無keypress
用個flag 代表狀態
若無keypress 設成false有參數可用
在timer.timer事件中判定,很好玩的哩
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
liangszpt



註冊時間: 2004-11-18
文章: 263
來自: な东省深圳市

第 3 樓

發表發表於: 星期四 九月 01, 2005 5:25 pm    文章主題: 引言回覆

1 先学会ON KEY LABEL 的用法
2 增加FORM的一个属性KEYFLAG
3 在FORM.INIT里面把键盘上面的键都用ON KEY LABEL定义好,例ON KEY LABEL A  _screen.activeform.keyflag='T',
  THISFORM.KEYFLAG='F'
4 然后用TIMER设定每10分钟检查THISFORM.KEYFLAG的值,如果为'F',说明用户没有操作过,可以关闭窗口(thisofrm.release)

但不知怎么测出有没有动过MOUSE
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
bin1x



註冊時間: 2004-08-27
文章: 462


第 4 樓

發表發表於: 星期四 九月 01, 2005 7:36 pm    文章主題: 引言回覆

代碼:

LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode > 0
   thisform.flag = .t.
endif

表示有按鍵,mouse 有mouse move 事件
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
lcm



註冊時間: 2004-12-27
文章: 45


第 5 樓

發表發表於: 星期一 九月 05, 2005 11:43 pm    文章主題: 引言回覆

需要再加入各個控制項的mousemove,keypress等,就以了,謝謝。
回頂端
檢視會員個人資料 發送私人訊息
nelsonchuang



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

第 6 樓

發表發表於: 星期二 十一月 01, 2005 3:50 pm    文章主題: Re: 請問如何利用timer設計當使用者在10分內未按任何鍵,則強迫將form關閉,謝謝。 引言回覆

lcm 寫到:
請問如何利用timer設計當使用者在10分內未按任何鍵,則強迫將form關閉,謝謝。

1.先取2個變數記下滑鼠之X,Y軸之位置,1個變數記下記時器計算時間.
2.在FORM中加入一記時器.
3.當FORM啟動時,啟動記時器.
4.假設記時器每30秒檢測一次(也可以2分鐘),將時間記到第一項的變數中.
5.檢查現在滑鼠之X,Y軸是否和先前之位置相同(檢查這個就夠啦!這年頭那有人打了10分鐘的電腦,滑鼠連
不小心碰都碰不到.除非沒裝!)
6.位置和先前相同時,把記時歸0
7.當記時到了10分鐘.結束FORM

這樣子應該夠清楚了吧!至於元件請自行參考HELP.
4年前我也寫了一個,專門用來對付佔著毛坑不拉"死"的USER
不過注意哦!!!!!!!!!!!!!!!!!!!!!!!!!!當使用者給你開啟預覽列印後10分鐘,再關它,會出現錯誤訊息!

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



註冊時間: 2005-10-27
文章: 6


第 7 樓

發表發表於: 星期二 十一月 01, 2005 7:40 pm    文章主題: 引言回覆

*FORM新增一个方法 mymousemove
*
* form.init
*---------------------
This.AddProperty('is_key',.F.)
This.AddProperty('no_key_time',0)
This.KeyPreview=.T.
THIS.timer1.Interval=60000 &&

For Each oo As Object In Thisform.Objects
If Upper(oo.Class)<>Upper('TIMER')
Bindevent(oo,'mousemove',Thisform,'mymousemove')
Endif
Endfor*
*form keypress
*----
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nkeycode>0
this.is_key=.t
thisform.timer1.Reset
ENDIF
*
* FORM.TIME1.TIMER事件
*
If Not Thisform.is_key
Thisform.no_key_time = Thisform.no_key_time + 1
If Thisform.no_key_time>=10
Release Thisform
Endif
ELSE
thisform.is_key=.f.
Thisform.no_key_time=1
Endif
*
*form mymousemove
*
LPARAMETERS nButton, nShift, nXCoord, nYCoord
thisform.is_key=.t.
thisform.timer1.Reset
回頂端
檢視會員個人資料 發送私人訊息
小賴



註冊時間: 2004-12-27
文章: 476


第 8 樓

發表發表於: 星期二 十一月 01, 2005 8:08 pm    文章主題: 引言回覆

TO:newsonchuang兄
以mrow(), mcol()記錄mouse座標,檢測mouse是否動過 ;
確實較為乾淨俐落, 好方法 ! 小弟受教了, 感謝分 Wink
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 9 樓

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

jmforu, 兄寫的也不錯,
用Bindevent 方式, 改寫每個物件的 鍵盤及MOUSE method
各有巧妙之處.

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
小賴



註冊時間: 2004-12-27
文章: 476


第 10 樓

發表發表於: 星期三 十一月 02, 2005 11:53 am    文章主題: 引言回覆

就方法來論jmforu的方式需要較高的程式技巧;
且BINDEVENT() VFP8.0後才支援.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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