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