如何获取卡片上的复选框反映了数据网格中另一个复选框的hilite状态

时间:2014-02-28 00:25:17

标签: livecode

我是一个完全的初学者,如果这很简单,请耐心等待。 我在堆栈中有2张牌(见链接)。卡1显示几个文本行,可以通过单击“我的选择”按钮查看复选框进行选择。 切换选择的行并在“所有行”视图和“我的选择”视图之间切换工作正常 - 复选框以适当的方式被选中/取消。

当我点击文本行本身时,我会转到显示整个文本行的卡片2。在那张卡片上,我放置了一个复选框,以便能够切换选择。然而,该复选框未正确显示可见线的hilite状态,并且它不会消除卡1上数据网格中的复选框。

对于cd 2上的复选框,我将此代码用于其所在的卡:

global gMySelection,gMySelectedLineNrs,gCurrentLineNr,gCurrentLine,gCurentIndex

on openCard
   set itemDel to tab
   put gCurentIndex into fld "a" --- used during development
   put gCurrentLine into fld "b" --- used during development

   if gCurentIndex is among  items of gMySelectedLineNrs then
      set the hilite of btn "Check" to "true"
   else
      set the hilite of btn "Check" to "false"
   end if

end openCard

以及该卡上的检查按钮:

global gAllLines,gMySelection,gMySelectedLineNrs,gCurentIndex

on mouseUp
   set the itemDelimiter to tab
 if the hilite of me then
  put "true" into item 2 of line gCurentIndex of gMySelection
  put "true" into item 2 of line gCurentIndex of gAllLines
   else 
      put "false" into item 2 of line gCurentIndex of gMySelection
      put "false" into item 2 of line gCurentIndex of gAllLines
   end if
   RefreshAllLines
end mouseUp

如何更正代码以使其正常工作?

download link for my stack

提前致谢。

keram

1 个答案:

答案 0 :(得分:1)

我现在就开始工作了。 这行不正确:“gCurentIndex是gMySelectedLineNrs的项目之一”,因为虽然gCurentIndex总是一个简单的数字,但gMySelectedLineNr总是带有前导0,所以即使gCurentIndex可能是= gMySelectedLineNr但在gMySelectedLineNr的项目中找不到。 / p>