Find the scroll location in wrapped field

Eric Corbett eric at canelasoftware.com
Tue Nov 18 11:06:42 EST 2014


I knew you could select the line number, but I did not know starting at the end would provide the best results. This will be helpful, thanks.

One method I have used in the past is to put the htmlText of the field into a variable, then put line 1 to (the line to scroll to) into the field (or delete line (scroll line +1) to -1 of the field. Find the formattedHeight at this point, set the htmlText of the field back to the original contents, then scroll to the formattedHeight value.

- eric


On Nov 18, 2014, at 7:14 AM, Richard Gaskin <ambassador at fourthworld.com> wrote:

> dunbarx wrote:
> >> James Hale wrote:
> >>
> >> So if you have the linenumber of the line contains the text you wish
> >> to see at the top of the field then...
> >>
> >>    select line  -1 of  field "TextToScroll"
> >>    select line linenumber of  field "TextToScroll"
> >>
> >> And line linenumber will now be at the top of the field.
> >
> >
> > The field will scroll to the desired line, but if the textSizes
> > of those lines are variable, the scroll will not come out right.
> >
> >
> > The discussion here and on the forum is how to make that happen.
> > So far, no solution. The OP wanted to find text, and this is
> > straightforward, in that the foundline can be used to set the
> > line selection. But his data was with mixed textSizes, and that
> > is how this all started.
> 
> If James were suggesting doing calculations based on textHeight you'd be spot-on, but by using selection he's relying on the engine's understanding of the text as rendered - testing here it seems to work quite well.
> 
> If we needed to do this with calculations only (if for some reason selection would be problematic), we could use the formattedHeight of line 1 to the desired line, subtracting the effective textheight of the desired line itself (and accounting for the topmargin), e.g.:
> 
>   put lineoffset("stringWeAreLookingFor", fld 1) into tLOS
>   put the effective textheight of line tLOS of fld 1 into tHt
>   put the formattedHeight of line 1 to tLOS of fld 1 into tScroll
>   set the vscroll of fld 1 to (tScroll-tHt-the topmargin of fld 1)
> 
> -- 
> Richard Gaskin
> Fourth World Systems
> Software Design and Development for the Desktop, Mobile, and the Web
> ____________________________________________________________________
> Ambassador at FourthWorld.com                http://www.FourthWorld.com
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list