B4J Question Compiled b4xlib often does not work / load on others PCs

Mashiane

Expert
Licensed User
Longtime User
Hi there

My compiled b4xlib often does not work on others PCs, as a result people now have the option to run the b4j library on their PCs. The problem is that whilst it gets listed on the libraries folder, it never loads and shows the proper library version.

There is nothing out of the ordinary about it, its just a simple BANano based b4xlib with resource files in the Files tab.

This is the source of the b4xlib
This is a demo example

Is there something that perhaps I missed considering etc?

Thanks in advance.
 

alwaysbusy

Expert
Licensed User
Longtime User
When loading your demo with your .b4xlib, I got an error about a missing BDAV3Classes library. Not all the time, let's say 1 in 3 times. After I compiled the lib myself, I never saw that message again.

I only could take a quick glance at the source code of the lib (as it even choked up by computer, which is not an easy thing to do), but I can immediately say you have to much stuff in there that does not belong in the core library. First, I would definitely extract the BANanoFakeIt module to a seperate BANanoLibrary and get rid of all the images in assets. They are probably for your kitchen sink example and, unless someone is planning to rewrite this kitchen sink, they are of no use in any other project. The problem is, all those assets may also end up in the other projects, slowing them unnecessary down. Just deleting the images saved up about 50% of the size of the lib, and I could compile it under 15 seconds.

You can then still load the separated BANanoFakeIt.b4xlib in the kitchen sink example, where IMHO it really belongs.

Even after I (rudimentary) cleaned up the library by deleting all images and removing BANanoFakeIt, I still occasionally got errors like this when building the .b4xlib:
B4X:
[IDE message - 6:41:11] 
An error occurred.
Exception of type 'System.OutOfMemoryException' was thrown.

So there is probably a lot more you could remove from the main lib. My advice would be to go through all the modules and see what is really needed to the core lib and put all the rest in one or more separate BANanoLibraries.

Alwaysbusy
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
only that specific version and produces a b4xlib specific to that project
That is probably not such a good idea. You will end-up with dozens of 'semi'-alike libraries in your Library Panel. Not even taking into account you will have to recreate them all if a new version of BDAV3 is published.

I think once you had a version where that had to many sub-libraries, and then went in the extreme opposite direction by joining them all in one which is the one you have today. Maybe you have to find some common ground in between where you end up with maybe 3 or 4 libraries, but that are divided up logically.

