mitch@well.UUCP (Mitchell Waite) (03/13/88)
In message <220100007@uxe.cso.uiuc.edu> Leonard Rosenthol writes" > *** BUG IN DUEL SCROLLING STACK ** Here at the University of Illinois we have a group that meets once a week to discuss Hypercard and the Mac in general. At todays meeting we were looking at the Dueling Scroll Stack (mentioned in the previous message) and we discovered A MAJOR FLAW in the stack. If the only way the user moves about the text in the scrolling fields is by the scroll bar then there is no problem HOWEVER if you use the FIND Command, the field containing the found text will automatically scrolled by Hypercard BUT the other field won't! I don't know if there are fix for this problem but thought I would pass it on for anyone else who may be doing something similar. > Thanks to the University of Illinois for finding the find bug in Dueling Scroll Fields. We researhed this and came up with a nifty fix, that completely eliminates the problem. Insert the following script into the card layer: -- Dueling Scroll Field "Find" Fix -- 3/12/88 -- Mitch Waite and Ted Jones -- From: Tricks of the HyperTalk Masters -- This script is a fix to the dueling scroll fields bug. If you did a -- find "theString" on the stack it would not properly scroll both fields. -- The problem was we did not expect the user to use 'find'. Now it works. -- If you do a find "do" for example, from the message box, it will find -- the occurences first in the left field, and scroll the right to align, -- then find those in the right field and scroll the left to align. -- Note that the next repeated finds don't appear in the scroll field -- They are taking place in the hidden "show notes" field! Eventually -- find will return to the left field. -- This is normal for HyperCard's find so we leave it alone. -- lineCound and inc are two variables that already exist in the card -- script. on idle -- put this in the card script global lineCount, inc if scroll of card field "left" = scroll of card field "right" then exit idle end if if trunc( scroll of card field "left" / inc) is lineCount then set scroll of card field "left" to scroll of card field "right" else set scroll of card field "right" to scroll of card field "left" end if put trunc( scroll of card field "left" / inc) into lineCount end idle Mitchell Waite