> Hakan wrote: > The code will not work if you have htmltext containing the text "color=" like: > <p>To set the color you can use color="#fa3b42"</p>
Oh yes, was rather silly of me not to keep this in mind. There is a simple remedy: put ("color=" is in fld 1) into isInField if isInField then replace "color=" with numToChar(5) in fld 1 preserving styles .. do the htmltext-method .. if isInField replace numToChar(5) with "color=" in fld 1 preserving styles what doesn't slow down if "color=" is in only a few lines. > and you can also shave off some milliseconds in the styledText version by > using foreach: > … > repeat for each key aKey in tTextA > # Check if first run has textcolor set > put (tTextA[aKey]["runs"][1]["style"]["textcolor"] is empty) \ > into tTextA[aKey]["style"]["hidden"] > end repeat > … > For me that is always faster than your clever 'offset("color="…' version. This may be true but the above doesn't work for the OP's question: To hide lines with *any* textcolor property set, not only the textcolor for the whole line. The styledText method is still very fast with the adjusted version below (make it better!). For up to at about 2500 short lines the htmlText method is here still faster. For more than 2500 short lines or if many text lines contain "color=" the styledText method is faster. The OP will simply take the version that is faster/better suited for his use case. Here the two working methods that hide *exactly* the lines (more exactly: paragraphs) of a field that contain no colored chunk. -- styledText method on mouseUp put the millisecs into m1 lock screen; lock messages put the styledText of field "text" into st put st into tTextA repeat for each key aKey in tTextA put tTextA[aKey]["runs"] into T repeat for each key I in T put (T[I]["style"]["textcolor"] is empty) into tTextA[aKey]["style"]["hidden"] end repeat end repeat set the styledText of fld "text" to tTextA put the millisecs - m1 into fld "timing" end mouseUp -- htmlText method on mouseUp put the millisecs into m1 lock screen; lock messages put ("color=" is in fld 1) into isInField if isInField then replace "color=" with numTochar(1) in fld 1 preserving styles end if put the htmltext of fld 1 into ht set linedel to "<p" put the htmltext of fld 1 into ht replace " hidden" with empty in ht repeat for each line L in ht if offset("color=",L)>0 then put "<p" & L after s else put "<p hidden" & L after s end repeat set htmltext of fld 1 to s if isInField then replace numTochar(1) with "color=" in fld 1 preserving styles end if put the millisecs - m1 into fld "timing" end mouseUp _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode