on mouseDown
--list must be sorted for alphas to make sense:
if the hilite of btn "Sort the Card List" is false
then send "mouseUp" to btn "Sort the Card List"
get the value of the clickLine
if it is empty
then
set the scroll of fld "Card List" to "0"
exit mouseDown
end if
if it is "..."
then
ask "Find this character in the card list:" with "A"
if the result is "Cancel" then exit mouseDown
end if
put fld "Card List" into temp
repeat with i = 1 to the number of lines of temp
if char 1 of line i of temp is it
then
set the scroll of fld "Card List" to ((i -1) * 12)--lineHeight is 12 pixels
exit mouseDown
end if
end repeat
-- if there was no matching alpha then beep
beep
end mouseDown
I have used this for a couple years now and it works well for me.
Note: I have "..." (three dots/periods) at the top of the list which will bring up a dialog asking the user for special letters/characters which are not part of the alpha list (like umlauts, tildas, etc.).
Paul Looney
-----Original Message----- From: Eric Chatonet <[EMAIL PROTECTED]> To: How to use Revolution <[email protected]> Sent: Tue, 5 Apr 2005 23:15:09 +0200 Subject: Re: Scrolling flds
Bonsoir Yves,�
�
LineOffset returns the number of lines between the beginning of a value and an occurrence of a specified string.�
So, LineOffset does not take care of numbers or alpha chars and *stupidly counts the lines*. That's all :-)�
So the code Klaus provided *should* work in all cases.�
Your problem (I can't figure it) is elsewhere...�
FixedLineHeight set to false?�
Does not help to much :-(�
�
Le 5 avr. 05, � 22:31, Yves COPPE a �crit :�
�
> I have a fld with an alphabetical list�
> I have a script to automatically scroll the fld at the beginning of a > clicked letter : tKey�
> (thank you Klaus)�
>�
> put lineOffset(return & tKey, fld "body") into lo�
> set the scroll of field "body" to (lo * the effective textHeight of
field "body")�>�
> now, I have a problem :�
> the list fld begins with a variable number of lines which are numbers > and then begins the alphabetical list�
> so, to set the scroll of field "body", I have to add some variable > number to (lo * the effective textHeight of field "body")�
> I cannot find out how I have to calculate this correction�
>�
> i've tried :�
>�
> put lineOffset(return & "a", fld "body") into tcorrection�
> set the scroll of field "body" to (lo * the effective textHeight of
field "body")+ tcorrection�>�
> it's good at the beginnning of the list fld but after some lines, it's > not correct anymore�
> where is the error ?�
�
Amicalement,�
�
Eric Chatonet.�
----------------------------------------------------------------�
So Smart Software�
�
For institutions, companies and associations�
Built-to-order applications: management, multimedia, internet, etc.�
Windows, Mac OS and Linux... With the French touch�
----------------------------------------------------------------�
Web site http://www.sosmartsoftware.com/�
Email eric.chatonet AT sosmartsoftware.com/�
Phone 33 (0)1 43 31 77 62�
Mobile 33 (0)6 20 74 50 86�
----------------------------------------------------------------�
�
_______________________________________________�
use-revolution mailing list�
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution�
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution
