>>Does anybody have a solution for dragging lines up and down in a field to >> resort them? >>Thanks,
>Ray Horsley >Developer, LinkIt! Software As a reply Rich Payne Sparkman Mfg. [EMAIL PROTECTED] Posted a script that allows to drag lines inside the field. Posted a script that allows to drag lines inside the field. I tested the script and it works, but unfortunately after intensive use it eventually crushes MC v 2.4.2, at least on my computer (Mac OS 9.1 G3 350, 512 Meg RAM). One of the symptoms is that MouseStillDown handler begins to indefinitely calling itself even long after the mouse is UP (indefinite recursion, if I'm not messing up the terms). It keeps calling MouseStillDown until the mouse is clicked outside the field. So, I blocked this behavior with "click at -100,100" at the end of the handler. This stopped MouseStillDown to continue working after mouseup but MC 2.4 still crushes, through less frequently. Without having exact recipe I think this has something to do with new async behavior of mouse function "The "mouse" function is now async rather than event based as in previous releases. This means that "the mouse" will only return "down" if the mouse is actually down at the exact instant the function checks it." So, I modified script a little (see below) and now it seems to be stable in all versions of MC. note: I'm sure it can be done in more efficient way, but I cooked it very quickly and my goal was to just stabilize the script in MC 2.4.2 Local VertiMouse,MyTop,MyLeft,linHt,CurLinPtr,moveTxt,Actionflag ## you can set any margin for fld and have it with or without vertical scrollbar ## button should have "showBorder" = false and name "DragLineBtn" ## field has list behavior. on mouseDown put "false" into Actionflag pass mousedown end mouseDown on mousestillDown if Actionflag is "false" then -- MouseStillDown should work only once this way... put the ClickLine into CkLn put value(the ClickLine) into moveTxt if moveTxt is empty then exit mousestillDown delete line (word 2 of CkLn) of me set the label of button "DragLineBtn" to MoveTxt put the textHeight of me into linHt ## f you want custom cursor while dragging, create one and activate lines below --set the cursor to (the id of image "DragLineImg" of grp "DragLineGrp") -- set the lockcursor to true put 4 into MyTune ## Would love to know why but on my computer it needs this correction ## to let button fit exactly in Field boundaries. Put 0 into MyTune if your ## OS/computer will not require correction set the borderWidth of button "DragLineBtn" to the margins of me - MyTune put the top of me into MyTop put (the left of me) + MyTune into MyLeft if the vScrollbar of me is "true" then set the width of button "DragLineBtn" to (the width of me) - (the scrollbarWidth of me) - (MyTune*2) else set the width of button "DragLineBtn" to (the width of me) - (MyTune*2) end if set the height of button "DragLineBtn" to LinHt set the topLeft of button "DragLineBtn" to MyLeft,MyTop set the visible of button "DragLineBtn" to true -- put "true" into Actionflag -- so it never do it again while the mouse is down Send "dragLine" to me in 1 milliseconds -- end if end mouseStillDown on dragLine if the mouse is up then -- get out and exit -- repeat for each line L in the pendingMessages -- cancel (item 1 of L) -- not needed actually -- end repeat set the visible of button "DragLineBtn" to false put ((VertiMouse - MyTop) div linHt)+1 into CurLinPtr if the scroll of me > 0 then add (the scroll of me div LinHt) to CurLinPtr end if if CurLinPtr > (number of lines in me) then put cr&moveTxt after the last line of me select the last line of me else put MoveTxt & cr before line CurLinPtr of me select line CurLinPtr of me end if set the lockcursor to false exit dragline end if -- put the MouseV into VertiMouse put the scroll of me into temp if VertiMouse < MyTop then put MyTop into VertiMouse subtract LinHt from temp end if if VertiMouse > the bottom of me then put the bottom of me into VertiMouse add LinHt to temp end if set the scroll of me to temp set the topLeft of button "DragLineBtn" to MyLeft,VertiMouse-(LinHt div 2) --- send dragline to me in 10 milliseconds -- is 10 Milliseconds OK? end dragline Best regards Tariel Gogoberidze _______________________________________________ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard