本文說明 int_flag 這個 Genero 預定義變數的常見誤解與正確使用方式。
什麼是 int_flag?
int_flag 是 Genero 的預定義變數,當偵測到中斷事件(interruption event)或在單一對話框(singular dialog)中觸發取消動作(cancel action)時,它會被設為 TRUE。
最關鍵的一點:int_flag 被設為 TRUE 之後,唯有開發人員在程式碼中明確地將它重設為 FALSE,它才會變回 FALSE。系統不會自動重設它。
程式撰寫規範建議
針對 int_flag 的使用,建議納入以下程式撰寫規範:
- 在程式啟動時設定
DEFER INTERRUPT - 當
int_flag被設為 TRUE(1)後,明確地在程式碼中將它重設為 FALSE(0) - 統一
DIALOG、ACCEPT DIALOG與CANCEL DIALOG的使用方式
問題情境範例
以下是一個典型的問題場景:連續兩個對話框,使用者在第一個按下取消:
- 第一個 INPUT 執行,使用者按取消,
int_flag被設為 1 - 該值持續存在,進入第二個 INPUT
- 第二個對話框因
int_flag已為 TRUE,表現得好像使用者按了取消一樣——即使使用者這次是按確認
解決方法
在兩個對話框陳述式之間加入以下程式碼,將 flag 重設:
LET int_flag = 0
養成習慣:每次處理完 int_flag 為 TRUE 的情況後,立即將其重設為 0,避免影響後續的對話框行為。
相關資源
- 官方文件:
int_flag說明 - 官方文件:使用者中斷處理(User Interruption Handling)
- 第 99 篇、第 18 篇(相關討論)
原文:https://4js.com/ask-reuben/ig-182/
· 有任何 Genero 技術問題或翻譯疑問,歡迎來信
support@t100.app