1. Core (as the name suggests, the bare core one needs to make a workable WebApp with only the most common components, let's say Bootstrap alike)
2. ExtraComponents (a library containing more exotic components that may be useful for some projects, but unneeded for others. Maybe even splitting this one up in just a couple of libraries, packaged by project theme: for CRM like apps, for Social like apps, ...)
3. Helpers (tools that may be useful in development mode, like your BANanoFakeIT to test stuff out, but that are not needed in the final project)

Alwaysbusy
 
Upvote 0

Mashiane

Expert
Licensed User
Longtime User
Not even taking into account you will have to recreate them all if a new version of BDAV3 is published.
I hear you and thanks, perhaps let me clarify for us to engage some more. My angle and thought process was for the Package Manager, not just for me but for every developer who will use BVAD3 and it will be specific to Tree-Shaking.

Unsolvable Problem 1: We have a fat js and css files for VueJS + Vuetify.

Tree-shaking on this is impossible. The nice thing for VueJS on the other hand is one can execute code like this.

B4X:
// src/plugins/vuetify.js
import Vue from 'vue'
import Vuetify, {
  VCard,
  VRating,
  VToolbar,
} from 'vuetify/lib'
import { Ripple } from 'vuetify/lib/directives'

Vue.use(Vuetify, {
  components: {
    VCard,
    VRating,
    VToolbar,
  },
  directives: {
    Ripple,
  },
})

const opts = {}

export default new Vuetify(opts)

Which ensures that only the components needed for the project are used, e.g. VCard, VRating, VToolBar above and the rest are discarded.

If I understand BANano correctly, tree-shaking is done with RemoveDeadCode transpiler options etc, however what I am not sure of is the depth of that process.

So I thought, what if, when anyone is developing, they can tree-shake their b4xlib themselves by...

1. For example, BVAD3 has 100+ components, and for your project you only use 10 components. With the package manager, one is able to choose the 10 components they need, this builds a b4x based on the bas files one chose, leading to the Custom Views of your choice. In one of Aerics comments he was indicating that one could minimize the custom view list with "most used components". Now as one creates their own "most used components" they have full control on what their BVAD3 custom view list is like. They built it themselves with the package manager.

2. One can save these packages as "templates" which can be re-used and re-compiled based on the developers preferences.

3. Depending on the choices of components made, the dependencies on the resource files are trimmed to fit that budgeted code to be used.

4. This has links to the JS and CSS files. Thing is one can also use online cached resources for this. When building their own b4xlib, developers can choose whether they want to use online resources / assets based resources. At times people are not able or don't want to access the internet and just want to develop without the hustle, this helps for deployment at a later stage, as choosing online resources will change the code to link to that on BANano.Header.Add???

Whilst just setting .UseServiceWorker brings the offline caching of JS/CSS/Images etc, these work on https only isnt it?

5. To address the developers looking for the "plug and play" approach, then following your advise on your post above makes perfect sense. A friend has been indicating the need to make BVAD3 lighter before and just reminded me again after seeing these posts.

I appreciate your feedback. šŸ™
 
Last edited:
Upvote 0

Mashiane

Expert
Licensed User
Longtime User
With hindsight, one of the tricky things that I will have to address is this crucial sub route. Which helps people not to have to write all those many bind-state calls, and its one of the reasons that I eventually decided to build a single unit with everything. This method call ensures that all the re-active state bindings are done for all the components used in BAVD3 and is one of the most crucial developments in BVAD3.

B4X:
Sub BindStateAll
    'get the callback
    Dim pg As BANanoObject = mCallBack
    'get all the keys of this class module
    Dim obj As BANanoObject
    obj.Initialize("Object")
    'get the keys of all items in class_globals etc
    Dim homekeys As List = obj.RunMethod("keys", Array(pg)).Result
    'loop through each key and find the respective components to execute BindState on
    For Each objk As Object In homekeys
        Try
        'get the object/function linked to this key
        Dim objv As BANanoObject = pg.GetField(objk)
        'get the constructor type
        Dim objn As String = objv.GetField("constructor").GetField("name").Result
        'now which components are we binding
            Select Case objn
            Case "banano_bananovuetifyad3_vslidegroup"
                Dim vsg As VSlideGroup = objv            'ignore
                vsg.BindState(Me)
            Case "banano_bananovuetifyad3_vitemgroup"
                Dim vig As VItemGroup = objv            'ignore
                vig.BindState(Me)
            Case "banano_bananovuetifyad3_votpinput"
                Dim votp As VOTPInput = objv            'ignore
                votp.BindState(Me)
            Case "banano_bananovuetifyad3_vwindow"
                Dim vwindow As VBtnToggle = objv            'ignore
                vwindow.BindState(Me)
            Case "banano_bananovuetifyad3_vbtntoggle"
                Dim btntoggle As VBtnToggle = objv            'ignore
                btntoggle.BindState(Me)
            Case "banano_bananovuetifyad3_vkanbanboard"
                Dim svkanbanboard As VKanbanBoard = objv            'ignore
                svkanbanboard.BindState(Me)
            Case "banano_bananovuetifyad3_vqrcode"
                Dim svqrcode As VQRCode = objv                'ignore
                svqrcode.BindState(Me)
            Case "banano_bananovuetifyad3_vfield"
                Dim SVField As VField = objv        'ignore
                SVField.BindState(Me)
            Case "banano_bananovuetifyad3_bananodatasource"
                Dim SBananoDataSource As BananoDataSource = objv        'ignore
                If SBananoDataSource.DO_NOT_BIND = False Then
                 SBananoDataSource.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_bananodatasourcefirebase"
                Dim SBANanoDataSourceFireBase As BANanoDataSourceFireBase = objv        'ignore
                SBANanoDataSourceFireBase.BindState(Me)
            Case "banano_bananovuetifyad3_bvad3fbrecordset"
                Dim SBVAD3FBRecordSet As BVAD3FBRecordSet = objv        'ignore
                SBVAD3FBRecordSet.BindState(Me)
            Case "banano_bananovuetifyad3_bvad3form"
                Dim SBVAD3Form As BVAD3Form = objv        'ignore
                SBVAD3Form.BindState(Me)
            Case "banano_bananovuetifyad3_jspdfdoc"
                Dim SJsPdfDoc As JsPdfDoc = objv        'ignore
                SJsPdfDoc.BindState(Me)
            Case "banano_bananovuetifyad3_jspdfview"
                Dim SjsPdfView As jsPdfView = objv        'ignore
                SjsPdfView.BindState(Me)
            Case "banano_bananovuetifyad3_valert"
                Dim SVAlert As VAlert = objv        'ignore
                SVAlert.BindState(Me)
            Case "banano_bananovuetifyad3_vapp"
                Dim SVApp As VApp = objv        'ignore
                SVApp.BindState(Me)
            Case "banano_bananovuetifyad3_vappbar"
                Dim SVAppBar As VAppBar = objv        'ignore
                SVAppBar.BindState(Me)
            Case "banano_bananovuetifyad3_vappbarnavicon"
                Dim SVAppBarNavIcon As VAppBarNavIcon = objv        'ignore
                SVAppBarNavIcon.BindState(Me)
            Case "banano_bananovuetifyad3_vappbartitle"
                Dim SVAppBarTitle As VAppBarTitle = objv        'ignore
                SVAppBarTitle.BindState(Me)
            Case "banano_bananovuetifyad3_vautocomplete"
                Dim SVAutoComplete As VAutoComplete = objv        'ignore
                SVAutoComplete.BindState(Me)
            Case "banano_bananovuetifyad3_vavatar"
                Dim SVAvatar As VAvatar = objv        'ignore
                SVAvatar.BindState(Me)
            Case "banano_bananovuetifyad3_vbadge"
                Dim SVBadge As VBadge = objv        'ignore
                SVBadge.BindState(Me)
            Case "banano_bananovuetifyad3_vbottomnavigation"
                Dim SVBottomNavigation As VBottomNavigation = objv        'ignore
                SVBottomNavigation.BindState(Me)
            Case "banano_bananovuetifyad3_vbottomsheet"
                Dim SVBottomSheet As VBottomSheet = objv        'ignore
                SVBottomSheet.BindState(Me)
            Case "banano_bananovuetifyad3_vbreadcrumbs"
                Dim SVBreadCrumbs As VBreadCrumbs = objv        'ignore
                SVBreadCrumbs.BindState(Me)
            Case "banano_bananovuetifyad3_vbtn"
                Dim SVBtn As VBtn = objv        'ignore
                SVBtn.BindState(Me)
            Case "banano_bananovuetifyad3_vbtnicon"
                Dim SVBtnIcon As VBtnIcon = objv        'ignore
                SVBtnIcon.BindState(Me)
            Case "banano_bananovuetifyad3_vcalendar"
                Dim SVCalendar As VCalendar = objv        'ignore
                SVCalendar.BindState(Me)
            Case "banano_bananovuetifyad3_vcard"
                Dim SVCard As VCard = objv        'ignore
                SVCard.BindState(Me)
            Case "banano_bananovuetifyad3_vcard0"
                Dim SVCard0 As VCard0 = objv        'ignore
                SVCard0.BindState(Me)
            Case "banano_bananovuetifyad3_vcardactions"
                Dim SVCardActions As VCardActions = objv        'ignore
                SVCardActions.BindState(Me)
            Case "banano_bananovuetifyad3_vcardsubtitle"
                Dim SVCardSubTitle As VCardSubTitle = objv        'ignore
                SVCardSubTitle.BindState(Me)
            Case "banano_bananovuetifyad3_vcardtext"
                Dim SVCardText As VCardText = objv        'ignore
                SVCardText.BindState(Me)
            Case "banano_bananovuetifyad3_vcardtitle"
                Dim SVCardTitle As VCardTitle = objv        'ignore
                SVCardTitle.BindState(Me)
            Case "banano_bananovuetifyad3_vcarousel"
                Dim SVCarousel As VCarousel = objv        'ignore
                SVCarousel.BindState(Me)
            Case "banano_bananovuetifyad3_vcarouselitem"
                Dim SVCarouselItem As VCarouselItem = objv        'ignore
                SVCarouselItem.BindState(Me)
            Case "banano_bananovuetifyad3_vchartkick"
                Dim SVChartKick As VChartKick = objv        'ignore
                SVChartKick.BindState(Me)
            Case "banano_bananovuetifyad3_vcheckbox"
                Dim SVCheckBox As VCheckBox = objv        'ignore
                SVCheckBox.BindState(Me)
            Case "banano_bananovuetifyad3_vchip"
                Dim SVChip As VChip = objv        'ignore
                SVChip.BindState(Me)
            Case "banano_bananovuetifyad3_vchipgroup"
                Dim SVChipGroup As VChipGroup = objv        'ignore
                SVChipGroup.BindState(Me)
            Case "banano_bananovuetifyad3_vcol"
                Dim SVCol As VCol = objv        'ignore
                SVCol.BindState(Me)
            Case "banano_bananovuetifyad3_vcolorpicker"
                Dim SVColorPicker As VColorPicker = objv        'ignore
                SVColorPicker.BindState(Me)
            Case "banano_bananovuetifyad3_vcombobox"
                Dim SVComboBox As VComboBox = objv        'ignore
                SVComboBox.BindState(Me)
            Case "banano_bananovuetifyad3_vcontainer"
                Dim SVContainer As VContainer = objv        'ignore
                SVContainer.BindState(Me)
            Case "banano_bananovuetifyad3_vdatepicker"
                Dim SVDatePicker As VDatePicker = objv        'ignore
                SVDatePicker.BindState(Me)
            Case "banano_bananovuetifyad3_vdialog"
                Dim SVDialog As VDialog = objv        'ignore
                SVDialog.BindState(Me)
            Case "banano_bananovuetifyad3_vdialog0"
                Dim SVDialog0 As VDialog0 = objv        'ignore
                SVDialog0.BindState(Me)
            Case "banano_bananovuetifyad3_vdivider"
                Dim SVDivider As VDivider = objv        'ignore
                SVDivider.BindState(Me)
            Case "banano_bananovuetifyad3_vexpansionpanel"
                Dim SVExpansionPanel As VExpansionPanel = objv        'ignore
                SVExpansionPanel.BindState(Me)
            Case "banano_bananovuetifyad3_vexpansionpanelcontent"
                Dim SVExpansionPanelContent As VExpansionPanelContent = objv        'ignore
                SVExpansionPanelContent.BindState(Me)
            Case "banano_bananovuetifyad3_vexpansionpanelheader"
                Dim SVExpansionPanelHeader As VExpansionPanelHeader = objv        'ignore
                SVExpansionPanelHeader.BindState(Me)
            Case "banano_bananovuetifyad3_vexpansionpanels"
                Dim SVExpansionPanels As VExpansionPanels = objv        'ignore
                SVExpansionPanels.BindState(Me)
            Case "banano_bananovuetifyad3_vfab"
                Dim SVFAB As VFAB = objv        'ignore
                SVFAB.BindState(Me)
            Case "banano_bananovuetifyad3_vfileinput"
                Dim SVFileInput As VFileInput = objv        'ignore
                SVFileInput.BindState(Me)
            Case "banano_bananovuetifyad3_vfooter"
                Dim SVFooter As VFooter = objv        'ignore
                SVFooter.BindState(Me)
            Case "banano_bananovuetifyad3_vform"
                Dim SVForm As VForm = objv        'ignore
                If SVForm.DO_NOT_BIND = False Then
                    SVForm.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_vhover"
                Dim SVHover As VHover = objv        'ignore
                SVHover.BindState(Me)
            Case "banano_bananovuetifyad3_vicon"
                Dim SVIcon As VIcon = objv        'ignore
                SVIcon.BindState(Me)
            Case "banano_bananovuetifyad3_vimg"
                Dim SVImg As VImg = objv        'ignore
                SVImg.BindState(Me)
            Case "banano_bananovuetifyad3_vinfobox"
                Dim SVInfoBox As VInfoBox = objv        'ignore
                SVInfoBox.BindState(Me)
            Case "banano_bananovuetifyad3_vlabel"
                Dim SVLabel As VLabel = objv        'ignore
                If SVLabel.sOwnTag <> "router-view" Then
                    SVLabel.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_vlazy"
                Dim SVLazy As VLazy = objv        'ignore
                SVLazy.BindState(Me)
            Case "banano_bananovuetifyad3_vleaflet"
                Dim SVLeaflet As VLeaflet = objv        'ignore
                SVLeaflet.BindState(Me)
            Case "banano_bananovuetifyad3_vlist"
                Dim SVList As VList = objv        'ignore
                If SVList.DO_NOT_BIND = False Then
                SVList.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_vlistgroup"
                Dim SVListGroup As VListGroup = objv        'ignore
                SVListGroup.BindState(Me)
            Case "banano_bananovuetifyad3_vlistitem"
                Dim SVListItem As VListItem = objv        'ignore
                SVListItem.BindState(Me)
            Case "banano_bananovuetifyad3_vlistitemavatar"
                Dim SVListItemAvatar As VListItemAvatar = objv        'ignore
                SVListItemAvatar.BindState(Me)
            Case "banano_bananovuetifyad3_vlistitemgroup"
                Dim SVListItemGroup As VListItemGroup = objv        'ignore
                SVListItemGroup.BindState(Me)
            Case "banano_bananovuetifyad3_vlistslot"
                Dim SVListSlot As VListSlot = objv        'ignore
                SVListSlot.BindState(Me)
            Case "banano_bananovuetifyad3_vmain"
                Dim SVMain As VMain = objv        'ignore
                SVMain.BindState(Me)
            Case "banano_bananovuetifyad3_vmenu"
                Dim SVMenu As VMenu = objv        'ignore
                If SVMenu.DO_NOT_BIND = False Then
                    SVMenu.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_vmsgbox"
                Dim SVMsgBox As VMsgBox = objv        'ignore
                SVMsgBox.BindState(Me)
            Case "banano_bananovuetifyad3_vnavigationdrawer"
                Dim SVNavigationDrawer As VNavigationDrawer = objv        'ignore
                SVNavigationDrawer.BindState(Me)
            Case "banano_bananovuetifyad3_voverlay"
                Dim SVOverlay As VOverlay = objv        'ignore
                SVOverlay.BindState(Me)
            Case "banano_bananovuetifyad3_vpagination"
                Dim SVPagination As VPagination = objv        'ignore
                SVPagination.BindState(Me)
            Case "banano_bananovuetifyad3_vpanelitem"
                Dim SVPanelItem As VPanelItem = objv        'ignore
                SVPanelItem.BindState(Me)
            Case "banano_bananovuetifyad3_vparallax"
                Dim SVParallax As VParallax = objv        'ignore
                SVParallax.BindState(Me)
            Case "banano_bananovuetifyad3_vprism"
                Dim SVPrism As VPrism = objv        'ignore
                SVPrism.BindState(Me)
            Case "banano_bananovuetifyad3_vprogresscircular"
                Dim SVProgressCircular As VProgressCircular = objv        'ignore
                SVProgressCircular.BindState(Me)
            Case "banano_bananovuetifyad3_vprogresslinear"
                Dim SVProgressLinear As VProgressLinear = objv        'ignore
                SVProgressLinear.BindState(Me)
            Case "banano_bananovuetifyad3_vradio"
                Dim SVRadio As VRadio = objv        'ignore
                SVRadio.BindState(Me)
            Case "banano_bananovuetifyad3_vradiogroup"
                Dim SVRadioGroup As VRadioGroup = objv        'ignore
                SVRadioGroup.BindState(Me)
            Case "banano_bananovuetifyad3_vrangeslider"
                Dim SVRangeSlider As VRangeSlider = objv        'ignore
                SVRangeSlider.BindState(Me)
            Case "banano_bananovuetifyad3_vrating"
                Dim SVRating As VRating = objv        'ignore
                SVRating.BindState(Me)
            Case "banano_bananovuetifyad3_vrow"
                Dim SVRow As VRow = objv        'ignore
                SVRow.BindState(Me)
            Case "banano_bananovuetifyad3_vselect"
                Dim SVSelect As VSelect = objv        'ignore
                SVSelect.BindState(Me)
            Case "banano_bananovuetifyad3_vsheet"
                Dim SVSheet As VSheet = objv        'ignore
                SVSheet.BindState(Me)
            Case "banano_bananovuetifyad3_vsimpletable"
                Dim SVSimpleTable As VSimpleTable = objv        'ignore
                SVSimpleTable.BindState(Me)
            Case "banano_bananovuetifyad3_vskeletonloader"
                Dim SVSkeletonLoader As VSkeletonLoader = objv        'ignore
                SVSkeletonLoader.BindState(Me)
            Case "banano_bananovuetifyad3_vslider"
                Dim SVSlider As VSlider = objv        'ignore
                SVSlider.BindState(Me)
            Case "banano_bananovuetifyad3_vsnackbar"
                Dim SVSnackBar As VSnackBar = objv        'ignore
                SVSnackBar.BindState(Me)
            Case "banano_bananovuetifyad3_vspacer"
                Dim SVSpacer As VSpacer = objv        'ignore
                SVSpacer.BindState(Me)
            Case "banano_bananovuetifyad3_vsparkline"
                Dim SVSparkline As VSparkline = objv        'ignore
                SVSparkline.BindState(Me)
            Case "banano_bananovuetifyad3_vspeeddial"
                Dim SVSpeedDial As VSpeedDial = objv        'ignore
                SVSpeedDial.BindState(Me)
            Case "banano_bananovuetifyad3_vstepper"
                Dim SVStepper As VStepper = objv        'ignore
                SVStepper.BindState(Me)
            Case "banano_bananovuetifyad3_vsteppercontent"
                Dim SVStepperContent As VStepperContent = objv        'ignore
                SVStepperContent.BindState(Me)
            Case "banano_bananovuetifyad3_vstepperstep"
                Dim SVStepperStep As VStepperStep = objv        'ignore
                SVStepperStep.BindState(Me)
            Case "banano_bananovuetifyad3_vswitch"
                Dim SVSwitch As VSwitch = objv        'ignore
                SVSwitch.BindState(Me)
            Case "banano_bananovuetifyad3_vtab"
                Dim SVTab As VTab = objv        'ignore
                SVTab.BindState(Me)
            Case "banano_bananovuetifyad3_vtabitem"
                Dim SVTabItem As VTabItem = objv        'ignore
                SVTabItem.BindState(Me)
            Case "banano_bananovuetifyad3_vtabs"
                Dim SVTabs As VTabs = objv        'ignore
                SVTabs.BindState(Me)
            Case "banano_bananovuetifyad3_vtemplate"
                Dim SVTemplate As VTemplate = objv        'ignore
                SVTemplate.BindState(Me)
            Case "banano_bananovuetifyad3_vtextfield"
                Dim SVTextField As VTextField = objv        'ignore
                SVTextField.BindState(Me)
            Case "banano_bananovuetifyad3_vtimeline"
                Dim SVTimeLine As VTimeLine = objv        'ignore
                SVTimeLine.BindState(Me)
            Case "banano_bananovuetifyad3_vtimelineitem"
                Dim SVTimelineItem As VTimelineItem = objv        'ignore
                SVTimelineItem.BindState(Me)
            Case "banano_bananovuetifyad3_vtimepicker"
                Dim SVTimePicker As VTimePicker = objv        'ignore
                SVTimePicker.BindState(Me)
            Case "banano_bananovuetifyad3_vtoolbar"
                Dim SVToolBar As VToolBar = objv        'ignore
                SVToolBar.BindState(Me)
            Case "banano_bananovuetifyad3_vtoolbartitle"
                Dim SVToolBarTitle As VToolBarTitle = objv        'ignore
                SVToolBarTitle.BindState(Me)
            Case "banano_bananovuetifyad3_vtooltip"
                Dim SVToolTip As VToolTip = objv        'ignore
                SVToolTip.BindState(Me)
            Case "banano_bananovuetifyad3_vtransition"
                Dim SVTransition As VTransition = objv        'ignore
                SVTransition.BindState(Me)
            Case "banano_bananovuetifyad3_vtreeview"
                Dim SVTreeView As VTreeView = objv        'ignore
                SVTreeView.BindState(Me)
            Case "banano_bananovuetifyad3_vueeditor"
                Dim SVueEditor As VueEditor = objv        'ignore
                SVueEditor.BindState(Me)
            Case "banano_bananovuetifyad3_vueelement"
                Dim SVueElement As VueElement = objv        'ignore
                SVueElement.BindState(Me)
            Case "banano_bananovuetifyad3_vueflowy"
                Dim SVueFlowy As VueFlowy = objv        'ignore
                SVueFlowy.BindState(Me)
            Case "banano_bananovuetifyad3_vuegmap"
                Dim SVueGMap As VueGMap = objv        'ignore
                SVueGMap.BindState(Me)
            Case "banano_bananovuetifyad3_vueinfobox"
                Dim SVueInfoBox As VueInfoBox = objv        'ignore
                SVueInfoBox.BindState(Me)
            Case "banano_bananovuetifyad3_vuetable"
                Dim SVueTable As VueTable = objv        'ignore
                If SVueTable.DO_NOT_BIND = False Then
                    SVueTable.BindState(Me)
                End If
            Case "banano_bananovuetifyad3_vwebcam"
                Dim SVWebCam As VWebCam = objv        'ignore
                SVWebCam.BindState(Me)
        End Select
        Catch
            'Log(LastException)
        End Try    'ignore
    Next
End Sub
 
Last edited:
Upvote 0

tchart

Well-Known Member
Licensed User
Longtime User
@Mashiane just a note on distributing zip files. I downloaded your demo from GitHub. You can see under the proiperties that the it says this file came from another computer. Generally you need to check the "Unblock" checkbox to get the file to behave normally. Ive seen this behaviour from executables and DLL's in the past (ie they would not work immeditaely after downloading them unless the Unblock was checked).

1642712963421.png
 
Upvote 0
Top