Peter,

Thank you a lot for your attention to my problem. I am impressed by the way you think about a problem.
Very nice solutions really; works well :-))

Meanwhile, I am trying to edit the selection made by the user, using a repeat loop to delete the possible spaces (and/or tab) before the selection, for several spaces might be selected before a word.

In fact, my field does not include text. It is populated by the day numbers of the twelve months (one line for each month). Generally two numbers are separated by one space (weeks are separated by tab).

But before the first of a month there can be several spaces (when the month don't begin on the first day of a week.). Not likely the user' selection would included much spaces, but 2 or 3 could be possible!

Thank you again Peter

Best regards

André


Le 16 mars 10 à 15:59, Peter Brigham MD a écrit :

On Mar 16, 2010, at 6:40 AM, BNig wrote:

André,
I would test Peters solution a little more. If you start your selection with a space the word before the space will be the one that is targeted for your
textstyle. The same with return and tab.
regards
Bernd


True. I was assuming that the beginning of the selection would be a character and not white space. Here's a function that tells you if the character in a field is white space or not:

function isWhiteSpace charNbr,fldRef
   put value(fldRef) into fldText
   put the number of words of char 1 to charNbr of fldText \
          into firstPartCount
   put the number of words of char charNbr to -1 of fldText \
          into secondPartCount
   return firstPartCount + secondPartCount = \
          the number of words of fldText
end isWhiteSpace

So incorporating that into the handler would give:

on mouseup
  put the selectedchunk into selCh
  if the selectedtext = empty then exit mouseup
  put the long id of the selectedfield into fldRef
  put value(fldRef) into fldText
  put word 2 of selCh into startChar
  put the number of words of char 1 to startChar \
         of fldText into wordNbr
  if isWhiteSpace(startChar,fldRef) then add 1 to wordNbr
  set the textstyle of word wordNbr of \
         fldRef to "link"
end mouseup

On a different note, I'm confused about the behavior of full control references, eg, fldRef in the above example, which contains a long id of a field. The last line of the mouseup handler works, because the engine evaluates the variable fldRef before executing the command, but if instead of "set the textstyle of word wordNbr of fldRef" you do this:
  put word wordNbr of fldRef
you get the corresponding word of "field id 3521 of card id 1009 of stack..." -- ie, the unevaluated string contained in the variable fldRef.

So under what circumstances does Rev evaluate a full control reference? It's clearly not in all contexts.


-- Peter

Peter M. Brigham
[email protected]
http://home.comcast.net/~pmbrig

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution



_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to