本文說明 int_flag 這個 Genero 預定義變數的常見誤解與正確使用方式。

什麼是 int_flag?

int_flag 是 Genero 的預定義變數,當偵測到中斷事件(interruption event)或在單一對話框(singular dialog)中觸發取消動作(cancel action)時,它會被設為 TRUE。

最關鍵的一點:int_flag 被設為 TRUE 之後,唯有開發人員在程式碼中明確地將它重設為 FALSE,它才會變回 FALSE。系統不會自動重設它。

程式撰寫規範建議

針對 int_flag 的使用,建議納入以下程式撰寫規範:

  1. 在程式啟動時設定 DEFER INTERRUPT
  2. int_flag 被設為 TRUE(1)後,明確地在程式碼中將它重設為 FALSE(0)
  3. 統一 DIALOGACCEPT DIALOGCANCEL DIALOG 的使用方式

問題情境範例

以下是一個典型的問題場景:連續兩個對話框,使用者在第一個按下取消:

  1. 第一個 INPUT 執行,使用者按取消,int_flag 被設為 1
  2. 該值持續存在,進入第二個 INPUT
  3. 第二個對話框因 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