# SetControlDelay

设置每个控件改动函数后将发生的延迟.

    SetControlDelay Delay

## 参数

Delay

  类型: 整数

  时间(单位为毫秒). 指定 -1 表示无延时, 或 0 表示最小延时.

## 返回值

整数: 整数

函数返回以前的设置.

## 备注

如果没有使用 SetControlDelay, 默认的延迟为 20.

在每个变更控件的函数之后, 都会自动进行短暂的延时(休眠). 这样做提高了脚本的可靠性, 因为控件在被这些函数之一更改后有时需要一段 "休息" 时间, 这允许它更新自身并响应脚本可能尝试发送给它的下一个函数.

具体来说, SetControlDelay 影响以下函数: ControlAddItem, ControlChooseIndex, ControlChooseString, ControlClick, ControlDeleteItem, EditPaste, ControlFindItem, ControlFocus, ControlHide, ControlHideDropDown, ControlMove, ControlSetChecked, ControlSetEnabled, ControlSetText, ControlShow, ControlShowDropDown.

ControlSend 不受影响; 它使用 SetKeyDelay.

虽然允许使用 -1(完全无延时), 但建议至少使用 0, 以增强即使在 CPU 处于负载状态下脚本也能正确运行的几率.

延时为 0 时实际内部会执行 Sleep(0), 这会将脚本时间片段的剩余部分提供给可能需要它的任何其他进程. 如果没有其他进程需要, 则 Sleep(0) 相当于完全没有延时.

如果 CPU 比较慢或在负载下, 或启用了窗口动画, 那么可能需要较高的延迟值.

内置变量 A_ControlDelay 包含了当前设置, 也可以为其赋予新的值, 而不用调用 SetControlDelay.

每个新运行的线程(如 热键, 自定义菜单项或定时子程序) 都会以此函数的默认设置开始. 这个默认设置可以通过在脚本启动中使用此函数来改变.

## 相关

控件函数, SetWinDelay, SetKeyDelay, SetMouseDelay

## 示例

在每次控件修改命令后产生尽可能小的延迟.

    SetControlDelay 0

dftg