Hi,
I'm sure this question was and will be asked several times, so it might be a good idea to mark this topic important.
What to do with existing forms and windows (in my case created using PureForm) so they can be edited and changed in the new Form designer in PB 5.x?
Is there some Helper app available somewhere?
Move project to new form designer
Move project to new form designer
Bye Karl
Re: Move project to new form designer
No help file yet. You can try to copy/paste the gadget creation code in a new form file, it will load them if the syntax is more or less normal 
Re: Move project to new form designer
Well ok, as I used PureForm to create the code and simply copiingy does not work, I guess I have to rebuild it. *sigh*
Bye Karl
Re: Move project to new form designer
If pureform generates code like:Klonk wrote:Well ok, as I used PureForm to create the code and simply copiingy does not work, I guess I have to rebuild it. *sigh*
gadget = ButtonGadget(...)
or
ButtonGadget(gadget, ...)
You should be able to copy it!
Re: Move project to new form designer
I did some tests copying and pasting from PureForm generated code to new pb and pbf files, to re-use it you have to do some manual adjusting (pictures, som gadget colors, etc) but the main structure is there.
here is the code directly pasted as a pb file, it should compile ok:
and here is as seen in FD (I find that window size and included images are lost)
And here are the images used:


here is the code directly pasted as a pb file, it should compile ok:
Code: Select all
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window
EndEnumeration
;}
;{ Gadgets
Enumeration
#Image_numeri
#TrackBar_128
#TrackBar_64
#TrackBar_32
#TrackBar_16
#TrackBar_8
#TrackBar_4
#TrackBar_2
#TrackBar_1
#Frame3D_Numeri
#String_DEC
#String_HEX
#String_BIN
#Text_DEC
#Text_Hex
#Text_BIN
#Text_Dec_in
#String_DEC_IN
#Text_HEX_Out
#String_Hex_Out
#String_Dec_Out
#Text_Dec_Out
#String_Hex_in
#Text_23
#Image_equal1
#Image_equal2
EndEnumeration
;}
;{ Images
Enumeration
#Image_Image_0
#Image_Image_24
#Image_Image_25
EndEnumeration
;}
;{ Included Images
DataSection
Image_Image_0:
IncludeBinary "numeri2.png"
Image_Image_24:
IncludeBinary "equal.png"
EndDataSection
;}
;{ Image Plugins
UsePNGImageDecoder()
;}
;}
Procedure OpenWindow_Window()
If OpenWindow(#Window, 426, -8, 610, 236, "Hex-Ruler", #PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ImageGadget(#Image_numeri, 10, 20, 452, 59, CatchImage(#Image_Image_0, ?Image_Image_0))
TrackBarGadget(#TrackBar_128, 20, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_64, 75, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_32, 131, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_16, 188, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_8, 246, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_4, 302, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_2, 358, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_1, 415, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
Frame3DGadget(#Frame3D_Numeri, 5, 5, 595, 135, "Selettore")
StringGadget(#String_DEC, 485, 30, 100, 20, "0", #PB_String_Numeric|#PB_String_ReadOnly|#ES_RIGHT)
StringGadget(#String_HEX, 485, 75, 100, 20, "0", #PB_String_ReadOnly|#PB_String_UpperCase|#ES_RIGHT)
StringGadget(#String_BIN, 485, 115, 100, 20, "0", #PB_String_Numeric|#PB_String_ReadOnly|#ES_RIGHT)
TextGadget(#Text_DEC, 500, 15, 85, 15, "Dec", #PB_Text_Right)
TextGadget(#Text_Hex, 500, 60, 85, 15, "Hex", #PB_Text_Right)
TextGadget(#Text_BIN, 500, 100, 85, 15, "Bin", #PB_Text_Right)
TextGadget(#Text_Dec_in, 25, 160, 85, 20, "DEC INPUT", #PB_Text_Right)
StringGadget(#String_DEC_IN, 10, 185, 100, 25, "", #PB_String_Numeric|#ES_RIGHT)
TextGadget(#Text_HEX_Out, 157, 160, 95, 20, "HEX OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_Out, 152, 185, 100, 25, "", #PB_String_ReadOnly|#PB_String_UpperCase|#ES_RIGHT)
StringGadget(#String_Dec_Out, 485, 185, 100, 25, "", #PB_String_Numeric|#PB_String_ReadOnly|#PB_String_UpperCase|#ES_RIGHT)
TextGadget(#Text_Dec_Out, 490, 160, 95, 20, "DEC OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_in, 345, 185, 100, 25, "", #ES_RIGHT)
TextGadget(#Text_23, 360, 160, 85, 20, "HEX INPUT", #PB_Text_Right)
ImageGadget(#Image_equal1, 110, 190, 38, 16, CatchImage(#Image_Image_24, ?Image_Image_24))
ImageGadget(#Image_equal2, 448, 190, 38, 16, CatchImage(#Image_Image_25, ?Image_Image_24))
EndIf
EndProcedure
OpenWindow_Window()
;{- Event loop
Repeat
Select WaitWindowEvent(10)
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #TrackBar_128
Case #TrackBar_64
Case #TrackBar_32
Case #TrackBar_16
Case #TrackBar_8
Case #TrackBar_4
Case #TrackBar_2
Case #TrackBar_1
Case #String_DEC_IN
Case #String_Hex_in
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window
CloseWindow(#Window)
Break
EndSelect
EndSelect
ForEver
;
;}
Code: Select all
Global Window_0
Enumeration #PB_Compiler_EnumerationValue
#Image_numeri
#TrackBar_128
#TrackBar_64
#TrackBar_32
#TrackBar_16
#TrackBar_8
#TrackBar_4
#TrackBar_2
#TrackBar_1
#Frame3D_Numeri
#String_DEC
#String_HEX
#String_BIN
#Text_DEC
#Text_Hex
#Text_BIN
#Text_Dec_in
#String_DEC_IN
#Text_HEX_Out
#String_Hex_Out
#String_Dec_Out
#Text_Dec_Out
#String_Hex_in
#Text_23
#Image_equal1
#Image_equal2
EndEnumeration
Procedure InitWindow_0()
Window_0 = OpenWindow(#PB_Any, 0, 0, 600, 400, "", #PB_Window_SystemMenu)
ImageGadget(#Image_numeri, 10, 20, 452, 59, ImageID())
TrackBarGadget(#TrackBar_128, 20, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_64, 75, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_32, 131, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_16, 188, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_8, 246, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_4, 302, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_2, 358, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_1, 415, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
Frame3DGadget(#Frame3D_Numeri, 5, 5, 595, 135, "Selettore")
StringGadget(#String_DEC, 485, 30, 100, 20, "0", #PB_String_Numeric | #PB_String_ReadOnly)
StringGadget(#String_HEX, 485, 75, 100, 20, "0", #PB_String_ReadOnly | #PB_String_UpperCase)
StringGadget(#String_BIN, 485, 115, 100, 20, "0", #PB_String_Numeric | #PB_String_ReadOnly)
TextGadget(#Text_DEC, 500, 15, 85, 15, "Dec", #PB_Text_Right)
TextGadget(#Text_Hex, 500, 60, 85, 15, "Hex", #PB_Text_Right)
TextGadget(#Text_BIN, 500, 100, 85, 15, "Bin", #PB_Text_Right)
TextGadget(#Text_Dec_in, 25, 160, 85, 20, "DEC INPUT", #PB_Text_Right)
StringGadget(#String_DEC_IN, 10, 185, 100, 25, "", #PB_String_Numeric)
TextGadget(#Text_HEX_Out, 157, 160, 95, 20, "HEX OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_Out, 152, 185, 100, 25, "", #PB_String_ReadOnly | #PB_String_UpperCase)
StringGadget(#String_Dec_Out, 485, 185, 100, 25, "", #PB_String_Numeric | #PB_String_ReadOnly | #PB_String_UpperCase)
TextGadget(#Text_Dec_Out, 490, 160, 95, 20, "DEC OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_in, 345, 185, 100, 25, "")
TextGadget(#Text_23, 360, 160, 85, 20, "HEX INPUT", #PB_Text_Right)
ImageGadget(#Image_equal1, 110, 190, 38, 16, ImageID())
ImageGadget(#Image_equal2, 448, 190, 38, 16, ImageID())
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure


Re: Move project to new form designer
Here is the final form after window properties and images have been adjusted in Form Designer; it should compile correctly:
Code: Select all
Global Window_0
Global Img_0, Img_1
Enumeration #PB_Compiler_EnumerationValue
#Image_numeri
#TrackBar_128
#TrackBar_64
#TrackBar_32
#TrackBar_16
#TrackBar_8
#TrackBar_4
#TrackBar_2
#TrackBar_1
#Frame3D_Numeri
#String_DEC
#String_HEX
#String_BIN
#Text_DEC
#Text_Hex
#Text_BIN
#Text_Dec_in
#String_DEC_IN
#Text_HEX_Out
#String_Hex_Out
#String_Dec_Out
#Text_Dec_Out
#String_Hex_in
#Text_23
#Image_equal1
#Image_equal2
EndEnumeration
UsePNGImageDecoder()
Img_0 = CatchImage(#PB_Any,?img_0)
Img_1 = CatchImage(#PB_Any,?img_1)
Procedure InitWindow_0()
Window_0 = OpenWindow(#PB_Any, 0, 0, 590, 230, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
ImageGadget(#Image_numeri, 10, 20, 452, 59, ImageID(Img_0))
TrackBarGadget(#TrackBar_128, 20, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_64, 75, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_32, 131, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_16, 188, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_8, 246, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_4, 302, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_2, 358, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
TrackBarGadget(#TrackBar_1, 415, 80, 50, 55, 0, 1, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
Frame3DGadget(#Frame3D_Numeri, 5, 5, 595, 135, "Selettore")
StringGadget(#String_DEC, 485, 30, 100, 20, "0", #PB_String_Numeric | #PB_String_ReadOnly)
StringGadget(#String_HEX, 485, 75, 100, 20, "0", #PB_String_ReadOnly | #PB_String_UpperCase)
StringGadget(#String_BIN, 485, 115, 100, 20, "0", #PB_String_Numeric | #PB_String_ReadOnly)
TextGadget(#Text_DEC, 500, 15, 85, 15, "Dec", #PB_Text_Right)
TextGadget(#Text_Hex, 500, 60, 85, 15, "Hex", #PB_Text_Right)
TextGadget(#Text_BIN, 500, 100, 85, 15, "Bin", #PB_Text_Right)
TextGadget(#Text_Dec_in, 25, 160, 85, 20, "DEC INPUT", #PB_Text_Right)
StringGadget(#String_DEC_IN, 10, 185, 100, 25, "", #PB_String_Numeric)
TextGadget(#Text_HEX_Out, 157, 160, 95, 20, "HEX OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_Out, 152, 185, 100, 25, "", #PB_String_ReadOnly | #PB_String_UpperCase)
StringGadget(#String_Dec_Out, 485, 185, 100, 25, "", #PB_String_Numeric | #PB_String_ReadOnly | #PB_String_UpperCase)
TextGadget(#Text_Dec_Out, 490, 160, 95, 20, "DEC OUTPUT", #PB_Text_Right)
StringGadget(#String_Hex_in, 345, 185, 100, 25, "")
TextGadget(#Text_23, 360, 160, 85, 20, "HEX INPUT", #PB_Text_Right)
ImageGadget(#Image_equal1, 110, 190, 38, 16, ImageID(Img_1))
ImageGadget(#Image_equal2, 448, 190, 38, 16, ImageID(Img_1))
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
DataSection
img_0: IncludeBinary "numeri2.png"
img_1: IncludeBinary "equal.png"
EndDataSection
Re: Move project to new form designer
Thanks for testing Luciano, it seems it doesn't require too much work? As you said it's mainly if you're using pictures that you will have some manual changes to do, and also if the code isn't clean enough, though it seems PureForm generates some very good code so it shouldn't be a problem 
Re: Move project to new form designer
I did a more complete test with more gadgets, the complete code pasted from PureForm is:

Here is as parsed in Form Designer:
The differences are:
1-Windows setting not imported (as before);
2-String gadget text not right aligned; but no surprise since PureForm used a constant which is not among the flags reported in the help file;
3-The mask text in date gadget has a black background, only cosmetic since mask is imported correctly
4-Date gadget flags (#PB_Date_UpDown and #PB_Date_Checkbox) have not be imported and they look missing from FD

Code: Select all
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#Button_0
#Calendar_2
#CheckBox_3
#ComboBox_4
#Date_5
#Editor_6
#ExplorerCombo_7
#ExplorerList_9
#ExplorerTree_10
#Frame3D_11
#Option_12
#ProgressBar_13
#Spin_14
#String_15
#Text_16
EndEnumeration
;}
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 412, -18, 713, 669, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ButtonGadget(#Button_0, 10, 15, 145, 40, "BUTTON_ Caption")
CalendarGadget(#Calendar_2, 160, 15, 175, 165)
CheckBoxGadget(#CheckBox_3, 355, 20, 110, 30, "CKBOX_Caption")
ComboBoxGadget(#ComboBox_4, 355, 60, 190, 20, #PB_ComboBox_Editable|#PB_ComboBox_Image|#PB_ComboBox_LowerCase)
DateGadget(#Date_5, 160, 195, 175, 25, "%dd/%mm/%yyyy", Date(), #PB_Date_CheckBox|#PB_Date_UpDown)
EditorGadget(#Editor_6, 10, 65, 140, 185, #PB_Editor_ReadOnly)
SetGadgetText(#Editor_6, "EDITOR_Text")
ExplorerComboGadget(#ExplorerCombo_7, 355, 95, 190, 20, "c:\")
ExplorerListGadget(#ExplorerList_9, 355, 125, 190, 130, "c:\")
ExplorerTreeGadget(#ExplorerTree_10, 355, 260, 190, 215, "c:\")
Frame3DGadget(#Frame3D_11, 555, 25, 145, 60, "FRAME_Text")
OptionGadget(#Option_12, 160, 225, 140, 25, "OPTION_Text")
ProgressBarGadget(#ProgressBar_13, 10, 255, 330, 20, 10, 123, #PB_ProgressBar_Smooth)
SpinGadget(#Spin_14, 10, 280, 150, 40, 0, 100, #PB_Spin_Numeric|#PB_Spin_ReadOnly)
StringGadget(#String_15, 165, 280, 175, 40, "STRING_Text_Right", #ES_RIGHT)
TextGadget(#Text_16, 10, 330, 330, 25, "TEXT_Text_Center", #PB_Text_Center)
EndIf
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Select WaitWindowEvent(10)
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
Case #Calendar_2
Case #CheckBox_3
Case #ComboBox_4
Case #Date_5
Case #Editor_6
Case #ExplorerCombo_7
Case #ExplorerList_9
Case #ExplorerTree_10
Case #Frame3D_11
Case #Option_12
Case #ProgressBar_13
Case #Spin_14
Case #String_15
Case #Text_16
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window_0
CloseWindow(#Window_0)
Break
EndSelect
EndSelect
ForEver
;
;}

Here is as parsed in Form Designer:
Code: Select all
Global Window_1
Enumeration #PB_Compiler_EnumerationValue
#Button_0
#Calendar_2
#CheckBox_3
#ComboBox_4
#Date_5
#Editor_6
#ExplorerCombo_7
#ExplorerList_9
#ExplorerTree_10
#Frame3D_11
#Option_12
#ProgressBar_13
#Spin_14
#String_15
#Text_16
EndEnumeration
Procedure InitWindow_1()
Window_1 = OpenWindow(#PB_Any, 0, 0, 600, 400, "", #PB_Window_SystemMenu)
ButtonGadget(#Button_0, 10, 15, 145, 40, "BUTTON_ Caption")
CalendarGadget(#Calendar_2, 160, 15, 175, 165)
CheckBoxGadget(#CheckBox_3, 355, 20, 110, 30, "CKBOX_Caption")
ComboBoxGadget(#ComboBox_4, 355, 60, 190, 20, #PB_ComboBox_Editable | #PB_ComboBox_LowerCase | #PB_ComboBox_Image)
DateGadget(#Date_5, 160, 195, 175, 25, "%dd/%mm/%yyyy")
EditorGadget(#Editor_6, 10, 65, 140, 185, #PB_Editor_ReadOnly)
ExplorerComboGadget(#ExplorerCombo_7, 355, 95, 190, 20, "c:\")
ExplorerListGadget(#ExplorerList_9, 355, 125, 190, 130, "c:\")
ExplorerTreeGadget(#ExplorerTree_10, 355, 260, 190, 215, "c:\")
Frame3DGadget(#Frame3D_11, 555, 25, 145, 60, "FRAME_Text")
OptionGadget(#Option_12, 160, 225, 140, 25, "OPTION_Text")
ProgressBarGadget(#ProgressBar_13, 10, 255, 330, 20, 10, 123, #PB_ProgressBar_Smooth)
SpinGadget(#Spin_14, 10, 280, 150, 40, 0, 100, #PB_Spin_ReadOnly | #PB_Spin_Numeric)
StringGadget(#String_15, 165, 280, 175, 40, "STRING_Text_Right")
TextGadget(#Text_16, 10, 330, 330, 25, "TEXT_Text_Center", #PB_Text_Center)
EndProcedure
Procedure Window_1_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
1-Windows setting not imported (as before);
2-String gadget text not right aligned; but no surprise since PureForm used a constant which is not among the flags reported in the help file;
3-The mask text in date gadget has a black background, only cosmetic since mask is imported correctly
4-Date gadget flags (#PB_Date_UpDown and #PB_Date_Checkbox) have not be imported and they look missing from FD


