Checking the listbox's Property "Hide extra blank rows" stopped 4D from 
unexpectedly quitting when using 
  LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection)  // and it's fast
  just having a lot of rows to highlight in a loop.

The crashing showed up more often in compiled mode before the change.  Still 
have the spinning wheel however.

Keith - CDI

> On Apr 16, 2019, at 9:22 AM, Keith Culotta via 4D_Tech <> 
> 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 <> 
>> wrote:
>> On 16 Apr 2019, at 5:04 am, Keith Culotta via 4D_Tech <> 
>> 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:
> Options:
> Unsub:
> **********************************************************************

4D Internet Users Group (4D iNUG)

Reply via email to