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