添加属性中存储的文本

标题为创作条件式“请稍候...”消息框的小节显示一个对话框,其中文本为:“磁盘空间成本已完成,请稍候”。只需在对话框中放置文本控件并将文本字符串输入Control 表的 Text 列即可完成此操作。 在这种情况下,有关字体样式的信息必须嵌入到字符串中。 要设置字体和字体样式,作者必须在字符串前面加上 {\style} 作为前缀。 其中 style 是 TextStyle 表的 TextStyle 列中列出的字体样式标识符。 安装示例中多次演示了这种添加文本的方法。

用户界面的作者还可以将文本存储在属性中。 以下示例对此进行了说明,并演示了如何使用 ControlEvent 显示可选文本字符串。

此示例中的目的是再次在后台任务运行时显示 WaitForCosting 对话框。 与新方案的不同之处在于,如果用户取消 WaitForCosting 对话框,然后在后台任务第二次完成之前尝试激活该控件,则 WaitForCosting 框会再次出现,并显示一条替代消息:“磁盘空间成本计算仍在运行。 可以继续等待或返回到主选择框以退出此序列。”

显示“请稍候”对话框,其中显示替代消息

  1. 首先,将条件式 WaitForCosting 对话框添加到 Selection 对话框,如创作条件式“请稍候”对话框中所述。
  2. 通过在 Control 表中创作记录,从而在 WaitForCosting 对话框中放置 Text 控件。 在 Dialog_ 列中输入 WaitForCosting 对话框的标识符。 在 Control 列中输入 Text 控件的标识符。 在 Type 列中将控件的类型指定为 Text。
  3. 通过在 Control 表的 X 和 Y 列中输入控件左上角的水平和垂直坐标,为文本控件指定 Position 控件属性。 使用像素作为距离单位。
  4. 通过在 Control 表的 Width 和 Height 列中输入这些维度,从而指定文本控件的宽度和高度。 使用像素作为长度单位。
  5. Control 表的 Property 和 Control_Next 列不会影响 Text 控件,在本例中可以留空。
  6. 指定与位标志关联的 Text 控件的控件属性。 将各个位值加在一起,并在 Control 表的 Attributes 列中输入总和。 这些是 VisibleSunkenEnabledTransparentNoWrapNoPrefix 控件属性。 在不透明背景上显示文本控件的位组合(换行文本为 0),因此输入 0 或将 Attributes 列留空。
  7. Control 表的 Text 列可以留空。 Text 控件显示文本字符串,该字符串是 Text 控件属性的值。 此过程的后续步骤中介绍了设置此属性的方法。
  8. Property 表中添加记录以定义 FirstMessage 消息属性。 此属性是包含第一条消息的字体样式和文本的字符串。 在 Property 列中输入名称 WaitMessage。 在 Value 列中,输入字符串:“{\WaitStyle}磁盘空间成本计算已完成,请稍候”。其中 WaitStyle 是 TextStyle 表的 TextStyle 列中列出的其中一种字体样式的标识符。
  9. Property 表中添加记录以定义 SecondMessage 消息属性。 此属性是包含第二条消息的字体样式和文本的字符串。 在 Property 列中输入名称 SecondMessage。 在 Value 列中输入字符串:“{\WaitStyle}磁盘空间成本仍在运行。 可以继续等待或返回到主选择框以退出此序列。”
  10. Property 表中添加记录以定义 WaitMessage 消息属性。 此属性是一个包含字体样式和文本的字符串,如果用户尝试在成本计算完成之前激活一个按钮,则 WaitForCosting 对话框中会以此字体样式和文本显示消息。 在 Property 列中输入名称 WaitMessage。 在 Property 表的 Value 列中,输入:FirstMessage。
  11. SetProperty ControlEvent 添加到 ControlEvent 表,每次打开“新建选择”对话框时,此表会将 WaitMessage 初始化为 FirstMessage。 在 Dialog_ 列中输入对话框的标识符(显示在对话框序列中 Selection 对话框的前面)。 在此对话框中输入控件的标识符,此控件用于在 Control_ 列中打开 Selection 对话框。 在 Event 列中输入 [WaitMessage]。 在 Argument 列中输入 [FirstMessage]。 在 Condition 列中输入 1,并将 Ordering 列留空。
  12. 如果用户在磁盘空间成本计算完成之前关闭 WaitForCosting 对话框,则将 SetProperty ControlEvent 添加到 ControlEvent 表中,SetProperty ControlEvent 可将 WaitMessage 设置为 SecondMessage。 在 Dialog_ 列中输入 WaitForCosting 对话框的标识符。 在 Control_ 列中输入 Text 控件的标识符。 在 Event 列中输入 [WaitMessage]。 在 Argument 列中输入 [SecondMessage]。 在 Condition 列中输入 NOT CostingComplete,并将 Ordering 列留空。
  13. 以下步骤将 Text 控件属性链接到 ControlEvent,后者生成 WaitForCosting 对话框。 这样,每次用户打开 WaitForCosting 对话框时,安装程序都会将 WaitMessage 属性的值传递给 Text 控件属性。
  14. 为 Text 控件的 Text 控件属性订阅 SpawnWaitDialog ControlEvent,后者通过向 EventMapping 表添加记录来打开 WaitForCosting 对话框。 在 Dialog_ 列中输入 WaitForCosting 对话框的标识符。 在 Control_ 列中输入 Text 控件的标识符。 在 Event 列中输入 SpawnWaitDialog。 在 EventMapping 表的 Attribute 列中输入 Text(即 Text 控件属性的标识符)。