Scrolling flds

simplsol at aol.com simplsol at aol.com
Tue Apr 5 17:44:46 EDT 2005


Here is an alternative script for scrolling a list field based on a 
click in an alpha field:

 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 <eric.chatonet at sosmartsoftware.com>
 To: How to use Revolution <use-revolution at lists.runrev.com>
 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 
 use-revolution at lists.runrev.com 
 http://lists.runrev.com/mailman/listinfo/use-revolution 

  


More information about the use-livecode mailing list