I have added a few WebDialogs in my app, and instead of of using
Dim WDial as New WebDialogX
I drag these WebDialogs on the WebPage they will be used. So far so good . . . Thing is the properties from the source WebDialog are not copied to the dragged component on the WebPage. Differences are in one or many of these properties:
source says Resizable off but it’s on in the dragged control
with and or height is/are different
type can be different
Why on the earth aren’t properties the same in the dragged WebDialog ? This is making the debugging such a pain.
This is expected behavior. When you drag the object onto the webpage you’re creating an instance of it. Modify your instance, or create a new one if the changes to your super are drastic. Check out how subclassing works via the manual for more information.
@Greg O’Lone I understand that instance is not a subclass.
If I go the way of Dim Obj As Some_Dialog ... the object is instantiated at this moment. If I stop the App, make changes to Some_Dialog, for example add a few text fields, the next time time I run Dim Obj As Some_Dialog ..., Obj will show the new objects added, or any other edit that was done.
Now if I drag Some_Dialog on a WebPage, this Dialog will be instantiated automatically without needing to add code. Now if I edit Some_Dialog and restart the app, it looks like the dragged automatically instantiated Dialog will be identical to was it was before, without the edits (changes are not carried over).
Then the question is: is the dragged Some_Dialog instantiated the same as with code, or is it a copy of Some_Dialog at a point in time ? This bring me to think it’s the latter:
From @Tim Parnell
Another way to put it: is the object instantiated the moment I drag it, or each time the WebPage is shown ?
It’s instantiated when you drag it on to the web page in the IDE. That moment is when the internal version of dim obj as some_dialog occurs. So, if you want those updated values you can update them manually or create a new instance by dragging a new one onto the webpage. The same kind of thing happens if you create a custom control.
I’m sorry if I wasn’t super clear, sometimes my end of the day posts can be kind of short. Does this help?
Wow, this is against logic. I really thought, at first, that the object was instantiated each time the Webpage was itself instantiated. Is that explained somewhere in the documentation ? I don’t recall it being mentioned in Videos. It’s so easy to forget to re-drag the super object after being edited.
It looks like your logic is broken. The web dialog works the same as the other classes, the same as containers. Why it should be in the documentation a warning: “This class works the same as the others”?
You can get around this by calling your WebDialogs dynamically. This gets around the need to add it to a WebPage and pages will tend to load faster (since it doesn’t have the baggage of a dialog that might never be opened). You’ll have to use AddHandler for the DialogDismissed event but it’s not very hard to to.
At one point this could create some memory leaks but I’d imagine that has been fixed by now. You might want to check if this is still the case.