CompCreator - DynamicComponents compatibility

Does anybody know if CompCreator and Dynamic Components are compatible like in the below example?

If I create an Arrangement with Dynamic Components, I can create any component insight them with CompCreator So... in that sense they are compatible. But... If I want to create a label ("Label" from the below image) with Dynamic Components in a CompCreator arrangement... The companion crash.

As the CompCreator seems to have a bug with "HtmlFormat" and now I need that dynamically on the label, I want to use Dynamic Components to create a label in a CompCreator Arrangement and use the Dynamic Components.SetProprieties + dictionary to achieve my goals.

If they were not compatible as I want... I need to redesign about 1000 blocks. :exploding_head:

Thank you for the time to give your opinion.

P.S. Thank you @Taifun , now I know where to post for help.

Just use a text block containing HTMLFormat instead of the helper block

Something similar it says and Kevin when I ask it, but I don't understand what it wants to say. What I want is to use the HtmlFormat dynamically on a Label.

What do you say by "text block" and "helper block"?

PS - Now I seeeeeee... Hello Tim!!!

I searched to try to understand what "text block" and "helper block" mean and I didn't find something to understand. So... Dynamic Components works ok with the "HTMLFormat".

The result is next:

The QuickHelp will be more detailed, for the moment I'm interested in the logic behind... But...

When I reloaded the work on my app today, I received this screen:

After over 6 hours my app crashed without being touched!!! (I saved it when I finished at 6:00 AM :unamused: ). Looking at the blocks appears this:

The bottom left blocks in the air and the last three procedures changed.

Below is the original/uncrashed/perfect working version:

What's happening in that time... Only Good knows. The only explanation that came to my mind is the fact that some amputated brain aliens came in the morning, to try to help me, and... something glitched in the matrix and changed my app. On the AI2 server?!

Please don't criticize my design performance because I don't have... performance on design.

Thank you for reading this and if somebody can explain all the above are more than welcome. The "text block" and "helper block" are interesting to understand.

PS - I :heart: AI2 and my circled question marks. BTW... is only at the test level, please don't play/joke with them.



Thank you, thank you, thank you Tim! As I never use (only on "OnClick") the "text string" with CompCreator, I can't imagine that "text block" = "text string" in my logic is not, and as I don't know the pro vocabulary/language... I search all blocks from anywhere for "text block".

Now I'm a little smarter and more open-minded. Elementary things like that will ki** me. BTW... It seems that I discovered why Companion randomly crashed (or a big part of crashes/ disconnecting without logic.)! I will wait a few days to be confirmed and make a new thread... or should I put it here?! That may be helpful for somebody...

OK I have updated the extension CompCreator, you can download again.

1 Like


Updated, thank you very much, Kevin, as usual, you're impeccable when we speak about CompCreator author attitude (as any extension author must be to be useful the created extension, free or paid). Thank you again, for my project, among AI2, CompCreator & KevinKuhnEnhance is the spinal column.

Kevin or Tim, do you have time to take a look at the first image from this thread and tell me if it is compatible in any way as I combined in that image the CompCreator and Dynamic Components?! The relational ability/compatibility between both is crucial to my vision/application.

@TIMAI2 as I have told you manny times in my posts, your experience is invaluable, in the past almost three months, almost all that I learned about using AI2, was from your posts from all over of that wonderful community, and from your website. AamongTim, @ABG posts in the community, that's just the same impressive with the culture on the pure AI2 approaches, was a perfect teacher. For me, it is incredibly huge/wide the culture that you Power Users have and the quantity/diversity of subjects that you manage!

You all the "Power users" can make miracles on the AI2 apps, I'm just... invidious. :wink:

A last unsolved problem, it is possible that Tim will have a solution for that! Is about DragAndDrop by @Ken extension.

I created a test app, just for testing purposes that can do this... Visually create and delete any components/arrangements. This approach is fundamental for my app and not only... The only limit is the imagination!!!

This test app, really "unleashes the power of the beast" at the visual level on AI2 as a framework.

