Custom Fields in the Rename Dialog

重命名对话框中的自定义字段

通过执行 OnGetCustomFields 事件,重命名脚本可以将其自己的字段添加到重命名对话框本身。这允许你提供一个或多个控件,用户可以利用这些控件向你的脚本传递参数。用户还可以使用 Rename 命令的 SCRIPTARG 参数向你的脚本馈送参数。

自定义字段可以使用复选框、字符串字段、数字字段和下拉列表。

要从你的重命名脚本中添加自定义字段,请执行 OnGetCustomFields 方法。上述字段是使用(VBScript 中的)以下代码添加的:

Function OnGetCustomFields(ByRef getFieldData)

  ' 添加一个名为“我的选项”的复选框,默认为 true(开启)
  getFieldData.fields.my_option = True
  getFieldData.fields.my_option.label = "My Option"

  ' 添加一个名为“我的字符串字段”的文本字段,带提示横幅
  getFieldData.fields.my_field = ""
  getFieldData.fields.my_field.label = "My String Field"
  getFieldData.fields.my_field.tip = "输入你的文本"

  ' 添加一个数字输入字段,默认值为 20。最大值为 100
  getFieldData.fields.my_value = 20
  getFieldData.fields.my_value.label = "My Integer Value"
  getFieldData.fields.my_value.max = 100

  ' 添加一个有三项选择的下拉列表
  getFieldData.fields.my_combo = DOpus.Create.Vector(1, "Option 1", "Option 2", "Option 3") 
  getFieldData.fields.my_combo.label = "My Dropdown"

End Function

自定义字段的定义方式与 脚本加载项 使用 ScriptConfig 对象定义其配置的方式非常相似。OnGetCustomFields 方法传递一个 GetCustomFieldData 对象。通过将 GetCustomFieldData.fields 对象的属性分配给字段要使用的变量类型(例如,对于布尔值指定 TrueFalse,对于文本字符串指定一个字符串,依此类推),来添加字段。你提供的值将成为该字段的默认值。

每个字段还可以有一个标签,文本字段可以有一个“提示横幅”,当文本字段为空时会显示该“提示横幅”(如上所示)。配置这些选项有两种方法:

  • 使用 fields 对象的子属性。这是更简单的方法,而且还允许你访问除了标签和提示横幅之外的其它选项。

  • 旧方法是使用提供的两个额外的 Map 对象(GetCustomFieldData.field_labelsGetCustomFieldData.field_tips)来允许你分配这些对象。

使用上述子属性方法,你可以分配的属性如下:

标签

控件标签

提示

编辑字段提示横幅

最小

最小值(对于数字控件,允许你添加向上/向下微调按钮)

最大

最大值

限制

编辑控件的最大输入长度

重命名 对话框将自动展开以容纳你的自定义字段 - 显然,屏幕空间并不是无限的,因此你不应添加过多的字段,否则该对话框将变得太大而无法容纳在屏幕上!

用户输入到你的自定义字段中的值通过 CustomFieldData 对象提供给你的 OnGetNewName 方法,该对象被传递为 GetNewNameData.custom。你在 OnGetCustomFields 中添加的每个字段都将作为此对象的一个属性出现。例如,此函数将提供的变量打印到输出日志中。

Function OnGetNewName(ByRef getNewNameData)
  DOpus.Output "Option: " & getNewNameData.custom.my_option
  DOpus.Output "String: " & getNewNameData.custom.my_field
  DOpus.Output "Number: " & getNewNameData.custom.my_value
  DOpus.Output "Dropdown: " & getNewNameData.custom.my_combo
  OnGetNewName = True ' 忽略重命名
End Function

当用户通过使用 PRESET 参数自动化 Rename 命令以直接运行你的重命名脚本时,他们可以使用 SCRIPTARG 参数传递数据以通过你的自定义字段进行传递。此参数接受多个 名称:值 对。例如,假设上述脚本被保存为重命名预设“MyRename”。用户可能会运行以下命令:

Rename PRESET MyRename SCRIPTARG my_option:True my_field:moocow

最后更新于