11' ==========================================================================
2- ' tBUserFormConverter v2.1
2+ ' tBUserFormConverter v2.2
33'
44' A VBIDE add-in (complied with twinBASIC) that converts VBA UserForms for use in twinBASIC.
55'
@@ -89,19 +89,24 @@ Module FormProcessing
8989 Dim comdlg As New VBComDlg.CommonDialog
9090 Dim res As Boolean
9191 Dim activeVBProjectFileName As String
92+ Dim activeVBProjectFolderName As String
9293
9394 comdlg.DialogTitle = "Select Output Folder:"
9495
9596 'it's possible that user created a useform in a new unsaved document
9697 'in which case activeVBProject.FileName will fail
9798 On Error Resume Next
9899 activeVBProjectFileName = activeVBProject.FileName
99- If Err.Number > 0 Then activeVBProjectFileName = CurDir()
100+ If Err.Number <> 0 Then
101+ activeVBProjectFolderName = CurDir()
102+ Else
103+ activeVBProjectFolderName = fso.GetParentFolderName(activeVBProjectFileName)
104+ End If
100105 On Error GoTo 0
101106
102107 On Error GoTo EH
103108
104- comdlg.InitDir = fso.GetParentFolderName(activeVBProjectFileName)
109+ comdlg.InitDir = activeVBProjectFolderName
105110
106111 res = comdlg.ShowFolderBrowser()
107112 If Not res Then
@@ -136,19 +141,17 @@ Module FormProcessing
136141 Set userForm = activeVBProject.VBComponents(dialogName)
137142
138143 'generate GUID to be used for twinBASIC form designer and code module
139- 'does this result in null-terminated string? If so need to strip...
140144 guid = VBA.CreateGUID()
141- If InStr(guid, vbNullChar) > 0 Then
142- guid = Left$(guid, InStr(guid, vbNullChar) - 1)
143- End If
144145
145146 'sort controls in order of descendancy - must process parent controls first!
146147 Set sorted = SortControls(userForm.Designer, dialogName)
147148
148149 'create the tB form dictionary from resources
149150 Set tBForm = JsonConverter.ParseJson(readControlJson("Form"))
151+
150152 'set properties of tB form that have matching UserForm counterparts
151153 processForm userForm, tBForm, ptsToPixels, useVBAFont, use3DAppearance, guid, hideIconBox
154+
152155 'enumerate and process each UserForm control
153156 For Each ctl In sorted
154157 vbaControlTypeName = TypeName(ctl)
@@ -486,8 +489,8 @@ Module FormProcessing
486489 tbControl.Item("Tag") = ctl.Tag
487490 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
488491
489- If ctl.MouseIcon IsNot Nothing Then
490- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
492+ If ctl.MouseIcon <> 0 Then
493+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
491494 End If
492495
493496 If TypeName(ctl.Parent) = "Frame" Then
@@ -543,8 +546,8 @@ Module FormProcessing
543546 tbControl.Item("Tag") = ctl.Tag
544547 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
545548
546- If ctl.MouseIcon IsNot Nothing Then
547- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
549+ If ctl.MouseIcon <> 0 Then
550+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
548551 End If
549552
550553 tbControl.Item("ToolTipText") = ctl.ControlTipText
@@ -588,8 +591,8 @@ Module FormProcessing
588591 tbControl.Item("Tag") = ctl.Tag
589592 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
590593
591- If ctl.MouseIcon IsNot Nothing Then
592- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
594+ If ctl.MouseIcon <> 0 Then
595+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
593596 End If
594597
595598 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -601,6 +604,7 @@ Module FormProcessing
601604 tbControl.Item("TabIndex") = ctl.TabIndex
602605 tbControl.Item("TabStop") = ctl.TabStop
603606 tbControl.Item("Text") = ctl.Text
607+
604608 Select Case ctl.TextAlign
605609 Case fmTextAlignCenter
606610 tbControl.Item("Alignment") = "vbCenter"
@@ -637,8 +641,8 @@ Module FormProcessing
637641 tbControl.Item("Tag") = ctl.Tag
638642 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
639643
640- If ctl.MouseIcon IsNot Nothing Then
641- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
644+ If ctl.MouseIcon <> 0 Then
645+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
642646 End If
643647
644648 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -676,8 +680,8 @@ Module FormProcessing
676680 tbControl.Item("Tag") = ctl.Tag
677681 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
678682
679- If ctl.MouseIcon IsNot Nothing Then
680- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
683+ If ctl.MouseIcon <> 0 Then
684+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
681685 End If
682686
683687 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -690,6 +694,7 @@ Module FormProcessing
690694 tbControl.Item("Value") = IIf(ctl.Value, "vbChecked", "vbUnchecked")
691695 tbControl.Item("TabIndex") = ctl.TabIndex
692696 tbControl.Item("TabStop") = ctl.TabStop
697+
693698 Select Case ctl.TextAlign
694699 Case fmTextAlignCenter
695700 'tbControl.Item("Alignment") = "tbCenter" 'tb CheckBox does not allow tbCenter
@@ -728,8 +733,8 @@ Module FormProcessing
728733 tbControl.Item("Tag") = ctl.Tag
729734 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
730735
731- If ctl.MouseIcon IsNot Nothing Then
732- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
736+ If ctl.MouseIcon <> 0 Then
737+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
733738 End If
734739
735740 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -779,8 +784,8 @@ Module FormProcessing
779784 tbControl.Item("Tag") = ctl.Tag
780785 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
781786
782- If ctl.MouseIcon IsNot Nothing Then
783- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
787+ If ctl.MouseIcon <> 0 Then
788+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
784789 End If
785790
786791 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -791,6 +796,7 @@ Module FormProcessing
791796 tbControl.Item("ForeColor") = ctl.ForeColor
792797 tbControl.Item("TabIndex") = ctl.TabIndex
793798 tbControl.Item("TabStop") = ctl.TabStop
799+
794800 Select Case ctl.MultiSelect
795801 Case fmMultiSelectSingle
796802 tbControl.Item("MultiSelect") = "vbMultiSelectNone"
@@ -799,6 +805,7 @@ Module FormProcessing
799805 Case fmMultiSelectExtended
800806 tbControl.Item("MultiSelect") = "vbMultiSelectExtended"
801807 End Select
808+
802809 Select Case ctl.ListStyle
803810 Case fmListStylePlain
804811 tbControl.Item("Style") = "vbListBoxStandard"
@@ -836,8 +843,8 @@ Module FormProcessing
836843 tbControl.Item("Tag") = ctl.Tag
837844 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
838845
839- If ctl.MouseIcon IsNot Nothing Then
840- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
846+ If ctl.MouseIcon <> 0 Then
847+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
841848 End If
842849
843850 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -850,6 +857,7 @@ Module FormProcessing
850857 tbControl.Item("TabIndex") = ctl.TabIndex
851858 tbControl.Item("Caption") = ctl.Caption
852859 tbControl.Item("Value") = ctl.Value
860+
853861 Select Case ctl.TextAlign
854862 Case fmTextAlignCenter
855863 tbControl.Item("Alignment") = "tbCenter"
@@ -858,8 +866,10 @@ Module FormProcessing
858866 Case fmTextAlignRight
859867 tbControl.Item("Alignment") = "tbRightJustify"
860868 End Select
869+
861870 tbControl.Item("VisualStyles") = useVisualStyles
862871 If use3DAppearance Then tbControl.Item("Appearance") = vbAppear3d Else tbControl.Item("Appearance") = vbAppearFlat
872+
863873 If ctl.Picture.type <> 0 Then
864874 tbControl.Item("Picture") = GetImageString(ctl.Picture)
865875 tbControl.Item("Style") = "vbButtonGraphical"
@@ -890,8 +900,8 @@ Module FormProcessing
890900 tbControl.Item("Tag") = ctl.Tag
891901 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
892902
893- If ctl.MouseIcon IsNot Nothing Then
894- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
903+ If ctl.MouseIcon <> 0 Then
904+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
895905 End If
896906
897907 tbControl.Item("ToolTipText") = ctl.ControlTipText
@@ -929,8 +939,8 @@ Module FormProcessing
929939 tbControl.Item("Tag") = ctl.Tag
930940 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
931941
932- If ctl.MouseIcon IsNot Nothing Then
933- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
942+ If ctl.MouseIcon <> 0 Then
943+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
934944 End If
935945
936946 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -979,8 +989,8 @@ Module FormProcessing
979989 tbControl.Item("Tag") = ctl.Tag
980990 tbControl.Item("MousePointer") = getMousePointerString(ctl.MousePointer)
981991
982- If ctl.MouseIcon IsNot Nothing Then
983- tbControl.Item("MouseIcon") = GetMouseIconString (ctl.MouseIcon)
992+ If ctl.MouseIcon <> 0 Then
993+ tbControl.Item("MouseIcon") = GetImageString (ctl.MouseIcon)
984994 End If
985995
986996 'tbControl.Item("HelpContextID") = ctl.HelpContextID
@@ -1066,8 +1076,8 @@ Module FormProcessing
10661076
10671077 tbControl.Item("MousePointer") = getMousePointerString(frm.MousePointer)
10681078
1069- If frm.MouseIcon IsNot Nothing Then
1070- tbControl.Item("MouseIcon") = GetMouseIconString (frm.MouseIcon)
1079+ If frm.MouseIcon <> 0 Then
1080+ tbControl.Item("MouseIcon") = GetImageString (frm.MouseIcon)
10711081 End If
10721082
10731083 tbControl.Item("FormDesignerId") = "{" & guid & "}"
0 commit comments