I am also using a field. Half the magic occurrs outside the field script though.
Bob S > On Jan 28, 2025, at 7:07 AM, Craig Newman via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Did you try my stack? It does not use a button at all for the menuItem list, > rather a field. Looks the same, much easier to manage. > > Craig > >> On Jan 27, 2025, at 4:18 PM, Bob Sneidar via use-livecode >> <use-livecode@lists.runrev.com> wrote: >> >> Not at all. I have a File Server Agent that uses socket communications. I >> first get a list of files from the user, then I query the server or a list >> of what I call Profiles which right now are just a name and a file path on >> the server. >> >> I want to present the client user with a list of the names of those >> profiles. If the user does not select a profile, either by clicking off the >> menu I pop up, or by hitting the escape key, then I notify the user that >> they must choose a profile. >> >> If they do choose a profile then I send the server an array with some >> key/values, and the file data is stored in a numbered array in the data key. >> Each key in the data keys is first encrypted, then tho whole of the array is >> arrayEncoded, then base 64Encoded before opening a socket and sending the >> data. >> >> I tried using the popup menu button but that will not work unless the popup >> button command is called from a mouseDown or mouseUp handler. I am making >> the call from a behavior script which is why I was getting the error. And >> besides, you can’t control the popup menu’s appearance, whereas with a field >> you can. Also I am anticipating having more values than can be entirely >> displayed by a popup menu without running out of screen real estate, so a >> scrolling field works much better. >> >> I’m curious how you would do that with native controls? >> >> Bob S >> >> >>> On Jan 27, 2025, at 12:27 PM, Craig Newman via use-livecode >>> <use-livecode@lists.runrev.com> wrote: >>> >>> Bob. >>> >>> What are you trying to accomplish that the native buttons do not do for >>> you? The popUp command, to me, is simply a tool to invoke a display of >>> resident menuItems that do not necessarily have to live at the button >>> location itself, and that button not even needing to be visible. >>> >>> Are you adding a lot of additional gadgetry? >>> >>> Craig >>> >>>> On Jan 27, 2025, at 2:01 PM, Bob Sneidar via use-livecode >>>> <use-livecode@lists.runrev.com> wrote: >>>> >>>> Interesting, the dictionary didn’t mention mouseUp. But some kind of mouse >>>> up or down handler has to be what makes the call. >>>> >>>> It turns out that rolling your own blocking popup “menu” is not very >>>> straightforward. Here is what I came up with: >>>> >>>> on popupMenu pMenu, pItems, pLocation >>>> -- anything less than 3 lines and the scrollbar does not display correctly >>>> if the number of lines of pItems >3 and \ >>>> the last char pItems is cr then \ >>>> delete last char of pItems >>>> >>>> set the text of pMenu to pItems >>>> set the height of pMenu to \ >>>> min(the formattedHeight of pMenu, 178) — for me 178 is 10 lines of >>>> formattedText YMMV >>>> set the width of pMenu to the formattedWidth of pMenu >>>> set the topLeft of pMenu to pLocation >>>> show pMenu >>>> focus on pMenu >>>> set the hilitedLine of pMenu to empty -- because focus will auto-select >>>> line 1 >>>> wait until the visible of pMenu is false with messages >>>> end popupMenu >>>> >>>> >>>> — in the script of a Scrolling List Field >>>> local lParentCard >>>> >>>> on selectionChanged >>>> put getParentCard(the long id of me) into lParentCard >>>> put the hilitedLine of me into tLine >>>> put line tLine of the text of me into tItem >>>> set the currentLocation of lParentCard to tItem — or whatever you want to >>>> do with tItem >>>> hide me >>>> end selectionChanged >>>> >>>> on escapeKey >>>> selectionChanged >>>> end escapeKey >>>> >>>> on focusOut >>>> selectionChanged >>>> end focusOut >>>> >>>> FUNCTION getParentCard pObjectID >>>> put offset("card id", pObjectID) into tStartChar >>>> put char tStartChar to -1 of pObjectID into tCardID >>>> return tCardID >>>> END getParentCard >>>> >>>> Bob S >>>> >>>>> On Jan 27, 2025, at 9:39 AM, Craig Newman via use-livecode >>>>> <use-livecode@lists.runrev.com> wrote: >>>>> >>>>> Bob. >>>>> >>>>> It works just fine in a mouseUp handler as well. I just did it. >>>>> >>>>> Craig >>>>> >>>>>> On Jan 27, 2025, at 12:31 PM, Bob Sneidar via use-livecode >>>>>> <use-livecode@lists.runrev.com> wrote: >>>>>> >>>>>> Understood. That is why I wrote, I assure everyone there *IS* a button >>>>>> called “mnuLocations”. As I posted later, this command can only be used >>>>>> in a mouseDown handler. I think I knew this many, many years ago, but I >>>>>> forgot. >>>>>> >>>>>> Bob S >>>>>> >>>>>> >>>>>>> On Jan 27, 2025, at 9:28 AM, Craig Newman via use-livecode >>>>>>> <use-livecode@lists.runrev.com> wrote: >>>>>>> >>>>>>> Bob . >>>>>>> >>>>>>> “popup” is not a command that creates a button. It only works with an >>>>>>> existing button, opening its contents at a location of your choice. >>>>>>> That button can be hidden, but its menu will appear anyway. >>>>>>> >>>>>>> Craig >>>>>>> >>>>>>>> On Jan 27, 2025, at 12:17 PM, Bob Sneidar via use-livecode >>>>>>>> <use-livecode@lists.runrev.com> wrote: >>>>>>>> >>>>>>>> Hi all. >>>>>>>> >>>>>>>> I have the command: >>>>>>>> popup pMenuButton at pLocation >>>>>>>> >>>>>>>> pMenuButton contains: >>>>>>>> button “mnuLocations" >>>>>>>> >>>>>>>> pLocation contains: >>>>>>>> 55,303 >>>>>>>> >>>>>>>> I am getting the error: >>>>>>>> stack "moduleCardBehavior": execution error at line 360 (subwindow: >>>>>>>> can't find stack or button), char 1 >>>>>>>> >>>>>>>> I assure everyone there *IS* a button called “mnuLocations”. What in >>>>>>>> the name of all <fill in the blank> is going on here?? >>>>>>>> >>>>>>>> Bob S >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> use-livecode mailing list >>>>>>>> use-livecode@lists.runrev.com >>>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>>>>>> subscription preferences: >>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> use-livecode mailing list >>>>>>> use-livecode@lists.runrev.com >>>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>>>>> subscription preferences: >>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>>> >>>>>> _______________________________________________ >>>>>> use-livecode mailing list >>>>>> use-livecode@lists.runrev.com >>>>>> Please visit this url to subscribe, unsubscribe and manage your >>>>>> subscription preferences: >>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>>> >>>>> >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode@lists.runrev.com >>>>> Please visit this url to subscribe, unsubscribe and manage your >>>>> subscription preferences: >>>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode