On 2020-07-09 09:54, Klaus major-k via use-livecode wrote:
Hi all,
Am 08.07.2020 um 17:51 schrieb Klaus major-k via use-livecode
<use-livecode@lists.runrev.com>:
Hi friends,
strange phenomenon, maybe I am missing something!?
LC 9.6 on macOS 10.14.6
I have two fields with all available fonts and each line is formatted
directly
in the appropriate font it reads.
I set the FixedLineHeight for ONE field to 28, doesn't matter
actually.
Now I want to select a specific line in the fields with this script:
-------------------------------
on mouseUp pMouseButton
set the wholematches to TRUE
put lineoffset("Lucida Grande",fld "fonts") into tLine
## Which is 366 in my fields!
put the effective textheight of fld "fonts" into tTH
set the scroll of fld "fonts" to tLine*tTH + the height of fld
"fonts"
set the hilitedlines of fld "fonts" to tLine
end mouseUp
-------------------------------
Works fine for the field WITHOUT fixedlineheigt and selects the line
-> Lucida Grande
However the same script used with the field WITH fixedlineheight, it
selects -> Lucida Grande Bold
which is the line AFTER "Lucida Grande" and actually line 367!?
What am I overlooking?
Thanks for any hints!
I suspect the fact it works in the non-fixedline height case is
serendipity in this specific case - if line height isn't fixed then each
line will have a different height based on the fonts (although most will
be the same if the fontSize is the same)...
LineOffset is 1-based - so the first line has scroll 0ish (ish because
of field margins etc.) - that's probably the issue with your existing
code.
There's an easier way I think though which should be independent of any
field styling (size, font, wrapping)...
You can get the formattedTop of a line - which gives you the
card-relative y co-ordinate of the top of the including the fields top
and scroll. So this should do the trick:
set the scroll of field "fonts" to the scroll of field "fonts" + \
the formattedTop of line tLine of
field "fonts" - \
the top of field "fonts"
The adjustment is necessary because the scroll value is relative to the
top-left of the 'content' of the field.
Hope this helps!
Mark.
--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps
_______________________________________________
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