Announcement

Collapse
No announcement yet.

PB pontential purchaser questions

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    "It is a Windows API function"

    Am I right in assuming these are called in a similar manner to keywords and sub names? In other words, passing data to Windows to instruct it to do something?
    Pardon my ignorance, but I've never coded a Win32 app before...

    I think I need to see a complete mini-app (with source) so I can see how these things are put together. The online documentation for PB looks very good, explaining each keyword in great detail, but I need to start off at the basics.

    How much work would be involved creating the following mini-app:

    - Single fixed sized window, say 600x600
    - 3 buttons at bottom of the window, PLAY, STOP, and EXIT
    - Video screen in a fixed position in the center window (say taking 320 x 240)
    - Video file hard coded to "c:\video1.mpg" (or .avi, .swf, wmf, etc)

    Regards,
    Chris

    Comment


    • #22
      think I need to see a complete mini-app (with source) so I can see how these things are put together
      There are 2,771 postings in the source code forum, of which I will bet at least 2,500 use at least one "WinAPI" call.

      (And I dare say all my posted demos are nicely commented, although generally these applications are a bit more involved than this, although not as heavy on "nice screens" as many other demos).

      In the bigger picture, learning how to call external functions (all direct WinApi calls are 'external') given only the 'C-language function header' and its documentation is an important and necessary skill to develop when creating programs using the PB/CC or PB/Windows compilers. Maybe not what you wanted to hear, but it is what you need to know.

      MCM
      Michael Mattias
      Tal Systems (retired)
      Port Washington WI USA
      [email protected]
      http://www.talsystems.com

      Comment


      • #23
        Yes, PB will call the API functions to pass data between your applications and Windows. Almost everything you do in Windows (save basic calculations) must be done through API calls, many are encapsulated by PB's commands/keywords.

        PB/WIN 8 Online Manual: http://www.powerbasic.com/support/help/pbwin/index.htm
        PB files section with compiled example apps: http://www.powerbasic.com/support/downloads/

        As to the time it will take, it depends on several things, including the programmer's experience. It may be faster for you to post a request in the Positions Wanted/Offered section of this forum.
        kgpsoftware.com | Slam DBMS | PrpT Control | Other Downloads | Contact Me

        Comment


        • #24
          You will search in vain for help on the mci functions in PB and the online API help. They can be found in MSDN, which is the authority for all this stuff anyway.

          Patrice Terrier, who knows a thing or two, recently posted a "poor man's" movie player over here. It isn't perfect but might give you a start. He's using the SDK style of programming (more like C). There are others - ISTR one by Clay Clear. Also and a problem posted by Oliver Copp, which I played around with without really getting anywhere, not a very good example to follow but at least it's in DDT style, see below.

          If it's still opaque, Kev Peel's advice re posting in the Employment forum is sound (I promise I won't reply!)

          Code:
          #PBFORMS CREATED V1.50
          
          #COMPILE EXE
          #DIM ALL
          
          '------------------------------------------------------------------------------
          '   ** Includes **
          '------------------------------------------------------------------------------
          #PBFORMS BEGIN INCLUDES
          #IF NOT %DEF(%WINAPI)
              #INCLUDE "WIN32API.INC"
          #ENDIF
          #PBFORMS END INCLUDES
          '------------------------------------------------------------------------------
          
          '------------------------------------------------------------------------------
          '   ** Constants **
          '------------------------------------------------------------------------------
          #PBFORMS BEGIN CONSTANTS
          %IDD_MAINFRAME =  101
          %IDC_PATH      = 1001
          %IDC_VIDEO     = 1002
          %IDC_START      = 1003
          %IDC_STOP      = 1004
          #PBFORMS END CONSTANTS
          '------------------------------------------------------------------------------
          
          '------------------------------------------------------------------------------
          '   ** Declarations **
          '------------------------------------------------------------------------------
          DECLARE CALLBACK FUNCTION ShowMAINFRAMEProc()
          DECLARE FUNCTION ShowMAINFRAME(BYVAL hParent AS DWORD) AS LONG
          #PBFORMS DECLARATIONS
          '------------------------------------------------------------------------------
          
          '------------------------------------------------------------------------------
          '   ** Main Application Entry Point **
          '------------------------------------------------------------------------------
          FUNCTION PBMAIN()
              ShowMAINFRAME %HWND_DESKTOP
          END FUNCTION
          '------------------------------------------------------------------------------
          
          '------------------------------------------------------------------------------
          '   ** CallBacks **
          '------------------------------------------------------------------------------
          CALLBACK FUNCTION ShowMAINFRAMEProc()
              LOCAL sPath AS STRING
              LOCAL lresult AS LONG
              LOCAL hVid    AS DWORD
          
              SELECT CASE AS LONG CBMSG
                  CASE %WM_INITDIALOG
                      ' Initialization handler
          
                  CASE %WM_NCACTIVATE
                      STATIC hWndSaveFocus AS DWORD
                      IF ISFALSE CBWPARAM THEN
                          ' Save control focus
                          hWndSaveFocus = GetFocus()
                      ELSEIF hWndSaveFocus THEN
                          ' Restore control focus
                          SetFocus(hWndSaveFocus)
                          hWndSaveFocus = 0
                      END IF
          
                  CASE %WM_COMMAND
                      ' Process control notifications
                      SELECT CASE AS LONG CBCTL
                          CASE %IDC_STOP
                              IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                                  CONTROL GET TEXT CBHNDL,%IDC_PATH TO sPath
                                  CALL mciSendString("close " + $DQ + sPath + $DQ, "", %NULL, %NULL)
                              END IF
                          CASE %IDC_START
                              IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                                  CONTROL GET TEXT CBHNDL,%IDC_PATH TO sPath$
                                  CONTROL HANDLE CBHNDL,%IDC_VIDEO TO hVid
                                  CONTROL SET COLOR CBHNDL, %IDC_VIDEO, -1, -2
                                  lresult=mciSendString("open " + $DQ + sPath + $DQ, "", %NULL, %NULL)
                                  IF lresult THEN
                                      MSGBOX "Error opening."
                                      EXIT FUNCTION
                                  END IF
                                  lresult=mciSendString("window " + $DQ + sPath + $DQ + " handle " + FORMAT$(hVid), BYVAL %NULL, 0, 0)
                                  IF lresult THEN
                                      MSGBOX "Error setting window."
                                      EXIT FUNCTION
                                  END IF
                                  lresult=mciSendString("play " + $DQ + sPath + $DQ, "", %NULL, %NULL)
                                  IF lresult THEN
                                      MSGBOX "Error playing."
                                      EXIT FUNCTION
                                  END IF
                              END IF
          
                      END SELECT
              END SELECT
          END FUNCTION
          '------------------------------------------------------------------------------
          
          '------------------------------------------------------------------------------
          '   ** Dialogs **
          '------------------------------------------------------------------------------
          FUNCTION ShowMAINFRAME(BYVAL hParent AS DWORD) AS LONG
              LOCAL lRslt AS LONG
          
          #PBFORMS BEGIN DIALOG %IDD_MAINFRAME->->
              LOCAL hDlg  AS DWORD
          
              DIALOG NEW  hParent, "Video Player", 70, 70, 408, 325, %WS_POPUP OR _
                  %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_MINIMIZEBOX OR _
                  %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
                  %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_WINDOWEDGE OR _
                  %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
                  %WS_EX_RIGHTSCROLLBAR, TO hDlg
              CONTROL ADD TEXTBOX, hDlg, %IDC_PATH, "", 0, 15, 315, 12
              CONTROL ADD LABEL,   hDlg, %IDC_VIDEO, "", 20, 35, 355, 260, %WS_CHILD, %WS_EX_CLIENTEDGE
              CONTROL ADD BUTTON,  hDlg, %IDC_START, "Start", 5, 300, 30, 15
              CONTROL ADD BUTTON,  hDlg, %IDC_STOP, "Stop", 40, 300, 30, 15
          #PBFORMS END DIALOG
          
              DIALOG SHOW MODAL hDlg, CALL ShowMAINFRAMEProc TO lRslt
          
          #PBFORMS BEGIN CLEANUP %IDD_MAINFRAME
          #PBFORMS END CLEANUP
          
              FUNCTION = lRslt
          END FUNCTION
          '------------------------------------------------------------------------------------------------

          Comment


          • #25
            Originally posted by Chris Holbrook View Post
            [/code]
            That's all there is to it (the playing of a video in a window)?
            I can follow that code OK, just a few win-specific things to learn, but it kind of makes sense.

            Will that code you posted compile to an EXE? If so, can you please reply so I can get it from you somehow (I don't have the PBWin compiler - yet!)?

            Assuming it's not too big (i.e. under 1MB), is there any way to do a private message? If so, I'll give you an email address to send it to - or is there another way (i.e. put the exe and bas in the downloads section somehow)?

            Many thanks,
            Chris.

            Comment


            • #26
              Originally posted by Chris Burgess View Post
              That's all there is to it (the playing of a video in a window)?
              Chris, although that code will play a video, it doesn't do half of what you want to do. I offered it as a sort of confirmation that PB can in fact drive the MCI functions easily, and that your project funds won't be wasted if you choose to invest in PB. You already know that you will get first-class peer support in these forums. Alternatively, if you place your requirement in the employment offered/wanted forum, I'm sure you will get a response and you can work with a developer (not this one) to cost your project. Best of luck!

              Comment


              • #27
                Originally posted by Chris Holbrook View Post
                Best of luck!
                Thanks for the reply.

                > Chris, although that code will play a video, it doesn't do half of what you want to do.

                Yes, looking at that code, I can see that it won't be a complete app.
                I'm assuming it is a window with somewhere to type in a filename and "stop" and "exit" buttons and little else, but am I right that it will compile to a standalone (albeit very limited app) .EXE that will play a video, or will it need a bunch of other support files a la Visual basic?

                I'm referring to player support files, not things like codecs btw - so am I right in assuming that it will play a video clip standalone, as long as the file can be played on the system by a regular media player such as Nero or WMP?

                If so, we are already half way there.

                I'm not trying to score some free programming work - all I want to establish is that PBWin will enable us to create what we need without having to resort to complexities such as lots of assembly code and the like.

                Again, many thanks for the help so far.
                Regards,
                Chris

                Comment


                • #28
                  Chris, the code you see will compile and run and do what you expect. It needs the WIN32API.INC which is shipped with PowerBASIC, in order to allow PB to call Windows functions. PB is being used here to call Windows functions which are part of the Media Control Interface, q.v.. Please do not treat this program as being any more than a rough illustration of how you can approach your task.

                  Comment


                  • #29
                    Originally posted by Chris Holbrook View Post
                    Chris, the code you see will compile and run - - - Please do not treat this program as being any more than a rough illustration of how you can approach your task.
                    Yes, that's all I'm treating it as.
                    I just wanted to know if it would compile as-is, or if it needed other DLLs etc to run. It seems a bit too small, that's all.

                    One more thing to find out about the capabilities of PB, but that can go to another thread...

                    Thanks again,
                    Chris

                    Comment


                    • #30
                      I just wanted to know if it would compile as-is, or if it needed other DLLs etc to run.
                      You never need any DLLs to compile a program. Ever.

                      There is a program in the source code forum you can compile and run to tell you what DLLs any executable file (EXE or DLL) requires:

                      Show exports and imports for PB/Win 6x, 7x (original by Torsten Reinow)

                      "Imports" are what must be present for the program to start up without one of the "<program> or one of its components is missing" messages.

                      MCM
                      Michael Mattias
                      Tal Systems (retired)
                      Port Washington WI USA
                      [email protected]
                      http://www.talsystems.com

                      Comment


                      • #31
                        I just wanted to know if it would compile as-is, or if it needed other DLLs etc to run. It seems a bit too small, that's all.
                        No additional runtime files (VB5/6) or bloated 400kb executables (Delphi). That's just one reason why we all use PB

                        Provided WMP (Windows Media Player) is installed, that code should run on Win95/NT4 and later.
                        kgpsoftware.com | Slam DBMS | PrpT Control | Other Downloads | Contact Me

                        Comment


                        • #32
                          Sorry about that, when I said "compile" I meant "compile to an EXE that would run without the need for additional runtime files (supplied by an installer package).

                          Any idea how large the EXE file would be from that code that was put up earlier? Assuming that something I got a laugh from when studying the online manual - the "#BLOAT metastatement" - is not used?

                          Anyway, the first issue is now sorted. One more to go before I get out the credit card... I was going to ask in a new thread, but I'll keep it here in the name of tidiness:

                          The other thing I need it to do is to use static images for the background of the window. For example, a "form" (if thats the right word) of a fixed size, say 500 x 500, with 2 buttons called "1" and "2". I have 2 bitmap files, say "image1.bmp" and "image2.bmp". Both bitmaps are 500x500 pixels.

                          When button "1" is clicked, image1.bmp becomes the background.
                          When button "2" is clicked, image2.bmp becomes the background.

                          I can see by looking at the manual and other posts this can possibly be done by converting the bmp to a "resource" and then INCluding it, but that would limit me to one picture.

                          Question: Can we either load a BMP and put it to the form background, or if that's impossible, can we have more than one background image in a RESource file?

                          Regards,
                          Chris.

                          Comment


                          • #33
                            In VB this was/may been a property, PowerBASIC requires plain SDK and means that you'll need to load the image and draw it yourself.
                            But.. nothing is impossible, just more work.

                            Using the IPicture or even better, the gdi plus functions you can draw on a window without to much work (or by plain winapi).
                            It's just.. before you know what to search for..
                            hellobasic

                            Comment


                            • #34
                              >but that would limit me to one picture.

                              No, resources are semi-fixed storage.
                              While you can update a resource after compilation, it's not common to do.

                              You can store images by using different image names like:

                              IMAGE1 BITMAP "c:\\myfineBitmap1.bmp"
                              IMAGE2 BITMAP "c:\\myfineBitmap2.bmp"

                              The hassle will be to obtain them and use them for your specific purpose.. like drawing them manually onto your window.

                              The Windows STATIC class (~similar to VB label) can be used to show images directly from the resource.
                              I forgot, in the later PB versions there might be more commands to do what you like.
                              Forgot what it was, see 'graphic' in the help.
                              hellobasic

                              Comment


                              • #35
                                Originally posted by Edwin Knoppert View Post
                                In VB this was/may been a property, PowerBASIC requires plain SDK and means that you'll need to load the image and draw it yourself.
                                But.. nothing is impossible, just more work.

                                Using the IPicture or even better, the gdi plus functions you can draw on a window without to much work (or by plain winapi).
                                There are examples of GDIplus in the forums too, code that can be cut & pasted to pick up an image from a file and place it in a control at a given size, so the picture selection can be changed without having to recompile or to use a resource editor. So don't be disheartened by "just more work" - the work has already been done and the bill is $0.00.

                                Comment


                                • #36
                                  Chris,

                                  Maybe the easiest method would be to use BitBlt to draw the bitmap directly onto the dialogs DC (GetDC). This can be done in five or six lines of code.
                                  Sincerely,

                                  Steve Rossell
                                  PowerBASIC Staff

                                  Comment


                                  • #37
                                    ...or even load from a file as this working example (44 lines including comment & whitespace) shows. After an example by Kev Peel, SDK nowhere in sight.

                                    Code:
                                    #COMPILE EXE
                                    #DIM ALL
                                    #IF NOT %DEF(%WINAPI)
                                        #INCLUDE "WIN32API.INC"
                                    #ENDIF
                                    
                                    %IDD_DIALOG1 =  101
                                    %IDC_MYIMAGE = 1001
                                    
                                    '--------------------------------------
                                    
                                    CALLBACK FUNCTION ShowDIALOG1Proc()
                                        LOCAL hbmp AS LONG
                                    
                                        SELECT CASE AS LONG CBMSG
                                            CASE %WM_INITDIALOG
                                                hBmp = LoadImage(0, "MYIMAGE.BMP", %IMAGE_BITMAP, 0, 0, %LR_LOADFROMFILE)
                                                CONTROL SEND CBHNDL, %IDC_MYIMAGE, %STM_SETIMAGE, %IMAGE_BITMAP, hBmp
                                    
                                            CASE %WM_COMMAND
                                                SELECT CASE AS LONG CBCTL
                                                    CASE %IDC_MYIMAGE
                                    
                                                END SELECT
                                        END SELECT
                                    END FUNCTION
                                    '--------------------------------------
                                    FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
                                        LOCAL lRslt AS LONG
                                    
                                        LOCAL hDlg  AS DWORD
                                    
                                        DIALOG NEW hParent, "file to image", 161, 113, 201, 121, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR _
                                            %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT _
                                            OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
                                        CONTROL ADD LABEL, hDlg, %IDC_MYIMAGE, "", 20, 5, 155, 100, %WS_CHILD OR %WS_VISIBLE OR %SS_BITMAP OR %SS_CENTERIMAGE OR _
                                            %SS_NOTIFY, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING
                                        DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt
                                        FUNCTION = lRslt
                                    END FUNCTION
                                    '===================================
                                    FUNCTION PBMAIN()
                                        ShowDIALOG1 %HWND_DESKTOP
                                    END FUNCTION

                                    Comment


                                    • #38
                                      Question: Can we either load a BMP and put it to the form background, or if that's impossible, can we have more than one background image in a RESource file?
                                      ..
                                      [answer given=YES]
                                      ...
                                      Lots of image files and worried about executable size? See:
                                      One From Column A, One from Column B..

                                      That post, by the way, should show you just how many different pieces of code have already been contributed to the source code forum and how you can put them together.

                                      Also that you are going to have to put pieces together, since nobody is going to create exactly what you want except you...unless you engage someone to do it for a fee.

                                      PS:
                                      I know I posted this somewhere here earlier, but here's the resource file for the application mentioned in my link:
                                      Code:
                                      // pppsdemov3.rc
                                      //
                                      // 10.01.04 1.0.0  Original
                                      // 11.01.04 1.0.1  Corrected some typos in richtext and reworded one comment here (database search)
                                      // 11.08.04 1.0.2  Changed claims summary report to version which shows "ALLOWED" instead of "COVD CHG"
                                      // 06.09.05 2.0.0  Demo for version 3.0
                                      // 12.03.07 2.1.0  Demo for version 3.2 very few changes needed
                                      
                                      #include "resource.h"
                                      
                                      #define COPYRIGHT_SYMBOL "\251"
                                      #define REGISTERED_SYMBOL "\256"
                                      #define TRADEMARK_SYMBOL  "\153"
                                      
                                      //  ===================================================//
                                      //      STANDARD VERSION RESOURCE AND #defines
                                      // Version resource last item in this file
                                      //  ===================================================//
                                      #define VERSION_MAJOR       2
                                      #define VERSION_MINOR       1
                                      #define VERSION_BUILD       0
                                      #define VERSION_LITERAL     "Version 2.1.0\0"
                                      #define VERSION_DATE       " December 2007\0"
                                      #define VERSION_PURPOSE    " Provider Payment Partner Demonstration\0"
                                      #define PROGRAM_NAME       " PPPSTOUR"
                                      #define PRODUCT_NAME       "Provider Payment Partner System\0"
                                      #define VERSION_TRADEMARKS "Provider Payment Partner is a trademark of Tal Systems Inc. Racine WI\0"
                                      
                                      PROGRAM  ICON     pppsabr3.ico
                                      
                                      // FOR THE TOOLBAR BUTTONS
                                      ARROWR     BITMAP    arrow_right.bmp
                                      ARROWL     BITMAP    arrow_left.bmp
                                      STOP       BITMAP    stopsign3.bmp
                                      TSI        BITMAP    tal_white_90x45.bmp
                                      // Background brush for picture control
                                      MDICPATT  BITMAP    ppps_green_bar.bmp
                                      
                                      // ZLIB.DLL Compression/Decompression Library
                                      
                                      COMP       COMP      zlib.dll
                                      
                                      //======================================//
                                      // SLIDES TO BE SHOWN FOR PRESENTATION
                                      //=====================================//
                                      
                                      //  Defines used to order the slides at runtime...
                                      //  Each picture to be shown has two entries, a "Slide" entry and a "Comment" entry,
                                      //  The comment text appears with each slide
                                      
                                      #define crlf                  0x0a0d      //  inverted because stored as WORD
                                      
                                      #define rpt_provider_eor         101
                                      #define rpt_patient_eor          102
                                      #define rpt_claims_summary       103
                                      #define rpt_remit_summary        104
                                      
                                      #define scr_database_search      201
                                      #define scr_select_remittance    207
                                      #define scr_main                 211
                                      #define scr_olv_claimlist        212
                                      #define scr_olv_selclaim         213
                                      #define scr_system_setup         215
                                      #define scr_report_setup         216
                                      #define scr_reportcenter         218
                                      
                                      
                                      #define txt_home_screen          301
                                      #define txt_prov_benefits        302
                                      #define txt_thankyou             309
                                      #define txt_features             310
                                      
                                      
                                      // To define the type of "picture" which may be either a picture or a richtext string
                                      // These equates are used in the program as well as here.
                                      #define  is_picture              301
                                      #define  is_richtext             305
                                      
                                      
                                      ///===========================================================================////
                                      ///  TABLE TELLLING US WHAT TYPE AND IN WHAT ORDER SLIDES ARE TO BE PRESENTED
                                      //   SLIDE can be type is_picture or is_richtext
                                      //   Type will come back with type in HIWRD of long integer, since all these
                                      //   values here are stored as 16-bit integers.
                                      ///==========================================================================////
                                      
                                      PICTYPE     TABLE
                                      BEGIN
                                              txt_home_screen, is_richtext,
                                              txt_prov_benefits, is_richtext,
                                              scr_system_setup,is_picture,
                                              scr_report_setup,is_picture,
                                              scr_main,is_picture,
                                              scr_reportcenter,is_picture,
                                              scr_olv_claimlist,is_picture,
                                              scr_olv_selclaim,is_picture,
                                              scr_database_search,is_picture,
                                              rpt_remit_summary, is_picture,
                                              rpt_claims_summary, is_picture,
                                              rpt_provider_eor,is_picture,
                                              rpt_patient_eor,is_picture,
                                              txt_features,is_richtext,
                                              txt_thankyou, is_richtext
                                      END
                                      
                                      
                                      // TEXT SLIDES ( richtext documents)  which these do not have comments...
                                      txt_home_screen                  SLIDE     tsi_presents_v3.rtf
                                      txt_prov_benefits                SLIDE     prov_benefits.rtf
                                      txt_thankyou                     SLIDE     thank_you.rtf
                                      // txt_features                     SLIDE     std_features.rtf
                                      // next file is bulleted created by MS-Word as Rich text 12/3/07
                                      txt_features                     SLIDE     std_features_32m.rtf
                                      
                                      //MAIN REMITTANCE PROCESSING SCREEN
                                      scr_main      SLIDE       zc_remitcenter_main.bin
                                      scr_main      COMMENT
                                      BEGIN
                                        "This is the main PPPS remittance processing screen. Either 'Open by File Name' or 'Open by Payer Name' ",
                                        "may be used o select the name of the payer's remittance file to be processed.",
                                        "As that remittance file is opened, the user is ",
                                        "presented with this summary showing remittance advice documents found in that file.",
                                        crlf,
                                        "On this and all other screens of the PPPS, the user may select the 'datasource', which is ",
                                        "the destination for remittance information storage or source for reports and inquires;",
                                        " as well as direct that print report output be sent either directly ",
                                        "to a named printer or to the What-You-See-Is-What-You-Get print previewer."
                                      END
                                      
                                      // REPORT CENTER INTRODUCED IN VERSION 3.0
                                      
                                      scr_reportcenter      SLIDE    zc_ppps_report_center_32.bin
                                      scr_reportcenter      COMMENT
                                      BEGIN
                                       "The PPPS ReportCenter is the central location from which all print reports are created. A toolbar ",
                                       "shows all available standard and user-tailored 'plug in' reports are available, and a summary description "
                                       "of each report is shown.",
                                       crlf,
                                       "From this screen the user may also launch the Online Remittance Viewer.",
                                       crlf,
                                       "Remittances may be filtered by date, or all remittances in the database may be included."
                                      END
                                      
                                      // ON LINE REMITTANCE INQUIRY CLAIMLIST SCREEN
                                      scr_olv_claimlist     SLIDE    zc_ppps_olv_claim_list_300.bin
                                      scr_olv_claimlist     COMMENT
                                      BEGIN
                                       "When a payer's remittance includes individual claim adjudications, the on-line remittance inquiry presents ",
                                       "this list of claims. The list may be sorted by any of the columns.",
                                       crlf,
                                       "From this screen the user may mark or unmark one or more claims, or all claims at once, select a report ",
                                       "from the toolbar and generate that report, sending the report either directly to a printer or to the ",
                                       "What-You-See-Is-What-You-Get Print Previewer."
                                      END
                                      
                                      // ON LINE REMITTANCE VIEWER SELECTED CLAIM SCREEN (New in 3.0)
                                      scr_olv_selclaim     SLIDE    zc_ppps_olv_sel_claim_300.bin
                                      scr_olv_selclaim     COMMENT
                                      BEGIN
                                       "The Online Remittance Viewer's detailed look at the claim currently selected on the claim list screen looks ",
                                       "like the Provider's Explanation of Remittance Print Report.",
                                       crlf,
                                       "The left and right arrow keys advance to the prior or next claim in the claim list in the order in which ",
                                       "the claims are currently sorted."
                                      
                                      
                                      END
                                      
                                      // ===========  PROVIDER'S EOR REPORT ==============================
                                      rpt_provider_eor       SLIDE           zc_report_provider_eor.bin
                                      rpt_provider_eor       COMMENT
                                      BEGIN
                                       " This is the primary detail report which providers will use to post payments to patient accounts, ",
                                       " prepare COB claims or create statements for patient responsibility amounts. Any service line overrides such ",
                                       "as procedure code, service line rendering provider or payment remark codes are shown after each service line."
                                      END
                                      
                                      
                                      
                                      //========= PATIENT'S  EOR REPORT ================================
                                      rpt_patient_eor      SLIDE   zc_report_patient_eor.bin
                                      rpt_patient_eor      COMMENT
                                      BEGIN
                                        "The Patient version of the Explanation of Remittance is a 'stripped down' version of the Provider version;"
                                        " it omits information of no interest to the patient, such as the payer's check number and date, "
                                        "and adds payer contact information to assist your patients if they must contact the payer.",crlf,
                                        "Although you may create Patient EORs for all claims in a remittance at one time, each EOR  begins on its own Page One."
                                      END
                                      
                                      
                                      //========= CLAIMS SUMMARY REPORT ================================
                                      rpt_claims_summary      SLIDE   zc_report_claims_summary.bin
                                      rpt_claims_summary      COMMENT
                                      BEGIN
                                        "The Claims Summary Report provides important summary information about each claim adjudicated in the payer's ",
                                        "remittance.", crlf, "Column eight (in example, the column with PENALTY AMT at the top) is reserved for four ",
                                        "user-defined adjustment buckets: both the column header and which adjustments reason codes are included in ",
                                        "these columns are specified by the user."
                                      END
                                      
                                      //========= REMITTANCE SUMMARY REPORT ================================
                                      rpt_remit_summary      SLIDE   zc_report_remit_summary.bin
                                      rpt_remit_summary      COMMENT
                                      BEGIN
                                        "The Remittance Summary Report provides a concise summation of a payer's remittance.", crlf,
                                        "The provider-level adjustments (not applicable to any particular claim) and the control ",
                                        "totals shown toward the bottom of this page are shown on all remittance reports except the Patient's ",
                                        "EOR Report."
                                      END
                                      
                                      //========= SCAN AND MAP REPORT ================================
                                      // REMOVED FROM TOUR FOR VERSION 3.0
                                      ///rpt_scan_map           SLIDE   zc_report_scan_map.bin
                                      ///rpt_scan_map         COMMENT
                                      ///BEGIN
                                      ///  "This report is automatically produced each time 'Scan' or 'Scan and Store' is selected from the main ",
                                      ///  "processing screen. Each payer's remittance stored in the database is assigned a 'remittance number' ",
                                      ///  "which is used to select a remittance for further inquiry or report creation."
                                      ///END
                                      
                                      
                                      //  ===========SYSTEM AND USER SETUP  SCREEN ======================
                                      //  only change of a file name into the resource in here for demo version 2.1 (PPP version 3.2)
                                      //  several richtext files have had text updated
                                      //
                                      //scr_system_setup         SLIDE        zc_ppps_system_setup_300.bin
                                      scr_system_setup         SLIDE        zc_ppps_system_setup_320.bin
                                      scr_system_setup         COMMENT
                                      BEGIN
                                       "This is the screen used for basic system setup. Default folders for files, data source for input and output,"
                                       " Provider Name as it is to appear on reports, default printer name, What-you-see-is-what-you-get printer "
                                       "options, duplicate remittance handling and sort order for claims within remittances may all be set here. "
                                       "All options may be changed at any time and immediately affect reports."
                                      END
                                      
                                      // =============== USER-DEFINED ADJUSTMENTS SETUP SCREEN =============
                                      scr_report_setup        SLIDE        zc_ppps_user_report_options.bin
                                      scr_report_setup        COMMENT
                                      BEGIN
                                       "This screen is used to set up the adjustment reason codes used to group varous payer adjustments ",
                                       "into user-defined 'buckets.'",
                                       crlf,
                                       "The four user-defined buckets appear on the Claims Summary Report; the discount appears on both the "
                                       "Provider's Explanation of Remittance Report and the Remittance Summary Report.",
                                       crlf,
                                       "This screen also controls if and where the text for payment remark codes appears on the Provider ",
                                       "and Payer Explanation of Remittance Reports."
                                      END
                                      
                                      
                                      
                                      // =============== DATABASE SEARCH SCREEN =============================
                                      scr_database_search    SLIDE        zc_ppps_database_search_32.bin
                                      scr_database_search    COMMENT
                                      BEGIN
                                      "After a payer's remittance has been stored in the database, the user can locate all payment information using ",
                                      "any of several key values."
                                      crlf,
                                      " When the desired claim payments are located, one click is all it takes to generate an EOR or Claims Summary Report."
                                        crlf,
                                        " This feature is extremely useful assisting patients to understand what their insurance paid, and more "
                                        "important, what their insurer did not pay.",
                                         crlf,
                                        "Searches may be filtered by date, or all remittances in the database may be included."
                                      
                                      END
                                      
                                      // =============== SELECT A REMITTANCE FOR SOMETHING SCREEN =============================
                                      // DROPPED FROM TOUR FOR VERSION 3.0
                                      // scr_select_remittance   SLIDE        zc_ppps_select_remittance_221.bin
                                      // scr_select_remittance   COMMENT
                                      //BEGIN
                                      //"This screen is used any time a remittance is selected ",
                                      // "for reporting, using the on-line-inquiry or deleting old remittances ",
                                      // "when no longer needed or any other PPPS function requiring a 'remittance number'. "
                                      // "The list of available remittances may be sorted by any of the columns shown."
                                      //END
                                      
                                      VS_VERSION_INFO VERSIONINFO
                                      FILEVERSION    VERSION_MAJOR, VERSION_MINOR, 0, VERSION_BUILD
                                      PRODUCTVERSION VERSION_MAJOR, VERSION_MINOR, 0, VERSION_BUILD
                                      FILEOS VOS_WINDOWS32
                                      FILETYPE VFT_APP
                                      //FILETYPE VFT_DLL   // << FOR DLLs
                                      BEGIN
                                        BLOCK "StringFileInfo"
                                        BEGIN
                                          BLOCK "040904E4"
                                          BEGIN
                                            VALUE "CompanyName",      "Tal Systems Inc.\0"
                                            VALUE "FileDescription",  VERSION_PURPOSE
                                            VALUE "FileVersion",      VERSION_LITERAL
                                            VALUE "Author",           "Michael Mattias, Tal Systems Inc.\0"
                                            VALUE "InternalName",     PROGRAM_NAME
                                            VALUE "LegalCopyright",   " \251 Michael C Mattias\0"
                                            VALUE "LegalTrademarks",  VERSION_TRADEMARKS
                                            VALUE "ProductName",      PRODUCT_NAME
                                            VALUE  "VersionDate",      VERSION_DATE
                                          END
                                        END
                                      END
                                      
                                      
                                      //  END OF FILE
                                      Last edited by Michael Mattias; 21 Apr 2008, 04:20 PM.
                                      Michael Mattias
                                      Tal Systems (retired)
                                      Port Washington WI USA
                                      [email protected]
                                      http://www.talsystems.com

                                      Comment


                                      • #39
                                        Here is how i did it, with PwrDev though, so you'll need to modify it slightly:
                                        Code:
                                        IMAGE1 BITMAP "%windir%system32\setup.bmp"
                                        Code:
                                        Global pBMIH As BITMAPINFOHEADER Ptr
                                        Code:
                                            Local hRes As Long
                                            Local hMem As Long
                                            hRes = FindResource( VD_App.hInstance, "IMAGE1", ByVal %RT_BITMAP )
                                            hMem = LoadResource( VD_App.hInstance, hRes )
                                            pBMIH = LockResource( hMem )
                                        Code:
                                            Case %WM_ERASEBKGND
                                        
                                                StretchDIBits( nCbWparam _
                                                    , 0, 0, @pBMIH.biWidth, @pBMIH.biHeight _
                                                    , 0, 0, @pBMIH.biWidth, @pBMIH.biHeight _
                                                    , ByVal CLng( pBMIH + Len( @pBMIH ) ) _
                                                    , ByVal pBMIH, %DIB_RGB_COLORS, %SRCCOPY )
                                        
                                                Function = 1
                                                Cancel = 1
                                        
                                            Case %WM_PAINT
                                            Case %WM_TIMER
                                        hellobasic

                                        Comment


                                        • #40
                                          it's a game!

                                          Let's add some functionality to the images!
                                          You will need two images, preferably different. Call one good.bmp and the other evil.bmp. Run the application below. Will good prevail? can evil ever be eradicated?

                                          Code:
                                          ' image game, you need 2 images, "good.bmp" and "evil.bmp"
                                          ' click on an image to change it
                                          ' while the timer also plays!
                                          ' Chris Holbrook 21-Apr-2008
                                          #COMPILE EXE
                                          #DIM ALL
                                          #INCLUDE "WIN32API.INC"
                                          %IDD_DIALOG1 =  101
                                          %IDC_MYIMAGE = 1001
                                          %our_timer = 100
                                          '--------------------------------------
                                          CALLBACK FUNCTION ShowDIALOG1Proc()
                                              LOCAL i AS LONG
                                              STATIC hbmp(), hbmpGood, hBMPEVIL AS LONG
                                          
                                              SELECT CASE AS LONG CBMSG
                                                  CASE %WM_INITDIALOG
                                                      settimer CBHNDL,%our_timer,750,0
                                                      hBmpGood = LoadImage(0, "good.bmp", %IMAGE_BITMAP, 0, 0, %LR_LOADFROMFILE)
                                                      hBmpevil = LoadImage(0, "evil.bmp", %IMAGE_BITMAP, 0, 0, %LR_LOADFROMFILE)
                                                      REDIM hbmp(0 TO 9) AS STATIC LONG
                                                      FOR i = 0 TO 9
                                                          hbmp(i) = hBmpEvil
                                                          CONTROL SEND CBHNDL, %IDC_MYIMAGE + i, %STM_SETIMAGE, %IMAGE_BITMAP, hBmp(i)
                                                      NEXT
                                                  CASE %WM_COMMAND
                                                      i = CBCTL - %IDC_MYIMAGE
                                                      IF hbmp(i) = hBmpEvil THEN
                                                          hbmp(i) = hBmpGood
                                                      ELSE
                                                          hbmp(i) = hBmpEvil
                                                      END IF
                                                      CONTROL SEND CBHNDL, %IDC_MYIMAGE + i, %STM_SETIMAGE, %IMAGE_BITMAP, hBmp(i)
                                                  CASE %WM_TIMER
                                                      i = RND(0,9)
                                                      IF hbmp(i) = hBmpEvil THEN
                                                          hbmp(i) = hBmpGood
                                                      ELSE
                                                          hbmp(i) = hBmpEvil
                                                      END IF
                                                      CONTROL SEND CBHNDL,%IDC_MYIMAGE + i, %STM_SETIMAGE, %IMAGE_BITMAP, hBmp(i)
                                          
                                                  CASE %WM_DESTROY
                                                      killtimer CBHNDL, %our_timer
                                              END SELECT
                                          END FUNCTION
                                          '--------------------------------------
                                          FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
                                              LOCAL i, lRslt AS LONG
                                              LOCAL hDlg  AS DWORD
                                          
                                              DIALOG NEW hParent, "Good vs Evil", 20, 20, 310, 360, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR _
                                                  %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT _
                                                  OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
                                              FOR i = 0 TO 9
                                                  CONTROL ADD LABEL, hDlg, %IDC_MYIMAGE + i, "", _
                                                          20 + ( (i MOD 2) * 135), 2 + ((i MOD 5)*70), 130, 70, _
                                                          %WS_CHILD OR %WS_VISIBLE OR %SS_BITMAP OR %SS_CENTERIMAGE OR _
                                                          %SS_NOTIFY, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING
                                              NEXT
                                              DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt
                                              FUNCTION = lRslt
                                          END FUNCTION
                                          '===================================
                                          FUNCTION PBMAIN()
                                              ShowDIALOG1 %HWND_DESKTOP
                                          END FUNCTION

                                          Comment

                                          Working...
                                          X