No announcement yet.

PwrDev - get it now!

  • Filter
  • Time
  • Show
Clear All
new posts

  • PwrDev - get it now!

    Get it now, the price is right!

    PwrDev is a form designer which supports a ton of controls and even a great deal of custom controls.
    Visual ActiveX controls are supported as well using the ATL control container or Jazzage's library for natural embedding of the OCX.
    If you need more? PwrDev has even support .NET and it is possible to use a PwrDev placeholder which holds a .NET usercontrol!
    Most if not all controls have supporting eventhandlers.
    Like Visual Basic a button for example has a separate click event.

    PwrDev is not only a formdesigner, it comes with a lot of additional code, xml, ado, streams, stringbuffers, writebuffers, IO stuff and so on.
    Or do you want to make a connection to a database via ADO.NET?, no problem, PwrDev has several precompiled assemblies embedded, making a database connection or reading xml is a simple task.
    Let's not forget how easy it is to prepare webservice support through wsdl, compile and use.

    Don't know where to start?
    The new project shows several templates to choose from, want to create a tray application? it's just a click away.. oh well.. two clicks actually

    PB/WIN70 and PB/CC50 and up are supported (there is a DDT mode and SDK mode).

    Since a few weeks you can now setup different compiler templates and for example setup a combination to use Jose Roca's includefiles, recommended to check out!

    Hope to see you soon using this great tool.

    Visit the PwrDev website and click purchase for the most up-to-date price.

    Thank you.

  • #2
    "PB/WIN70" ? Did you mean to say pb/win90?
    Rick Angell


    • #3
      (PB/WIN70 and PB/CC50) and up


      • #4
        Today i wrote me an MDI example app.
        It's using one of the best features PowerBASIC currently supports: classes!

        PwrDev has a simple and easy way to attach an object to a window.
        Good thing is that destruction of the object is handled by PwrDev, you don't need to de-attach and destroy the object yourself.
        Very safe.

        The following is the test class used and has two interfaces, a set of functions and the 2nd for initialisation purposes.

        Class clsMDIChild
            Instance m_hWnd As Long
            Instance m_UniqueID As Single
            Class Method Create
            End Method
            Class Method Destroy
            End Method
            Interface IMDIChild: Inherit IUnknown
                Property Get BackDoor() As MDIChild_IBackDoor
                    Property = Me
                End Property
                Property Get UniqueID() As Single
                    Property = m_UniqueID
                End Property
                Property Set UniqueID( ByVal value As Single )
                    m_UniqueID = value
                End Property
                Property Get Text() As String
                    Property = VD_GetText( m_hWnd, 0 )
                End Property
                Property Set Text( ByVal value As String )
                    VD_Text( m_hWnd, 0, value )
                End Property
            End Interface
            ' For internal use only.    
            Interface MDIChild_IBackDoor: Inherit IUnknown
                Property Get hWnd() As Long
                    Property = m_hWnd
                End Property
                Property Set hWnd( ByVal value As Long )
                    m_hWnd = value
                End Property
            End Interface
        End Class
        The following is the code to create the form and access the object and do some stuff..

            Local oMDIChild As IMDIChild
            Local hWndChild As Long
            ' Create an MDIChild using the handle of the mainform, PwrDev will create the form in the clientcontrol.
            hWndChild = VD_CreateForm( $FORM2, nCbHndl, %VD_CF_MDICHILD )
            If hWndChild Then
                ' The form created the objectm we can obtain it right after creation to do things.
                VD_GetObjectFromWindow( hWndChild, 0, "IMDIChild", oMDIChild )
                If IsObject( oMDIChild ) Then
                    ' Just a silly way to make the child unique, invent yourself a better technique..
                    oMDIChild.UniqueID = Timer
                    oMDIChild.Text = oMDIChild.Text & " - " & Format$( Round( oMDIChild.UniqueID, 3 ) )
                End If
            End If
        The following retrieves the MDIChild's object, the code you see is placed in a button click event on the MDIFrame.

            Local hWndClient As Long
            Local hWndChild As Long
            Local oMDIChild As IMDIChild
            hWndClient = VD_GethWndMDIClient( nCbHndl )
            ' Get the active childform.
            hWndChild = SendMessage( hWndClient, %WM_MDIGETACTIVE, 0, ByVal 0& )
            ' Obtain a reference to the object.
            VD_GetObjectFromWindow( hWndChild, 0, "IMDIChild", oMDIChild )
            If IsObject( oMDIChild ) Then
                MsgBox Format$( Round( oMDIChild.UniqueID, 3 ) ), %MB_TASKMODAL, VD_App.Title
            End If
        The following creates the object and attaches it to the childform.
        This code resides is in the form's windowproc (read: callback procedure)
            Local oMDIChild As IMDIChild
            Select Case nCbMsg
            Case %WM_CREATE
                ' Create the object and attach it to the childwindow.
                oMDIChild = Class "clsMDIChild"
                VD_SetObjectToWindow( nCbHndl, 0, "IMDIChild", oMDIChild )
                oMDIChild.BackDoor.hWnd = nCbHndl
            Case %WM_DESTROY
            End Select
        So now you'll have to deal with only one part to attach.
        In the feature if you want to extend it you can simply extend the class.
        Super easy!

        The project is available for PwrDev users at this location:;start=0


        • #5
          The current price will remain for only a few weeks more.
          To benefit from the lower price, make your purchase asap.

          Thank you



          • #6
            One week left to benefit of the current low price!

            Also note the deal with codeweavers, you can obtain a license for CrossOver for Linux and/or Mac for a seriously low price.

            Check out



            • #7
              ... bump.. oops, sorry wrong button


              • #8

                I have a question about PwrDev.

                I thought I remember reading on your web site that it can be used to write custom controls.

                Is this correct ?

                If so, then does PwrDev support ActiveX controls ?

                if so, then could one do the following:

                Create a Custom control (which is a real window class which can be created using CreateWindowEx) which could act as a container for ActiveX control and the compile it to a DLL ?

                The idea is to use PwrDev to create a custom control (real window class) which acts as a wrapper for an ActiveX control, which then could be used in any PB app which uses DDT or any other GUI coding style (SDK, EZGUI, etc.)

                Is this possible ?
                Chris Boss
                Computer Workshop
                Developer of "EZGUI"


                • #9
                  >I thought I remember reading on your web site that it can be used to write custom controls.

                  Yes, the usercontrol node allows you to create controls by a simple click.
                  Then set the desired windowclass name to be used.

                  >If so, then does PwrDev support ActiveX controls ?
                  It could be.. if i choose to use Jose's includefiles.
                  In fact ATL is doing the same isn't?
                  It's a mistake to think ActiveX need some container.
                  Iow, just create the ActiveX control on the target.

                  Atl is present on every current computer, use this if you need a simple but pretty good solution.