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

on shutdown QUIT 無法關機(已解決)

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



註冊時間: 2007-11-14
文章: 107
來自: 台中市

第 1 樓

發表發表於: 星期四 二月 10, 2011 2:54 pm    文章主題: on shutdown QUIT 無法關機(已解決) 引言回覆

如題
在主程式加了 on shutdown QUIT
(目地是 按了 _SCREEN.CLOSE 可以結束程式)
但卻影響電腦登出及關機 動做。
不先把 VFP程式結束 直接登出,需登出二次才會成功登出。
第一次登出 結束了VFP程式 --中斷了登出動做

若主程式不加 on shutdown 就不會有這情況
但會快速出現 "無法結束VFP " 的字眼 後登出(關機)

是否有網大 能幫忙 排除 電腦登出時 不出現 "無法結束 vfp" ???


ericklin 在 星期三 二月 16, 2011 3:37 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 2 樓

發表發表於: 星期四 二月 10, 2011 4:21 pm    文章主題: 引言回覆

請搜尋 "無法結束vfp"
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ericklin



註冊時間: 2007-11-14
文章: 107
來自: 台中市

第 3 樓

發表發表於: 星期四 二月 10, 2011 4:55 pm    文章主題: 引言回覆

syntech 兄 感謝回覆
站內搜尋的方法都試過了 ,可以都可順利 結束程式 也不會出現 "無法結束vfp"
但是我的問題依然存在 "需登出二次才會成功"
你那裡能否幫忙測看看 不結束程式 直接電腦 登出,是否能一次就成功?。 謝謝了
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期四 二月 10, 2011 5:51 pm    文章主題: 引言回覆

不會,一次就成功.

因為不是 "on shutdown QUIT "
而是 "on shutdown function_QUIT "
然後用搜尋到的方法處理

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ericklin



註冊時間: 2007-11-14
文章: 107
來自: 台中市

第 5 樓

發表發表於: 星期四 二月 10, 2011 6:00 pm    文章主題: 引言回覆

我貼上我的方式 請幫我check一下
在 main form 內的activate method 加了
set procedure to user_proce.prg additive
on shutdown exitapi()
read events

=================在另一個user_proce.prg
function exitapi
Local C
For C = 1 to _Screen.FormCount
If type("_Screen.ActiveForm") = "O"
_Screen.ActiveForm.Release()
Endif
Endfor
Clear events
Release all
quit
endfunc
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
LiuRambo



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


第 6 樓

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

?
假設如果還有第二層的FORM開著 又設定了WINDOWTYPE=1
這樣點結束關的掉嗎?
這不就如同直接去點X關閉一樣 關不掉吧

建議是不是要修改一下去檢查是否還有其他FORM開啟
或者換個方式去檢查_SCREEN是不是ONFOCUS
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
ericklin



註冊時間: 2007-11-14
文章: 107
來自: 台中市

第 7 樓

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

謝謝 syntech兄 指點 相信您的確認 我又用另一種方法使用,結果成功了
問題分享:
原先 依 syntech兄的方式 在 main.scx 主程式上設定 on shutdown exitapi() 及read events
怎麼試都不行。原本懷疑 方法不對 但 syntech兄 說他可以。
我就換另一種方式,另建 主程式 main.prg 由main.prg 去call main.scx
on shutdown exitapi() 及read events 都放在 main.prg 內
結果--我出運了--成功一次登出。
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
LiuRambo



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


第 8 樓

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

以PRG當主程式是本來就要的吧?!
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
pilipala



註冊時間: 2009-05-13
文章: 75


第 9 樓

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

代碼:


For C = 1 to _Screen.FormCount
If type("_Screen.ActiveForm") = "O"
_Screen.ActiveForm.Release()
Endif
Endfor



可以參考這篇討論,也是討論關閉全部的Form
http://www.foxite.com/archives/close-all-forms-0000289891.htm
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



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


第 10 樓

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

pilipala 寫到:
代碼:


For C = 1 to _Screen.FormCount
If type("_Screen.ActiveForm") = "O"
_Screen.ActiveForm.Release()
Endif
Endfor



可以參考這篇討論,也是討論關閉全部的Form
http://www.foxite.com/archives/close-all-forms-0000289891.htm



FOR lnForm = _screen.FormCount TO 1 STEP -1
_screen.Forms(m.lnForm).Release()
NEXT
這方法不錯 (筆記筆記
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
CCB2000



註冊時間: 2009-03-25
文章: 95


第 11 樓

發表發表於: 星期三 二月 16, 2011 9:24 am    文章主題: 引言回覆

試試:
function exitapi
HIDE WINDOW ALL
CLEAR events
ON shutdown
QUIT
endfunc

_________________
VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
whh



註冊時間: 2010-04-16
文章: 166


第 12 樓

發表發表於: 星期二 五月 14, 2013 11:15 am    文章主題: 引言回覆

我可以請教一下嗎?

我參考了上面的作法照寫一個

Project Manager
|
|__ Code (分頁)
|
|__ Programs
|
|__ my

my.prg
內容

SET PROC TO MyFn ADDI
SET PROC TO Myexitapi ADDI && 參考上面教學

_VFP.Visible = .T.
_SCREEN.WindowState = 0
_SCREEN.WindowType = 1

_screen.Visible=.F.

SET SYSMENU OFF

DO FORM MyWin_test
READ EVENTS

ON SHUTDOWN exitapi() && 參考上面教學

可是不管是[登出、重開機]都還是會跑,終止程序 xxxxx,不會無聲無息的關掉
請問是什麼問題 ><?
回頂端
檢視會員個人資料 發送私人訊息
whh



註冊時間: 2010-04-16
文章: 166


第 13 樓

發表發表於: 星期二 五月 14, 2013 11:21 am    文章主題: 引言回覆

我知道了 0.0
ON SHUTDOWN exitapi()
要先放到
DO FORM MyWin_test 上面
讓程式寫載入
這樣才知道遇到,關機時會繞去那段
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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