使用变量创建数组

时间:2011-09-21 18:12:13

标签: delphi testcomplete

我对德尔福比较新,所以请耐心等待。基本上,我需要根据我是否在英语或法语翻译环境中进行测试,将变量设置为不同的值。这些TC脚本中的所有菜单都以其名称访问,而在法语中则不同。但是,我可以通过菜单中的位置访问它们,例如[4|2]

我有一个常量列表,并希望设置一个数组,将MenuItem1设置为File|New[4|2],具体取决于tcDecimalSeparator <> '.'的值(设置为声明的常量) 。

这有意义吗?最简单/最好的方法是什么?

我知道我可以通过数据驱动测试来设置这一切,但我不想在发布之前重新编写脚本。

1 个答案:

答案 0 :(得分:2)

不,你提出的解决方案没有意义。首先,基于当前小数分隔符的切换是不可靠的。其次,如果您已经知道菜单项的位置,并且它们始终有效,无论程序的语言如何,那么为什么要乱用英文菜单字幕呢?只需一直使用菜单位置。 (或者,如果您已经设置了基于语言选择菜单文本的内容,为什么不使用法语菜单文本而不是在英语 text 和法语位置之间切换?)

要执行您的建议,您可以设置二维菜单标识符数组:

const
  TLanguage = (lEnglish, lFrench);
  TUIElement = (uiFileNew, uiFileOpen, ...);

  MenuIDs = array[TUIElement] of array[TLanguage] of string = (
    ('File|New', '[4|2]'),
    ('File|Open', '[4|3]')
  );

然后,当您需要字符串时,选择与您的UI元素对应的项目,然后选择当前语言的字符串:

if tcDecimalSeparator = '.' then
  CurrentLang := lEnglish
else
  CurrentLang := lFrench;

UseMenuItem(MenuIDs[uiFileNew, CurrentLang]);