Even easier is to check the clickText, which will return empty if you don't
click on a line of text, and will return the text of the line you clicked
(even if you click on spaces between words in a line). I traditionally trap
this to deselect any selections in the field. Note you have trap this in a
*mouseDown* and not a *mouseUp*, otherwise it won't work:
on mouseDown
if the clickText is empty then
set the hilitedLines of me to ""
else
-- do something related to clicking on an actual list line, or ignore
end if
end mouseDown
Enjoy!
Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web Site: http://www.sonsothunder.com/
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, September 10, 2002 12:22 PM
Subject: re: clickText in a List Field
>
> >>This is something I've wanted for a while, but unfortunately I >wouldn't
> have
> >any use for it if clicking spaces between words is going to >falsely
report
> >that the user clicked below the last line. Let's hope there's >another
way.
>
> Actually my problem was with the space at the end of the line rather than
> between the lines, which is what I think you're describing. I've dealt
with
> the between line problem with this function. It may not work as is for all
> possible field properties but I'm sure the equations could be adjusted for
> specific conditions or made more general.
>
> Function MyClickLine CloseLine, ActiveField
>
> # CloseLine is the line number returned as word two of ClickLine ()
> # Allows for more precise selection of lines from formatted text flds.
> # When line heights are greater than a single line the standard
clickline
> functions
> # are not accurate. This function corrects that problem so that the user
> really has
> # to hit the visible lines not the spaces between them.
> # 9 pixels are added to the equation if widemargins is true
> # The target is assumed to be a field.
> # ActiveField is the short Name of the field we are using. It is assumed
to
> be in
> # the defaultStack
>
> if the WideMargins of fld ActiveField = true then put 9 into WM
> Else put 0 into WM
>
> -- 4 pixel buffer above/below text.
> -- Increase # to make wider area around text a valid line hit.
> Put 8 into Buff
>
> put item 2 of the rect of fld ActiveField into r
> put the ClickV into CV
> put the textHeight of fld ActiveField into TH
> Put the textsize of fld ActiveField into TS
> put CV-r into RelativeToFld
>
> Put TH*(CloseLine) - TS into TopBorder
> Put TH*(CloseLine) + WM + Buff into BottomBorder
>
>
> if RelativeToFld>=TopBorder and RelativeToFld<=BottomBorder then
> RETURN CloseLine
> else
> RETURN ""
> end if
>
> end MyClickLine
>
>
> -- Tim Bleiler
> _______________________________________________
> metacard mailing list
> [EMAIL PROTECTED]
> http://lists.runrev.com/mailman/listinfo/metacard
>
_______________________________________________
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard