StepChoiceSelection

表单、交互

描述

将可见且可写的 choice 字段的所选选项按请求的增量移动

当前字段值与所有已配置选项的导出名和显示名比对;没有匹配项时,负增量跳到最后一项,非负增量选择第一项

结果目标被钳制进选项列表;新值取自选项的导出名(无导出名时取显示名);值未变化时不执行任何动作或编辑即完成

值变化时会聚焦并编辑字段、分派部件的 /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