StepChoiceSelection

表單、互動

描述

以指定的增量移動可見、可寫入選擇欄位的所選選項

目前欄位值會對所有已設定選項的匯出名稱與顯示名稱比對;沒有任何選項相符時,負增量跳到最後一個選項,非負增量選第一個

目標結果會箝制在選項清單內;新值取自選項的匯出名稱,沒有匯出名稱時取其顯示名稱;值不變時直接完成,不執行任何動作或編輯

值有變化時會聚焦並編輯欄位、分派 Widget 的 /K 按鍵動作、儲存新的暫時值,最後以 CommitEdit 收尾,因此 /V、/F 與 OnValueChanged 都走正常提交路徑

先前未在編輯的欄位若 /K 被否決,剛開啟的編輯會再被取消

宣告

function StepChoiceSelection(FieldIndex, Delta: Integer): Integer;

參數

FieldIndex可見、可寫入選擇欄位的欄位或暫時 Widget 索引
Delta要移動的選項數量,負值表示後退,正值表示前進

傳回值

選取步驟完成或值已相符時傳回 1;欄位無效、不是選擇欄位、唯讀、沒有選項,或分派的動作或提交拒絕變更時,則傳回 0

範例

// Keyboard path used by DispatchInputEvent for choice fields
Steps := -1; // fikUp moves to the previous option
Handled := Session.StepChoiceSelection(FieldIndex, Steps) = 1;

另請參閱

CommitEdit, SetEditValue, DispatchInputEvent, BeginEdit, OnValueChanged