Announcement

Collapse
No announcement yet.

PwrDev - get it now!

Collapse
X
 
  • 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.
    hellobasic

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

    Comment


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

      Comment


      • #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.

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

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

        Code:
            [color=#0000FF]Local[/color] hWndClient [color=#0000FF]As[/color] [color=#0000FF]Long[/color]
            [color=#0000FF]Local[/color] hWndChild [color=#0000FF]As[/color] [color=#0000FF]Long[/color]
            [color=#0000FF]Local[/color] oMDIChild [color=#0000FF]As[/color] IMDIChild
            
            hWndClient = [color=#0000FF]VD_GethWndMDIClient[/color]( [color=#0000FF]nCbHndl[/color] )
            
            [color=#007F00]' Get the active childform.[/color]
            hWndChild = SendMessage( hWndClient, [color=#7F007F]%WM_MDIGETACTIVE[/color], 0, [color=#0000FF]ByVal[/color] 0& )
        
            [color=#007F00]' Obtain a reference to the object.[/color]
            VD_GetObjectFromWindow( hWndChild, 0, "IMDIChild", oMDIChild )
            [color=#0000FF]If[/color] [color=#0000FF]IsObject[/color]( oMDIChild ) [color=#0000FF]Then[/color]
                [color=#0000FF]MsgBox[/color] [color=#0000FF]Format$[/color]( [color=#0000FF]Round[/color]( oMDIChild.UniqueID, 3 ) ), [color=#7F007F]%MB_TASKMODAL[/color], [color=#0000FF]VD_App.Title[/color]
            [color=#0000FF]End[/color] [color=#0000FF]If[/color]
        The following creates the object and attaches it to the childform.
        This code resides is in the form's windowproc (read: callback procedure)
        Code:
            [color=#0000FF]Local[/color] oMDIChild [color=#0000FF]As[/color] IMDIChild
        
            [color=#0000FF]Select[/color] [color=#0000FF]Case[/color] [color=#0000FF]nCbMsg[/color]
            [color=#0000FF]Case[/color] [color=#7F007F]%WM_CREATE[/color]
            
                [color=#007F00]' Create the object and attach it to the childwindow.[/color]
                oMDIChild = [color=#0000FF]Class[/color] "clsMDIChild"
                VD_SetObjectToWindow( [color=#0000FF]nCbHndl[/color], 0, "IMDIChild", oMDIChild )
                oMDIChild.BackDoor.hWnd = [color=#0000FF]nCbHndl[/color]
           
            [color=#0000FF]Case[/color] [color=#7F007F]%WM_DESTROY[/color]
            [color=#0000FF]End[/color] [color=#0000FF]Select[/color]
        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:
        http://www.hellobasic.com/cgi-bin/fo...184307;start=0
        hellobasic

        Comment


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

          Thank you

          hellobasic

          Comment


          • #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 http://www.hellobasic.com/pwrdev/

            and http://www.codeweavers.com/
            hellobasic

            Comment


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

              Comment


              • #8
                Edwin,

                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"
                http://cwsof.com
                http://twitter.com/EZGUIProGuy

                Comment


                • #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.
                  hellobasic

                  Comment

                  Working...
                  X