[F/OS] - Dynamic Components Extension (for every component) 2.3.0

reply as soon as posible

Create a dictionary with the properties that you want to use and then …

3 Likes

how to use .GetPropertyMeta component

1 Like

if i am create a 1 cardview in designer and i want all setting in block area for multiple cardview how i do

.
i am trying but .getpropertymeta it not work

You could create a schema template, see more here

The previous versions were working better in terms of component built listener. As version 2.2.2 came listener is flooded with data after function with components creating ends - listener waits for the main function to finish.

It should work like that in my opinion:

  1. “Code” runs in any function
  2. “Create component” in the “code” - function halts
  3. App start the function provided in the listener “component built”
  4. Listener “component built” code is finished
  5. Halted function by “component built” continues

Earlier, even a pretty big function with a lot of “create component” blocks could work pararell. It seems like real asynchronous functionality doesn’t work properly. Is it true it doesn’t support real asynchronous code execution?

Would be nice to know because I upgraded the extension to 2.2.2 today and it forced me to change my app blocks logic.

1 Like

Hi @HeyAveHey!

As there was no concurrent way to know whether a component was actually created or not, there’s no logical way to know when to call the event. As I was implementing it, although confusing, it was best in my opinion.

No. Dynamic Components creates components on the UI thread. The main cause of ANR errors was because components were being created all at once. With asynchronous creation, components are created after each other to prevent that (not only running on the UI thread).

We did brainstorm at one point where there would need to be a queue to create components… One would follow after another. This would be difficult because we’d have to queue more than just the creation of the component, but if the developer set properties before they were created as well. This was not implemented, in favor of the UI thread.

To this day, I am still looking at ways to improve, not only the gigantic mess that I created, but the responsiveness of applications when creating thousands of components at once. At the same time, this should also be managed by the application developer as well, not just the developers of extensions.

1 Like

Thanks for the reply. I understand the problem you face, it’s not an easy job for sure. But, it’s good to know what way you go. I asked the question, because this solution (example):

was a very quick and clean way to group my objects. Since version 2.2.2 got ComponentBuilt block delayed (it is executed at once (probably) after UI thread finish other tasks) it’s not userful anymore in that case. I just need to collect components in specific group at runtime instantly after component was created. It was working perfectly for my needs.

I have to check if “UsedIDs” list get updated instantly without specific delay.

I like your words. It’s true. I can resolve my issue easily, but it’s always confusing when the extension upgrade changes behaviour (in my case - drastically).

I know this problem is easy and has been solved more than once, but I can’t understand it.
And when you press the button, it clears an error message.

I’m sorry to bother you, but I think you can help me.
@dora_paz

You have an empty slot in procedure

1 Like

Sorry, that was a wrong picture.

You should expand all blocks and then download procedure’s blocks as png and upload it here

image

1 Like

I can’t download the picture, so I’m going to lift the aia.Dynamic.aia (43.5 KB)

Change in procedure from get global Text

image

To get Txet

1 Like

The same message still appears.

Oops wait. You did it okay.

1 Like

You made a mistake replacing segment “Card” with “Label” instead of “Txt”. Your labels id are: Txt1, Txt2 and so on instead of Label 1 etc.

2 Likes