With this approach, you can easily make apps for... From architecture, design, and overlayed things to drag-and-drop industrial automation control at the visual level, Arduino things, and... So on... You must invest only some... Simple logic...

But... it has a huge/unpardonable problem. If I "escape" from dragging the component that I catch and that component drops in itself... The companion crashes without any message.

From my tests/logic it seems to be a problem with DragAndDrop extension that is trying to create a component/arrangement on itself. It is aberrant/paradoxical and it is normal to crash.

Here you have the .aia. From my point of view, it deserves deep attention.

DragAndDrop.aia (122.2 KB)

It is a small tribute to the "bible" that Tim sent me at the beginning of this wonderful AI2 adventure and it took me almost a month to understand it :exploding_head:. Feel free to use it, modify it, share it, or use it in any constructive way.

For copy/paste guys... Don't just copy/paste those things... Read, learn, and understand AI2, after that just... DO IT!.

PS - be careful on playing with it... it creates addiction... I lose a week playing with shapes...

When DynamicComponents.Remove id (component), does it only change the visibility of that id (component) or remove it from the dynamically created components?

When CompCreator removes a component, does it only change the visibility of that component or remove it from the dynamically created components?

hi, please dont create multiple topics for small questions, ask it in the same topic.

I'm sorry about that, it is possible to bad understand the fact that important when somebody posts a new thread is a different subject, in those cases, the subject is different from my point of view as the extensions are different.

I apologize again and please if needed somebody to join them.

Now, is the moment to ask @Taifun why splits this thread in few new threads, if two "small" questions but different subjects ( CompCreator.Remove component and DynamicComponents.Remove id a subject-related questions with a quick "Solution" possibility) vas joined on this thread.

And of course, ask Taifun why close that thread as the answer to the subject question was not responded to, and it generates a lot of adjacent subjects (that BTW can be split in many other threads) from which, at least I learned a lot? The only one who posted in that thread (if I remember correctly), a subject-connected opinion, was @ewpatton (thank you ewpatton for your oppinion), and the subject doesn't have a solution... Yet (as you easily can see I'm working on it...).

I'm far from being a genius in software but from my knowledge, Google has something that Google named SEO. In the SEO chapter, this wonderful community has earned excellence in Google indexing. So...

If I search on Google for DynamicComponents.Remove id or CompCreator.Remove component those "small" but subject-related questions and those questions have separate title-related-subject, in the Google search will be the first place.

If the above subject-related questions are joined in another subject (in that case with the title CompCreator - DynamicComponents compatibility), from my point of view, will not have the same priority on the Google index (SEO policy).

From my point of view, separating "small" subject-related threads in independent threads offers SEO advantage and the possibility to mark "Solution" quickly.

The above is just an opinion that I argued from my point of view. I don't want to offend anybody, I want to make your work and my work simpler and more efficient.

Thank you. Dan

PS - The opinion on the above questions will be a reference for my future posts.

You could have asked your CompCreator question in the main CompCreator topic on this community...and your DynamicComponents question on the Kodular community main topic for the DynamicComponents extension.

However, given the nature of your original topic here, and that you are working in AppInventor, it makes sense that these two questions are also asked in this topic.

The answer to both, if I read them correctly, is if you remove a component, it is gone.

You could have tested this for yourself, to see what happens, and then not have to ask a question about it at all :wink:

