Text 创建处理程序以增加字体大小

Text 创建处理程序以增加字体大小,text,livecode,Text,Livecode,我正在开发一个文本应用程序,其中包括一个按钮,用于增加字段中选定文本的文本大小 下面是我正在使用的处理程序,当所有selectedText当前大小相同时,它可以正常工作。如果某些文本大小不同,处理程序将返回以下错误: 第42行执行错误(运算符+:左操作数错误),字符 68 处理程序: on txtSizeUp set the textSize of selectedText to the textSize of selectedText + 2 end txtSizeUp 在不考虑差

我正在开发一个文本应用程序,其中包括一个按钮,用于增加字段中选定文本的文本大小

下面是我正在使用的处理程序,当所有selectedText当前大小相同时,它可以正常工作。如果某些文本大小不同,处理程序将返回以下错误:

第42行执行错误(运算符+:左操作数错误),字符 68

处理程序:

on txtSizeUp
     set the textSize of selectedText to the textSize of selectedText + 2
end txtSizeUp

在不考虑差异的情况下,如何更改大小?

设置文本大小时,LC需要一个块表达式,如fld 1的
第3行或fld“yourField”的
word 2到4

短语
所选文本
解析为所选内容的实际文本。因此,如果您在字段中选择了“我的狗有跳蚤”,则您的代码要求:

set the textSize of "dog" to someValue

这是不允许的。引擎不知道该怎么办。您需要修改脚本和方法,以生成区块,而不是文本引用。

将处理程序更改为使用selectedChunk而不是selectedText

on txtSizeUp
   set the textSize of the selectedChunk to the textSize of the selectedChunk + 1
end txtSizeUp
当然,为了更好的衡量:

on txtSizeDown
   set the textSize of the selectedChunk to the textSize of the selectedChunk - 1
end txtSizeDown
编辑:仅当整个selectedChunk的文本大小相同时,上述处理程序才起作用。您希望能够增加文本大小,即使选择中存在不同的大小。(我在你最初的问题中遗漏了这个细节。)

问题在于
selectedChunk
函数返回字符串“mixed”(混合),当所选内容中的大小不同时。这就是为什么你会出错;
set
语句试图添加数据类型不匹配的
mixed+1
。下面是一个处理程序,它应该执行您想要的操作

on txtSizeUp
  put the effective textSize of the selectedChunk into tSize
  if tSize is a number then
    set the textSize of the selectedChunk to \
       the effective textSize of the selectedChunk + 1
  else
    lock screen
    put the long name of the selectedField into tFld
    put word 2 of the selectedChunk into tStartChar
    put word 4 of the selectedChunk into tEndChar
    repeat with x = tStartChar to tEndChar
        set the textSize of char x of tFld to \
           the effective textSize of char x of tFld +1
    end repeat
    unlock screen
  end if
end txtSizeUp

还有其他的方法可以使用,但它们都会以某种方式在选定的文本中循环。

我在这里成功地测试了这两个脚本。你能告诉我们更多关于失败的情况吗?是否生成了错误消息,或者根本没有发生任何事情?这里有一件事要检查您是否在Windows上:在执行脚本的按钮属性检查器中,确保未选中“使用键盘聚焦”复选框(traversalOn属性)。如果选中,单击按钮将从字段中删除焦点,从而使selectedChunk为空并导致脚本失败。我得到的错误与我最初提到的相同。同样,当所选文本的大小已经相同时,这也可以正常工作。如果我选择了多个大小不同的行,例如,第1行是10个点,第2行是12个点,那么我会得到左操作数错误中的错误。