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

时间:2015-01-10 22:59:34

标签: text livecode

我正在开发一个文字应用,其中包含一个按钮,用于增加字段中所选文字的文字大小。

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

  第42行的

执行错误(操作符+:左操作数中的错误),char   68

处理程序:

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

无论差异如何,我都需要做些什么才能改变尺寸?

2 个答案:

答案 0 :(得分:1)

更改处理程序以使用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的textSize相同时才起作用。即使选择中有不同的大小,您也希望能够增加文本大小。 (我在你原来的问题中错过了那个细节。)

问题是the 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

将会有其他方法可行,但它们都会以某种方式循环浏览所选文本。

答案 1 :(得分:0)

设置textSize时,LC需要一个块表达式,如line 3 of fld 1word 2 to 4 of fld "yourField"

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

set the textSize of "dog" to someValue

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