Douglas, That seems promising. Since the listbox is a collection/entity selection, each row's color would be set by the rows presence in the "Selected items" collection. I imagine the performance would be OK as long as the search only took place as the row becomes visible to the User.
Kirk's proposal alludes to a solution that 4D seems inches away from, where a row's membership in the selected items collection automatically grants it a highlight, similar to the boolean array of the array based listbox, and the HighlightSet of the selection based listbox. Thanks, Keith - CDI > On Apr 16, 2019, at 10:44 AM, Douglas von Roeder via 4D_Tech > <[email protected]> wrote: > > Keith: > > How about this - rather than change the highlight, what about just changing > the color of the rows to mimic that they’re selected? You can still > maintain array of record numbers/ID’s that represent the selection but just > update the UI so that it looks like the rows are selected. > > My thinking is that by using the list box code to select the rows, that’s > causing 4D to reload the records. The thought "Why would you want to do > that (if you don’t have to)?”, comes to mind. :-) > > -- > Douglas von Roeder > 949-336-2902 > > > On Tue, Apr 16, 2019 at 7:22 AM Keith Culotta via 4D_Tech < > [email protected]> wrote: > >> Justin, >> >> Thank you for the suggestion. >> >> I switched the deselect-all code to >> LISTBOX SELECT ROW(*;"valsBox";1;lk replace selection) >> LISTBOX SELECT ROW(*;"valsBox";1;lk remove from selection) >> and the selection did clear, however as soon as this add-to-selection code >> is executed >> LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection) >> 4D immediately crashes. >> >> If all 40k rows get deselected, using either method, and selecting them >> all again is done in a loop, the loop finishes in about two seconds. >> At that point the macOS spinning wheel appears for three minutes. The >> highlight then appears and control is returned to the app. >> The fewer the records being highlighted, the shorter the macOS wheel spins. >> >> Regards, >> Keith - CDI >> >>> On Apr 15, 2019, at 7:50 PM, Justin Carr via 4D_Tech < >> [email protected]> wrote: >>> >>> On 16 Apr 2019, at 5:04 am, Keith Culotta via 4D_Tech < >> [email protected]> wrote: >>>> >>>> Hello, >>>> >>>> I'm looking for a fast way to highlight a selection of rows in an >> entity selection listbox. The way I am aware of works OK unless the >> listbox gets a large number of rows. >>>> >>>> Adding records to the Selected Items name in the Property list does not >> highlight the listbox contents. The equivalent of adding records to the >> "UserSet" is not available with entity selection listboxes. >>>> >>>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to >> selection) crashes 4D if the listbox contains enough records. >>>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes >> if put in a fast FOR loop. If the loop is executed more slowly there is >> success. The slowness comes from looking for entitySelected[i] within the >> entity selection and highlighting its position in the listbox. >>>> >>>> Is there a better way to get there? >>> >>> Hey Keith >>> >>> Are you clearing the listbox selection first (with LISTBOX SELECT >> ROW(*;"listBox";0;lk remove from selection)? If so, that is probably the >> cause of the crashing you are seeing. You can workaround it by highlighting >> and unhighlighting the first row instead, i.e. >>> >>> LISTBOX SELECT ROW(*;"listBox";1;lk replace selection) >>> LISTBOX SELECT ROW(*;"listBox";1;lk remove from selection) >>> >>> cheers >>> Justin >> >> ********************************************************************** >> 4D Internet Users Group (4D iNUG) >> Archive: http://lists.4d.com/archives.html >> Options: https://lists.4d.com/mailman/options/4d_tech >> Unsub: mailto:[email protected] >> ********************************************************************** > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:[email protected] > ********************************************************************** ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

