rcrc 发表于 2007-8-2 16:38:24

无法取得tickets,price和total的控件名称和值

关于值的取得,我用了映射,但似乎不是每次都可以读出来,就算读出来了,也返回错误,显示不相等。
具体脚本如下:
set_class_map("ThunderRT6TextBox", "edit");
set_record_attr("ThunderRT6TextBox", "class attached_text", "MSW_id", "location");
set_record_method("ThunderRT6TextBox", RM_RECORD);
set_class_map("ThunderRT6TextBox", "edit");
set_record_attr("ThunderRT6TextBox", "class attached_text", "MSW_id", "location");
set_record_method("ThunderRT6TextBox", RM_RECORD);


# Flight Reservation
      set_window ("Flight Reservation", 2);
      menu_select_item ("File;Open Order...");

# Open Order
      set_window ("Open Order", 1);
      obj_mouse_click ("Order No.", 3, 11, LEFT);
      edit_set ("ThunderRT6TextBox_2", "4");
      obj_mouse_click ("OK", 43, 10, LEFT);

# Flight Reservation
      set_window ("Flight Reservation", 12);
      edit_set ("ThunderRT6TextBox_9", "2");
      obj_mouse_click ("Order Information:", 254, 152, LEFT);
      set_window("Flight Reservation", 1);
      edit_get_text("ThunderRT6TextBox_9",ThunderRT6TextBox_9);
      edit_get_text("ThunderRT6TextBox_10",ThunderRT6TextBox_10);
      edit_get_text("ThunderRT6TextBox_11",ThunderRT6TextBox_11);
                if (ThunderRT6TextBox_9*ThunderRT6TextBox_10==ThunderRT6TextBox_11)
                        tl_step("ThunderRT6TextBox_11",0,"总额是正确的,"ThunderRT6TextBox_9"乘以"ThunderRT6TextBox_10"等于"ThunderRT6TextBox_11"");
                else

                tl_step("ThunderRT6TextBox_11",1,"总额是不正确的,"ThunderRT6TextBox_9"乘以"ThunderRT6TextBox_10"不等于"ThunderRT6TextBox_11"");脚本执行后的结果信息如附件截图,麻烦哪位DX请分析一下啊,谢。

lantianwei 发表于 2007-8-2 17:02:47

用edit_get_info ( edit, property, out_value )试下

rcrc 发表于 2007-8-3 09:21:54

还是不行,名称读不出,报值不正确。

lantianwei 发表于 2007-8-3 09:26:15

你把$符号先去除了再乘,最后再加上$符号,你试下

rcrc 发表于 2007-8-3 09:50:32

$符号怎么去?

rcrc 发表于 2007-8-3 10:43:16

不是$符号的原因,而是金额取出的时候带了“”,是以字符串的形式取出来了,导致结果错误。
但不知道,怎么样将字符串形式的格式转换为int型的?

lantianwei 发表于 2007-8-3 11:10:59

mm="1234";
printf(2*mm);

TSL不用转换,可直接用!

rcrc 发表于 2007-8-3 12:45:21

恩,不是“”的原因,那版主知道$怎么去掉吗?

lantianwei 发表于 2007-8-3 12:55:58

比如你取出来的是"$12.6",把它附给一个变量price
则可以用substr(price,2,4)

rcrc 发表于 2007-8-3 15:07:25

p=substr(price,2,8);
t=substr(total,2,8);
if (tickets*p==t)

还是会报错,用“add watch”看t的值是带“”的,p的值是正确的,在if (tickets*p==t)中将t用正确的数值代替,测试结果是正确的。
但是,在"tickets"乘以"price"等于"t"中,显示的t值是不带“”的。
不知道是什么原因。

lantianwei 发表于 2007-8-3 16:41:36

price="$22.5";
total="$45";
tickets=2;
p=substr(price,2,8);
t=substr(total,2,8);
if (tickets*p==t)
pause("right");
else
pause("wrong");

我这里可以的

rcrc 发表于 2007-8-3 17:11:21

这样是没有问题的,下周再继续,多谢版主啊,好人~~~
页: [1]
查看完整版本: 无法取得tickets,price和total的控件名称和值