[comp.sys.mac.hypercard] Getting location of characters in a field

ressler@cme-durer.ARPA (weirdo) (08/17/88)

Is it possible to make a button travel along with the text, in a field.

i.e. to create an anchored button which moves say on top of an asterisk 
which indicates a link to another card.   

The main problem I have not been able to figure out is how to get an x,y
location for the position of a particular word or character (that pesky *) in
a field.  Any XCMD's out there?? or other hacks would be appreciated.


Thanks,

Sandy Ressler

ressler@cme-durer.arpa

dan@Apple.COM (Dan Allen) (08/20/88)

In article <589@oops.cme-durer.ARPA> ressler@cme-durer.ARPA (weirdo) writes:
>Is it possible to make a button travel along with the text, in a field.
>
>i.e. to create an anchored button which moves say on top of an asterisk 
>which indicates a link to another card.   
>
>The main problem I have not been able to figure out is how to get an x,y
>location for the position of a particular word or character (that pesky *) in
>a field.  Any XCMD's out there?? or other hacks would be appreciated.

What you want is a legitimate request for a "sticky" button that sticks
to the text.  We at Apple are working on this for a future version of
HyperCard.

In the meantime, there is a stack with a nifty "sticky button" script
that sort of works.  I think it is a Herzier software stack, and I do
not think it had to resort to an XCMD.

Dan Allen
Apple Computer

borton@uva.UUCP (Chris Borton) (08/22/88)

In article <589@oops.cme-durer.ARPA> ressler@cme-durer.ARPA (weirdo) writes:
>Is it possible to make a button travel along with the text, in a field.
>i.e. to create an anchored button which moves say on top of an asterisk 
>which indicates a link to another card.   
I believe what you're looking for are 'sticky buttons', the promised future
to true HyperMedia.

The best way I've found yet to implement this was without buttons at all.
I based my work on the scrips in the HyperDeveloper 1.1 stack.  The basic
idea is to have the mouseUp handler in the background check if there is
a selection.  If so, then check for the key--an '*' after the word in your
case, bullets surrounding the word in mine.  If found, go to card named
theSelection.

It sounds a bit sloppy and slow, but I was pleasantly surprised how well it
worked, even on my SE.

-cbb
-- 
Chris Borton	borton%uva@mcvax.{nl,bitnet,uucp} 
(oops, that's rather flakey right now: use borton%uva@hasara5.bitnet)
Rotary Scholar, University of Amsterdam CS