Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC:

Porting VO Forms to Winform or WPF 09 Nov 2019 17:51 #11670

  • Jamal
  • Jamal's Avatar
  • Topic Author


  • Posts: 309
  • There is a product by Paul Piko called Facelift Professional 2 for VO which ported VO datawindows and dialogs to WinForms, WPF in C#, VB.NET and (X#, but not fully since X# was still being developed), however , it has not been maintained for several years and no longer compatible with VS 2019. I contacted Paul and he replied quickly, but indicated other development project took him away from the the xBase world.

    I've used the xPorter which is great at converting VO code but VO datawindow and dialog are not true Winforms or WPF forms. I could not even copy/paste the created VO controls on new Winforms controls I guess since they are not compatible. I know I can create the Winforms manually, but the task becomes very tedious.

    Therefore, I see this as a big obstacle in migrating VO to Winforms (at least), and the questions will we ever see a similar tool like Facelift integrated in VS or be part of the xPorter?

    Jamal

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 09 Nov 2019 18:09 #11672

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Jamal,

    Robert is planning to add a VO GUI classes compatible WInForms based library:
    www.xsharp.eu/articles/updated-bandol-release-schedule
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 09 Nov 2019 20:09 #11674

    • Jamal
    • Jamal's Avatar
    • Topic Author


  • Posts: 309
  • Hi Wolfgang,

    That's not exactly what I am talking about. The proposal is to port the VO generated a datawindow or dialog resource entity from from a VO AEF and convert to Winform or WPF.

    Please see the samples that Paul Piko provides:

    VO resource before:
    RESOURCE WinOrder DIALOGEX  4, 3, 456, 289
    STYLE	WS_CHILD
    FONT	8, "MS Shell Dlg"
    BEGIN
    	CONTROL	"Order No:", WINORDER_SC_ORDERNO, "Static", WS_CHILD, 13, 8, 39, 10
    	CONTROL	"Order Date:", WINORDER_SC_ORDERDATE, "Static", WS_CHILD, 236, 8, 48, 10
    	CONTROL	"Name:", WINORDER_SC_BILLNAME, "Static", WS_CHILD, 13, 38, 30, 10
    	CONTROL	"Address 1:", WINORDER_SC_BILLADD1, "Static", WS_CHILD, 13, 50, 43, 10
    	CONTROL	"Address 2:", WINORDER_SC_BILLADD2, "Static", WS_CHILD, 13, 62, 39, 10
    	CONTROL	"Address 3:", WINORDER_SC_BILLADD3, "Static", WS_CHILD, 13, 75, 45, 9
    	CONTROL	"Postal Code:", WINORDER_SC_BILLPOST, "Static", WS_CHILD, 13, 87, 49, 10
    	CONTROL	"Phone:", WINORDER_SC_BILLPHONE, "Static", WS_CHILD, 13, 99, 33, 10
    	CONTROL	"Name:", WINORDER_SC_DELIVNAME, "Static", WS_CHILD, 236, 38, 38, 10
    	CONTROL	"Address 1:", WINORDER_SC_DELIVADD1, "Static", WS_CHILD, 236, 50, 36, 10
    	CONTROL	"Address 2:", WINORDER_SC_DELIVADD2, "Static", WS_CHILD, 236, 62, 36, 10
    	CONTROL	"Address 3:", WINORDER_SC_DELIVADD3, "Static", WS_CHILD, 236, 75, 36, 9
    	CONTROL	"Postal Code:", WINORDER_SC_DELIVPOST, "Static", WS_CHILD, 236, 87, 50, 10
    	CONTROL	"Phone:", WINORDER_SC_DELIVPONE, "Static", WS_CHILD, 236, 99, 36, 10
    	CONTROL	"Comment:", WINORDER_SC_ORDCOMMENT, "Static", WS_CHILD, 8, 121, 36, 10
    	CONTROL	"Shipping:", WINORDER_SC_SHIPPING, "Static", WS_CHILD, 348, 221, 31, 10
    	CONTROL	"Tax:", WINORDER_SC_TAX, "Static", WS_CHILD, 348, 235, 36, 9
    	CONTROL	"Discount:", WINORDER_SC_DISCOUNT, "Static", WS_CHILD, 348, 249, 32, 10
    	CONTROL	"Orderno:", WINORDER_ORDERNO, "Edit", ES_READONLY|ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 8, 54, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Orderdate:", WINORDER_ORDERDATE, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 8, 45, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billname:", WINORDER_BILLNAME, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 38, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billadd1:", WINORDER_BILLADD1, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 50, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billadd2:", WINORDER_BILLADD2, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 62, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billadd3:", WINORDER_BILLADD3, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 75, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billpost:", WINORDER_BILLPOST, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 87, 54, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Billphone:", WINORDER_BILLPHONE, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 68, 99, 101, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivname:", WINORDER_DELIVNAME, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 38, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivadd1:", WINORDER_DELIVADD1, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 50, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivadd2:", WINORDER_DELIVADD2, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 62, 148, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivadd3:", WINORDER_DELIVADD3, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 75, 55, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivpost:", WINORDER_DELIVPOST, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 87, 55, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Delivphone:", WINORDER_DELIVPHONE, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 291, 99, 101, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Ordcomment:", WINORDER_ORDCOMMENT, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 44, 121, 404, 11, WS_EX_CLIENTEDGE
    	CONTROL	"Shipping:", WINORDER_SHIPPING, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 396, 221, 40, 11, WS_EX_CLIENTEDGE|WS_EX_RIGHT
    	CONTROL	"Tax:", WINORDER_TAX, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 396, 235, 40, 11, WS_EX_CLIENTEDGE|WS_EX_RIGHT
    	CONTROL	"Discount:", WINORDER_DISCOUNT, "Edit", ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 396, 249, 40, 11, WS_EX_CLIENTEDGE|WS_EX_RIGHT
    	CONTROL	"", WINORDER_WINORDER_DETAIL, "static", WS_CHILD|WS_BORDER, 8, 136, 441, 81
    	CONTROL	"Billing", WINORDER_GROUPBOX1, "Button", BS_GROUPBOX|WS_GROUP|WS_CHILD, 6, 25, 219, 90
    	CONTROL	"Delivery", WINORDER_GROUPBOX2, "Button", BS_GROUPBOX|WS_GROUP|WS_CHILD, 229, 25, 219, 90
    	CONTROL	"Add", WINORDER_PBADDLINE, "Button", WS_TABSTOP|WS_CHILD, 180, 221, 40, 12
    	CONTROL	"Delete", WINORDER_PBDELETELINE, "Button", WS_TABSTOP|WS_CHILD, 244, 221, 40, 12
    	CONTROL	"Total:", WINORDER_SC_TOTAL, "Static", WS_CHILD, 348, 263, 32, 10
    	CONTROL	"Total", WINORDER_TOTAL, "Edit", ES_READONLY|ES_AUTOHSCROLL|WS_TABSTOP|WS_CHILD|WS_BORDER, 396, 263, 40, 11, WS_EX_CLIENTEDGE|WS_EX_RIGHT
    END
    

    After FaceLift:
    // This code was originally generated by Facelift Pro
    // http://www.piko.com.au/facelift
    
    #using System
    #using System.Collections.Generic
    #using System.ComponentModel
    #using System.Data
    #using System.Drawing
    #using System.Text
    #using System.Windows.Forms
    
    	
    BEGIN NAMESPACE Orders
    
    PARTIAL CLASS WinOrder INHERIT System.Windows.Forms.UserControl
            
        PRIVATE INSTANCE components := null AS System.ComponentModel.IContainer
    
        PROTECT oDCSC_ORDERNO AS System.Windows.Forms.Label
        PROTECT oDCSC_ORDERDATE AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLNAME AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLADD1 AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLADD2 AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLADD3 AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLPOST AS System.Windows.Forms.Label
        PROTECT oDCSC_BILLPHONE AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVNAME AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVADD1 AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVADD2 AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVADD3 AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVPOST AS System.Windows.Forms.Label
        PROTECT oDCSC_DELIVPONE AS System.Windows.Forms.Label
        PROTECT oDCSC_ORDCOMMENT AS System.Windows.Forms.Label
        PROTECT oDCSC_SHIPPING AS System.Windows.Forms.Label
        PROTECT oDCSC_TAX AS System.Windows.Forms.Label
        PROTECT oDCSC_DISCOUNT AS System.Windows.Forms.Label
        PROTECT oDCORDERNO AS System.Windows.Forms.TextBox
        PROTECT oDCORDERDATE AS System.Windows.Forms.TextBox
        PROTECT oDCBILLNAME AS System.Windows.Forms.TextBox
        PROTECT oDCBILLADD1 AS System.Windows.Forms.TextBox
        PROTECT oDCBILLADD2 AS System.Windows.Forms.TextBox
        PROTECT oDCBILLADD3 AS System.Windows.Forms.TextBox
        PROTECT oDCBILLPOST AS System.Windows.Forms.TextBox
        PROTECT oDCBILLPHONE AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVNAME AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVADD1 AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVADD2 AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVADD3 AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVPOST AS System.Windows.Forms.TextBox
        PROTECT oDCDELIVPHONE AS System.Windows.Forms.TextBox
        PROTECT oDCORDCOMMENT AS System.Windows.Forms.TextBox
        PROTECT oDCSHIPPING AS System.Windows.Forms.TextBox
        PROTECT oDCTAX AS System.Windows.Forms.TextBox
        PROTECT oDCDISCOUNT AS System.Windows.Forms.TextBox
        PROTECT oSFWinOrder_DETAIL AS System.Windows.Forms.UserControl
        PROTECT oDCGroupBox1 AS System.Windows.Forms.GroupBox
        PROTECT oDCGroupBox2 AS System.Windows.Forms.GroupBox
        PROTECT oCCpbAddLine AS System.Windows.Forms.Button
        PROTECT oCCpbDeleteLine AS System.Windows.Forms.Button
        PROTECT oDCSC_TOTAL AS System.Windows.Forms.Label
        PROTECT oDCTotal AS System.Windows.Forms.TextBox
    
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// true if managed resources should be disposed; otherwise, false.
    
        PROTECTED VIRTUAL METHOD Dispose( disposing AS LOGIC ) AS VOID
            IF disposing && components != NULL
                components:Dispose()
            ENDIF
            SUPER:Dispose( disposing )
            RETURN
        
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
    
        PRIVATE METHOD InitializeComponent() AS VOID
    
            SELF:oDCSC_ORDERNO := System.Windows.Forms.Label{}
            SELF:oDCSC_ORDERDATE := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLNAME := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLADD1 := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLADD2 := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLADD3 := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLPOST := System.Windows.Forms.Label{}
            SELF:oDCSC_BILLPHONE := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVNAME := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVADD1 := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVADD2 := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVADD3 := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVPOST := System.Windows.Forms.Label{}
            SELF:oDCSC_DELIVPONE := System.Windows.Forms.Label{}
            SELF:oDCSC_ORDCOMMENT := System.Windows.Forms.Label{}
            SELF:oDCSC_SHIPPING := System.Windows.Forms.Label{}
            SELF:oDCSC_TAX := System.Windows.Forms.Label{}
            SELF:oDCSC_DISCOUNT := System.Windows.Forms.Label{}
            SELF:oDCORDERNO := System.Windows.Forms.TextBox{}
            SELF:oDCORDERDATE := System.Windows.Forms.TextBox{}
            SELF:oDCBILLNAME := System.Windows.Forms.TextBox{}
            SELF:oDCBILLADD1 := System.Windows.Forms.TextBox{}
            SELF:oDCBILLADD2 := System.Windows.Forms.TextBox{}
            SELF:oDCBILLADD3 := System.Windows.Forms.TextBox{}
            SELF:oDCBILLPOST := System.Windows.Forms.TextBox{}
            SELF:oDCBILLPHONE := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVNAME := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVADD1 := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVADD2 := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVADD3 := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVPOST := System.Windows.Forms.TextBox{}
            SELF:oDCDELIVPHONE := System.Windows.Forms.TextBox{}
            SELF:oDCORDCOMMENT := System.Windows.Forms.TextBox{}
            SELF:oDCSHIPPING := System.Windows.Forms.TextBox{}
            SELF:oDCTAX := System.Windows.Forms.TextBox{}
            SELF:oDCDISCOUNT := System.Windows.Forms.TextBox{}
            SELF:oSFWinOrder_DETAIL := Orders.WinOrder_DETAIL{}
            SELF:oDCGroupBox1 := System.Windows.Forms.GroupBox{}
            SELF:oDCGroupBox2 := System.Windows.Forms.GroupBox{}
            SELF:oCCpbAddLine := System.Windows.Forms.Button{}
            SELF:oCCpbDeleteLine := System.Windows.Forms.Button{}
            SELF:oDCSC_TOTAL := System.Windows.Forms.Label{}
            SELF:oDCTotal := System.Windows.Forms.TextBox{}
    
            SELF:SuspendLayout()
    
            //
            // oDCSC_ORDERNO
            //
    
            SELF:oDCSC_ORDERNO:Location := System.Drawing.Point{21, 15}
            SELF:oDCSC_ORDERNO:Name := "SC_ORDERNO"
            SELF:oDCSC_ORDERNO:Text := "Order No:"
            SELF:oDCSC_ORDERNO:Size := System.Drawing.Size{59, 16}
    
            SELF:oDCSC_ORDERNO:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_ORDERDATE
            //
    
            SELF:oDCSC_ORDERDATE:Location := System.Drawing.Point{356, 15}
            SELF:oDCSC_ORDERDATE:Name := "SC_ORDERDATE"
            SELF:oDCSC_ORDERDATE:Text := "Order Date:"
            SELF:oDCSC_ORDERDATE:Size := System.Drawing.Size{72, 16}
    
            SELF:oDCSC_ORDERDATE:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLNAME
            //
    
            SELF:oDCSC_BILLNAME:Location := System.Drawing.Point{10, 21}
            SELF:oDCSC_BILLNAME:Name := "SC_BILLNAME"
            SELF:oDCSC_BILLNAME:Text := "Name:"
            SELF:oDCSC_BILLNAME:Size := System.Drawing.Size{45, 16}
    
            SELF:oDCSC_BILLNAME:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLADD1
            //
    
            SELF:oDCSC_BILLADD1:Location := System.Drawing.Point{10, 41}
            SELF:oDCSC_BILLADD1:Name := "SC_BILLADD1"
            SELF:oDCSC_BILLADD1:Text := "Address 1:"
            SELF:oDCSC_BILLADD1:Size := System.Drawing.Size{65, 16}
    
            SELF:oDCSC_BILLADD1:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLADD2
            //
    
            SELF:oDCSC_BILLADD2:Location := System.Drawing.Point{10, 61}
            SELF:oDCSC_BILLADD2:Name := "SC_BILLADD2"
            SELF:oDCSC_BILLADD2:Text := "Address 2:"
            SELF:oDCSC_BILLADD2:Size := System.Drawing.Size{59, 16}
    
            SELF:oDCSC_BILLADD2:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLADD3
            //
    
            SELF:oDCSC_BILLADD3:Location := System.Drawing.Point{10, 81}
            SELF:oDCSC_BILLADD3:Name := "SC_BILLADD3"
            SELF:oDCSC_BILLADD3:Text := "Address 3:"
            SELF:oDCSC_BILLADD3:Size := System.Drawing.Size{68, 16}
    
            SELF:oDCSC_BILLADD3:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLPOST
            //
    
            SELF:oDCSC_BILLPOST:Location := System.Drawing.Point{10, 101}
            SELF:oDCSC_BILLPOST:Name := "SC_BILLPOST"
            SELF:oDCSC_BILLPOST:Text := "Postal Code:"
            SELF:oDCSC_BILLPOST:Size := System.Drawing.Size{74, 16}
    
            SELF:oDCSC_BILLPOST:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_BILLPHONE
            //
    
            SELF:oDCSC_BILLPHONE:Location := System.Drawing.Point{10, 121}
            SELF:oDCSC_BILLPHONE:Name := "SC_BILLPHONE"
            SELF:oDCSC_BILLPHONE:Text := "Phone:"
            SELF:oDCSC_BILLPHONE:Size := System.Drawing.Size{49, 16}
    
            SELF:oDCSC_BILLPHONE:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVNAME
            //
    
            SELF:oDCSC_DELIVNAME:Location := System.Drawing.Point{11, 21}
            SELF:oDCSC_DELIVNAME:Name := "SC_DELIVNAME"
            SELF:oDCSC_DELIVNAME:Text := "Name:"
            SELF:oDCSC_DELIVNAME:Size := System.Drawing.Size{56, 16}
    
            SELF:oDCSC_DELIVNAME:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVADD1
            //
    
            SELF:oDCSC_DELIVADD1:Location := System.Drawing.Point{11, 41}
            SELF:oDCSC_DELIVADD1:Name := "SC_DELIVADD1"
            SELF:oDCSC_DELIVADD1:Text := "Address 1:"
            SELF:oDCSC_DELIVADD1:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_DELIVADD1:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVADD2
            //
    
            SELF:oDCSC_DELIVADD2:Location := System.Drawing.Point{11, 61}
            SELF:oDCSC_DELIVADD2:Name := "SC_DELIVADD2"
            SELF:oDCSC_DELIVADD2:Text := "Address 2:"
            SELF:oDCSC_DELIVADD2:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_DELIVADD2:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVADD3
            //
    
            SELF:oDCSC_DELIVADD3:Location := System.Drawing.Point{11, 81}
            SELF:oDCSC_DELIVADD3:Name := "SC_DELIVADD3"
            SELF:oDCSC_DELIVADD3:Text := "Address 3:"
            SELF:oDCSC_DELIVADD3:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_DELIVADD3:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVPOST
            //
    
            SELF:oDCSC_DELIVPOST:Location := System.Drawing.Point{11, 101}
            SELF:oDCSC_DELIVPOST:Name := "SC_DELIVPOST"
            SELF:oDCSC_DELIVPOST:Text := "Postal Code:"
            SELF:oDCSC_DELIVPOST:Size := System.Drawing.Size{74, 16}
    
            SELF:oDCSC_DELIVPOST:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DELIVPONE
            //
    
            SELF:oDCSC_DELIVPONE:Location := System.Drawing.Point{11, 121}
            SELF:oDCSC_DELIVPONE:Name := "SC_DELIVPONE"
            SELF:oDCSC_DELIVPONE:Text := "Phone:"
            SELF:oDCSC_DELIVPONE:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_DELIVPONE:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_ORDCOMMENT
            //
    
            SELF:oDCSC_ORDCOMMENT:Location := System.Drawing.Point{13, 199}
            SELF:oDCSC_ORDCOMMENT:Name := "SC_ORDCOMMENT"
            SELF:oDCSC_ORDCOMMENT:Text := "Comment:"
            SELF:oDCSC_ORDCOMMENT:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_ORDCOMMENT:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_SHIPPING
            //
    
            SELF:oDCSC_SHIPPING:Location := System.Drawing.Point{523, 361}
            SELF:oDCSC_SHIPPING:Name := "SC_SHIPPING"
            SELF:oDCSC_SHIPPING:Text := "Shipping:"
            SELF:oDCSC_SHIPPING:Size := System.Drawing.Size{47, 16}
    
            SELF:oDCSC_SHIPPING:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_TAX
            //
    
            SELF:oDCSC_TAX:Location := System.Drawing.Point{523, 383}
            SELF:oDCSC_TAX:Name := "SC_TAX"
            SELF:oDCSC_TAX:Text := "Tax:"
            SELF:oDCSC_TAX:Size := System.Drawing.Size{54, 16}
    
            SELF:oDCSC_TAX:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCSC_DISCOUNT
            //
    
            SELF:oDCSC_DISCOUNT:Location := System.Drawing.Point{523, 406}
            SELF:oDCSC_DISCOUNT:Name := "SC_DISCOUNT"
            SELF:oDCSC_DISCOUNT:Text := "Discount:"
            SELF:oDCSC_DISCOUNT:Size := System.Drawing.Size{48, 16}
    
            SELF:oDCSC_DISCOUNT:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCORDERNO
            //
    
            SELF:oDCORDERNO:Location := System.Drawing.Point{103, 15}
            SELF:oDCORDERNO:Name := "ORDERNO"
            SELF:oDCORDERNO:Text := ""
            SELF:oDCORDERNO:Size := System.Drawing.Size{82, 18}
    
            //
            // oDCORDERDATE
            //
    
            SELF:oDCORDERDATE:Location := System.Drawing.Point{438, 15}
            SELF:oDCORDERDATE:Name := "ORDERDATE"
            SELF:oDCORDERDATE:Text := ""
            SELF:oDCORDERDATE:Size := System.Drawing.Size{68, 18}
    
            //
            // oDCBILLNAME
            //
    
            SELF:oDCBILLNAME:Location := System.Drawing.Point{92, 21}
            SELF:oDCBILLNAME:Name := "BILLNAME"
            SELF:oDCBILLNAME:Text := ""
            SELF:oDCBILLNAME:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCBILLADD1
            //
    
            SELF:oDCBILLADD1:Location := System.Drawing.Point{92, 41}
            SELF:oDCBILLADD1:Name := "BILLADD1"
            SELF:oDCBILLADD1:Text := ""
            SELF:oDCBILLADD1:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCBILLADD2
            //
    
            SELF:oDCBILLADD2:Location := System.Drawing.Point{92, 61}
            SELF:oDCBILLADD2:Name := "BILLADD2"
            SELF:oDCBILLADD2:Text := ""
            SELF:oDCBILLADD2:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCBILLADD3
            //
    
            SELF:oDCBILLADD3:Location := System.Drawing.Point{92, 81}
            SELF:oDCBILLADD3:Name := "BILLADD3"
            SELF:oDCBILLADD3:Text := ""
            SELF:oDCBILLADD3:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCBILLPOST
            //
    
            SELF:oDCBILLPOST:Location := System.Drawing.Point{92, 101}
            SELF:oDCBILLPOST:Name := "BILLPOST"
            SELF:oDCBILLPOST:Text := ""
            SELF:oDCBILLPOST:Size := System.Drawing.Size{82, 18}
    
            //
            // oDCBILLPHONE
            //
    
            SELF:oDCBILLPHONE:Location := System.Drawing.Point{92, 121}
            SELF:oDCBILLPHONE:Name := "BILLPHONE"
            SELF:oDCBILLPHONE:Text := ""
            SELF:oDCBILLPHONE:Size := System.Drawing.Size{152, 18}
    
            //
            // oDCDELIVNAME
            //
    
            SELF:oDCDELIVNAME:Location := System.Drawing.Point{93, 21}
            SELF:oDCDELIVNAME:Name := "DELIVNAME"
            SELF:oDCDELIVNAME:Text := ""
            SELF:oDCDELIVNAME:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCDELIVADD1
            //
    
            SELF:oDCDELIVADD1:Location := System.Drawing.Point{93, 41}
            SELF:oDCDELIVADD1:Name := "DELIVADD1"
            SELF:oDCDELIVADD1:Text := ""
            SELF:oDCDELIVADD1:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCDELIVADD2
            //
    
            SELF:oDCDELIVADD2:Location := System.Drawing.Point{93, 61}
            SELF:oDCDELIVADD2:Name := "DELIVADD2"
            SELF:oDCDELIVADD2:Text := ""
            SELF:oDCDELIVADD2:Size := System.Drawing.Size{222, 18}
    
            //
            // oDCDELIVADD3
            //
    
            SELF:oDCDELIVADD3:Location := System.Drawing.Point{93, 81}
            SELF:oDCDELIVADD3:Name := "DELIVADD3"
            SELF:oDCDELIVADD3:Text := ""
            SELF:oDCDELIVADD3:Size := System.Drawing.Size{82, 18}
    
            //
            // oDCDELIVPOST
            //
    
            SELF:oDCDELIVPOST:Location := System.Drawing.Point{93, 101}
            SELF:oDCDELIVPOST:Name := "DELIVPOST"
            SELF:oDCDELIVPOST:Text := ""
            SELF:oDCDELIVPOST:Size := System.Drawing.Size{82, 18}
    
            //
            // oDCDELIVPHONE
            //
    
            SELF:oDCDELIVPHONE:Location := System.Drawing.Point{93, 121}
            SELF:oDCDELIVPHONE:Name := "DELIVPHONE"
            SELF:oDCDELIVPHONE:Text := ""
            SELF:oDCDELIVPHONE:Size := System.Drawing.Size{152, 18}
    
            //
            // oDCORDCOMMENT
            //
    
            SELF:oDCORDCOMMENT:Location := System.Drawing.Point{67, 199}
            SELF:oDCORDCOMMENT:Name := "ORDCOMMENT"
            SELF:oDCORDCOMMENT:Text := ""
            SELF:oDCORDCOMMENT:Size := System.Drawing.Size{606, 18}
    
            //
            // oDCSHIPPING
            //
    
            SELF:oDCSHIPPING:Location := System.Drawing.Point{595, 361}
            SELF:oDCSHIPPING:Name := "SHIPPING"
            SELF:oDCSHIPPING:Text := ""
            SELF:oDCSHIPPING:Size := System.Drawing.Size{60, 18}
    
            //
            // oDCTAX
            //
    
            SELF:oDCTAX:Location := System.Drawing.Point{595, 383}
            SELF:oDCTAX:Name := "TAX"
            SELF:oDCTAX:Text := ""
            SELF:oDCTAX:Size := System.Drawing.Size{60, 18}
    
            //
            // oDCDISCOUNT
            //
    
            SELF:oDCDISCOUNT:Location := System.Drawing.Point{595, 406}
            SELF:oDCDISCOUNT:Name := "DISCOUNT"
            SELF:oDCDISCOUNT:Text := ""
            SELF:oDCDISCOUNT:Size := System.Drawing.Size{60, 18}
    
            //
            // oSFWinOrder_DETAIL
            //
    
            SELF:oSFWinOrder_DETAIL:Location := System.Drawing.Point{13, 223}
            SELF:oSFWinOrder_DETAIL:Name := "WinOrder_DETAIL"
            SELF:oSFWinOrder_DETAIL:Text := "WinOrder_DETAIL"
            SELF:oSFWinOrder_DETAIL:Size := System.Drawing.Size{662, 132}
    
            //
            // oDCGroupBox1
            //
    
            SELF:oDCGroupBox1:Location := System.Drawing.Point{11, 42}
            SELF:oDCGroupBox1:Name := "GroupBox1"
            SELF:oDCGroupBox1:Text := "Billing"
            SELF:oDCGroupBox1:Size := System.Drawing.Size{328, 146}
    
            //
            // oDCGroupBox2
            //
    
            SELF:oDCGroupBox2:Location := System.Drawing.Point{345, 42}
            SELF:oDCGroupBox2:Name := "GroupBox2"
            SELF:oDCGroupBox2:Text := "Delivery"
            SELF:oDCGroupBox2:Size := System.Drawing.Size{328, 146}
    
            //
            // oCCpbAddLine
            //
    
            SELF:oCCpbAddLine:Location := System.Drawing.Point{271, 361}
            SELF:oCCpbAddLine:Name := "pbAddLine"
            SELF:oCCpbAddLine:Text := "Add"
            SELF:oCCpbAddLine:Size := System.Drawing.Size{60, 20}
    
            SELF:oCCpbAddLine:FlatStyle := System.Windows.Forms.FlatStyle.System
            SELF:oCCpbAddLine:UseVisualStyleBackColor := TRUE
    
            //
            // oCCpbDeleteLine
            //
    
            SELF:oCCpbDeleteLine:Location := System.Drawing.Point{367, 361}
            SELF:oCCpbDeleteLine:Name := "pbDeleteLine"
            SELF:oCCpbDeleteLine:Text := "Delete"
            SELF:oCCpbDeleteLine:Size := System.Drawing.Size{60, 20}
    
            SELF:oCCpbDeleteLine:FlatStyle := System.Windows.Forms.FlatStyle.System
            SELF:oCCpbDeleteLine:UseVisualStyleBackColor := TRUE
    
            //
            // oDCSC_TOTAL
            //
    
            SELF:oDCSC_TOTAL:Location := System.Drawing.Point{523, 429}
            SELF:oDCSC_TOTAL:Name := "SC_TOTAL"
            SELF:oDCSC_TOTAL:Text := "Total:"
            SELF:oDCSC_TOTAL:Size := System.Drawing.Size{48, 16}
    
            SELF:oDCSC_TOTAL:FlatStyle := System.Windows.Forms.FlatStyle.System
    
            //
            // oDCTotal
            //
    
            SELF:oDCTotal:Location := System.Drawing.Point{596, 429}
            SELF:oDCTotal:Name := "Total"
            SELF:oDCTotal:Text := ""
            SELF:oDCTotal:Size := System.Drawing.Size{60, 18}
    
            // 
            // WinOrder
            // 
            SELF:AutoScaleDimensions := System.Drawing.SizeF{6, 13}
            SELF:AutoScaleMode := System.Windows.Forms.AutoScaleMode.Font
    
            SELF:ClientSize := System.Drawing.Size{686, 471}
            
            SELF:Controls:Add(SELF:oDCSC_ORDERNO)
    
            SELF:Controls:Add(SELF:oDCSC_ORDERDATE)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLNAME)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLADD1)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLADD2)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLADD3)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLPOST)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCSC_BILLPHONE)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVNAME)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVADD1)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVADD2)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVADD3)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVPOST)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCSC_DELIVPONE)
    
            SELF:Controls:Add(SELF:oDCSC_ORDCOMMENT)
    
            SELF:Controls:Add(SELF:oDCSC_SHIPPING)
    
            SELF:Controls:Add(SELF:oDCSC_TAX)
    
            SELF:Controls:Add(SELF:oDCSC_DISCOUNT)
    
            SELF:Controls:Add(SELF:oDCORDERNO)
    
            SELF:Controls:Add(SELF:oDCORDERDATE)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLNAME)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLADD1)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLADD2)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLADD3)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLPOST)
    
            SELF:oDCGroupBox1:Controls:Add(SELF:oDCBILLPHONE)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVNAME)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVADD1)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVADD2)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVADD3)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVPOST)
    
            SELF:oDCGroupBox2:Controls:Add(SELF:oDCDELIVPHONE)
    
            SELF:Controls:Add(SELF:oDCORDCOMMENT)
    
            SELF:Controls:Add(SELF:oDCSHIPPING)
    
            SELF:Controls:Add(SELF:oDCTAX)
    
            SELF:Controls:Add(SELF:oDCDISCOUNT)
    
            SELF:Controls:Add(SELF:oSFWinOrder_DETAIL)
    
            SELF:Controls:Add(SELF:oDCGroupBox1)
    
            SELF:Controls:Add(SELF:oDCGroupBox2)
    
            SELF:Controls:Add(SELF:oCCpbAddLine)
    
            SELF:Controls:Add(SELF:oCCpbDeleteLine)
    
            SELF:Controls:Add(SELF:oDCSC_TOTAL)
    
            SELF:Controls:Add(SELF:oDCTotal)
    
            SELF:Name := "WinOrder"
            SELF:Text := "Orders"
            SELF:ResumeLayout(false)
    
            RETURN
    
    END CLASS
    
    
    END NAMESPACE
    

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 09 Nov 2019 20:11 #11675

    • Jamal
    • Jamal's Avatar
    • Topic Author


  • Posts: 309
  • Please sse attached FaceLift samples as provided by Paul Piko.

    Please Log in or Create an account to join the conversation.

    Last edit: by Jamal.

    Porting VO Forms to Winform or WPF 10 Nov 2019 02:06 #11676

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Jamal wrote: Therefore, I see this as a big obstacle in migrating VO to Winforms (at least), and the questions will we ever see a similar tool like Facelift integrated in VS or be part of the xPorter?


    That's pretty easy actually, especially in XIDE (VIDE back then) there has been a feature to create a Windows Form out of a VO window since many years ago. For VS it is a little more complicated, but still should not be difficult. But of course this can only serve as a very starting point, because none of the existing VO GUI code (that has to do with the GUI) can be reused in WinForms...
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 10 Nov 2019 05:03 #11677

    • Jamal
    • Jamal's Avatar
    • Topic Author


  • Posts: 309
  • Chris wrote: That's pretty easy actually, especially in XIDE (VIDE back then) there has been a feature to create a Windows Form out of a VO window since many years ago..


    Hi Chris,

    Do you mean there was a feature and it longer exists in XIDE?
    I've looked and cannot find such a feature in XIDE.

    Jamal

    Please Log in or Create an account to join the conversation.

    Last edit: by Jamal.

    Porting VO Forms to Winform or WPF 10 Nov 2019 07:05 #11678

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Jamal,
    I agree with Chris that such a functionality is not too hard to write.
    I was interested too in Facelift, but transporting only the windows to WinForms is only a small part of work.
    Therefore I see the alternate GUI classes a better tool for a migration.
    Since they are based on Windows Forms, a mix of native Windows Forms forms and windows moved over from the VO GUI classes should be possible.
    But (and that is valid for both methods) the bBrowser is a very important component of my applications, and I have my doubts about its migration.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 00:27 #11680

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Hi Jamal,

    It was a little hidden on purpose back then :). You need to first port the VO windows (their AEF) into an X# project, open that project, create a new WinForms app, create a new windows form and in the designer at the toolbar, select Form Designer Commands->Import from VO window, now a dialog will open with the available VO windows in the project to import from.

    It is a bit clumpy, but it was not a much requested feature, so I never improved it, actually had completely forgotten about myself until I saw your post which reminded me of it :)

    Jamal wrote:

    Chris wrote: That's pretty easy actually, especially in XIDE (VIDE back then) there has been a feature to create a Windows Form out of a VO window since many years ago..


    Hi Chris,

    Do you mean there was a feature and it longer exists in XIDE?
    I've looked and cannot find such a feature in XIDE.

    Jamal

    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 03:47 #11682

    • Jamal
    • Jamal's Avatar
    • Topic Author


  • Posts: 309
  • Hi Chris,

    I tried to follow the steps you outlined, but it is not clear and thus it is a no go! This is not important right now.
    What is important FaceLift equivalent is needed which is part of the X# product.

    I am surprised that was not a popular requested feature; it's possible that other developers did not embrace Vulcan.NET at the time or even X# until now, but Paul Piko did and created the FaceLift product. However, Vulcan.NET is no longer here and X# was not ready for prime time and FaceLift is not longer maintained . Now that X# is a more mature .NET development tool, for me at least, it's critical as I do not wish to use the old migrated xPorted VO data windows in a .NET app which look plain :evil: Therefore a product like FaceLift is a necessity to make the migration to real .NET or WPF forms.

    FaceLift does not convert VO code to .NET, just the forms which is what is needed. XPorter does a great job converting VO code; now combine both into one TOOL and you have a winner. I understand not all controls will equivalents (those can have placeholders) and some code changes are needed to access the properties of native .NET controls.

    Jamal

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 05:57 #11684

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Jamal,
    personally I don't see any bigger problem "translating" a VO window to a WinForms window in the manner as Facelift has done it - or better, it seems to be an relatively easy task compared to all the other things that the development team has done on the compiler and the runtime.
    But nearly all VO applications I have seen had a lot of business logic in the window classes, and that code is hard to move over to Windows Forms (or even harder to WPF).
    When searching a migration strategy for my own applications I had also contacted Paul about FaceLift, but had discarded this way.
    I'm not much more interested in the alternate GUI classes.

    But if you are so interested in a window translator tool: why don't write such a tool ourself? After all, X# should not only be a project of the current team. but should involve also us users.

    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 14:30 #11686

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Gyus,

    It should be easier to add this functionality to VOXporter. Will do that, will make it optionally create an extra solution/project with all the window definitions in it.
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 14:34 #11687

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Chris,
    that would be very helpful for someone, I think.
    But maybe you could add some mapping configuration, for example to map SingleLineEdit to TextBoxEx.
    Dou you are reading the ressource or the class or both?
    In the ressource inherited classes are not visible, only in the class.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 15:26 #11690

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Hi Wolfgnag,

    VOXporter reads directly the binary entity of the windows, so it does not need to read the resource or the class code for this. The same happens in the feature inside XIDE, which also has direct access to the WED "binaries".
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 15:29 #11692

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Chris,
    thank you very much!
    Maybe I could use this feature as well in the future....
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 11 Nov 2019 16:43 #11693

    • Jamal
    • Jamal's Avatar
    • Topic Author


  • Posts: 309
  • Hi Chris,

    That's great!! I am sure many will find it a very valuable productivity feature of VOXPorter.

    Thanks!
    Jamal

    Chris wrote: Gyus,

    It should be easier to add this functionality to VOXporter. Will do that, will make it optionally create an extra solution/project with all the window definitions in it.

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 12 Nov 2019 04:31 #11704

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Hi Jamal,

    Jamal wrote: Hi Chris,

    That's great!! I am sure many will find it a very valuable productivity feature of VOXPorter.

    Thanks!
    Jamal

    Chris wrote: Gyus,

    It should be easier to add this functionality to VOXporter. Will do that, will make it optionally create an extra solution/project with all the window definitions in it.


    OK, I have now implemented this feature, it will be available in the next release! :)
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 12 Nov 2019 06:04 #11706

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3366
  • Hi Chris,
    great, thank you!
    Will test it out.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 12 Nov 2019 20:49 #11714

    • ohernandez@sistemas-liasa.com's Avatar


  • Posts: 28
  • Hi Chris,
    Thank You, this will help a lot in the migration to x#.

    Oscar Hdz.

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 31 Dec 2020 02:04 #17028

    • Alf
    • Alf's Avatar


  • Posts: 53
  • Hi Chris,

    <<OK, I have now implemented this feature, it will be available in the next release! >>>

    Is the announced feature available in the meantime, and, if so, where can I find it?

    Alf

    Please Log in or Create an account to join the conversation.

    Porting VO Forms to Winform or WPF 31 Dec 2020 08:20 #17030

    • Chris
    • Chris's Avatar


  • Posts: 3974
  • Hi Alf,

    Yes, it is available in the VOXporter tool, when you check the option "Generate Windows.Forms forms out of WED binaries", then it creates a separate project with the equivalent winforms definitions for each window that the original VO app(s) contained.
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1
    • 2