347 views
in GUI Development by

I am using the vertical list as described earlier.

I am changing the list string at the run time and as well as No. of item . But it show the warning as below :

[26.8.2021 16:32:02] Runtime Core::Group.InvalidateViewState (2:1) : Could not post again the signal '@064AC014.ListBox.VerticalList.updateComponent'. This signal is currently in progress. The operation was ignored to avoid endless signal delivery. The current callstack is shown in the log messages below.
https://ask.embedded-wizard.de/?qa=blob&qa_blobid=9290827327147922647

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=13384600614030196252

1 Answer

0 votes
by

Hello Pidea,

the provided screenshot did not contain the callstack. The important messages are displayed in the section Debug as mentioned little imprecisely 'below'. To attract your attention the tab Debug is blinking in such case the thick gray bar:

When you click on the tab Debug the Log window will display the mentioned callstack entries. Evaluating those reveals that in your application you tries to change the number of list items during loading an item:

Since such operation will require the list to reload items again, doing this within OnLoadItem may lead to an endless recursion. This has been detected by Embedded Wizard and suppressed.

Generally, during the list is reloading items, your implementation may not modify any states of the corresponding list. The implementation of the OnLoadItem method should limit to the load operation only. Consequently, following two rows have to removed from the OnLoadItem method:

ListBox.NoOfItems = maxItem;
ListBox.SelectedItem = defaultItem;

Best regards

Paul Banach

by

sorry i forgot to attach the screenshot for debug 

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=10230140022117388628

If I want to increase the list ie no of item in vertical list as per requested by device. How it should be done.  

by
hi ,

 

can you throw some key points for the same
by
hi paul,

 

I tried with another approach

In GUI component , method Init , I try to access the data from device

For example :

var uint16 nitem = 50;

menuLevel.NoOfItems = nitem;

menuLevel.InvalidateItems(0, nitem);

 

and OnLoadItem strings are updated , After running this does throw warning but just want to confirm is this a correct way to implement ?
by

Hello Pidea,

implementing the code in Init method is the right approach. Generally, when the number of list items changes, you modify the List's property NoOfItems. This can be done at any time except the moment when the list reloads its items.

Best regards

Paul Banach

Embedded Wizard Website | Privacy Policy | Imprint

...