Thank you Tim for the reply, As I mentioned on another subject (I don't remember where), before I ask here, I test all that I know, I search anywhere I know, and I read all that I think has a connection with the subject.

Of course, I tested before posting both extensions as the remove component function. From my test, CompCreator seems to only "hide" and set the visible to false not delete/remove the dynamic component.

For the DynamicComponents related...

As you can easily see, I already use them :wink: because I tested them and I'm sure that they remove/delete the dynamic component.

My questions about Dynamic Components removed, were from a "second point of view of the real professionals on AI2" best practice approach only, (I'm the noob... if you remember...), and for future readers (noobs like me...) that can have the same question.

You're right, but... I tried in the past with another question and where joined on another subject. Seems that I'm doomed to be split/joined/removed my questions from any place where I put them.

For that reason, I ask the last question, to understand the "policy" behind this wonderful community, to understand if that policy is based or not on SEO, and why things that I don't understand happen.

About the Kodular community... I'm sorry but I'm unable to mix AI2 with Kodular, it was a huge effort for my :heart: to understand the fact that Kodular extension works in AI2 and Kodular Extensions don't work in AI2.

Thank you again Tim for your reply, let see the opinion of Taifun about the above questions.

PS - I'm just furious with myself for not making that simple connection!!! Overall when I use that approach with DinamicComponents... I thought how can I punish myself!!!

From time to time happen to be blind, you can see the "circled question mark" Unicode for question marks in a circle :wink: .

This is incorrect:

From my test, CompCreator seems to only "hide" and set the visible to false not delete/remove the dynamic component.

If you test with blocks like the ones below, when you remove a component with CompCreator, it is gone!

deleteCompCcomponent.aia (35.0 KB)

A test like this if I remember correctly I make, but a little more complicated when I created this test above.

I fight with CompCreator and DragAndDrop extensions more than I imagine... I don't imagine having the same amount of patience to deduce from where came the crashes of Companion... To find a compatible logic... To make this test, it took me about a month to encounter the above logic, I'm a noob. For you can take an hour. But I did it!

BTW... you give it a run to above .aia?! What is your opinion about "forced logic" that I encounter, I write forced logic because CompCreator and DragAndDrop are not "compatible" to change between them directly the name of dynamic components generated!!! What I drag... is not what I drop as name format!!! on the same component I mean. Detailed...

I created a dynamic component (VerticalArrangement), it has a weird name and it is a string (If I remember correctly, it was a month ago...) -> I registered it for drag and, for drop -> I moved it to "create" arrangement -> I use When DragAndDrop.DropCompleted tagData to identify the dragged component. Here starts the problems!!!

The string that came from tagData is not the string that generates CompCreator, it is a strange string!!! It has the same name but with ['name']. Even now I don't understand what is this... and how to manage them...

The only logic to manage that is to create another parallel list (I remember that you said that I would like the lists when I understand them, you're right :wink:) with the "filtered" name of the generated component.

That was the big problem!!! But... to accentuate my nerves... The companion crashes... how it wants... Al that was an adventure... If at that time I didn't break my comp it was a miracle and my comp never will be broken!

For you, the power users to make that .aia, is a piece of cake, in an hour it is done. For a noob like me after only two months (one month spent to understand the simplest logic behind CompCreator!!!) it is like I conquer Everest. And if I finish this project will be not as I go to Mars... Will be like I've invented teleportation to another galaxy!!!

But is possible. If anybody can use the AI2... More complicated, more time-consuming... But I'm able to. If you look back... It destroys me, the simple things...

I came to that community intending to pay somebody to make my app, I see... that even I don't know what my app must do... I think is simple, no... is complicated... And transform my user into a source of problems for you... I apologize for that. The rest will be history... It is not my job... programming... Huh...

I swear that after I finish that project, I won't touch the computer anymore for the next two lives!!! :crossed_fingers:

BTW Tim, do you have time, want, can... to make something like the above app, create only with two arrangements that... Create, automatically when one is dragged... and one in another?! Just to know/see my eyes how a pro can think! And of course... I will steal the idea!!! :wink:

To exemplify one of my above problems about understanding, I made another test app to test DragAndDrop + DinamicComponets (above it is an example of DragAndDrop + CompCreator)

Here you have the DragAndDropDynComp.aia (99.4 KB) that crashed (give an error) with a prize!

This is what I mean when I speak about "compatibility"... the variable "component" doesn't go from one procedure to another procedure, as I expected.

My question is why? How can this be done?

Thank you.

I modified the test to exemplify the weird error (weird variable transfer) that I can't "clean".

And the error.

Does someone have an explication?

Thank you.