Announcement

Collapse
No announcement yet.

Potential purchaser questions #2

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

  • Potential purchaser questions #2

    Hi All,
    About a month ago a few I asked a few questions about the capabilities and usage of PB, and got a few code examples, etc, which basically (no pun intended) convinced me to go down this path, as opposed to VB/.NET etc. In the middle of it all, I had to go interstate for 4 weeks at short notice, and the project was temporarily shelved. Now I'm back, and need to know a few small details.

    I'm familiar with programming, but from the microcontroller world, not Windows. I'm comfortable with C, Assembly, and Basic.

    The app we want is an educational "self teaching" thing, aimed at primary school age users, and people with little PC experience. We don't want to use HTML in a browser as there are too many things for them to click and get lost in...

    What the app has to do:

    As the background of the user window, display a series of pictures, say called Bitmap1.bmp to Bitmap10.bmp. On top of the picture are a few clickable buttons - for example "Back", "Next" and "Home" - which are used to change the background bitmap "page". Preferably, the buttons should themselves be graphic objects, so that pictures or other symbols (i.e. other languages) can be used as an option.

    There are no normal windows-app menus, and the app will preferably run only "maximised" (no user normalise control etc). The only user interface is the clickable on-screen buttons.

    There are only two other requirements. It has to be able to play fixed resolution video - say quarter screen sized - over the top of the background bitmap picture. Last month, somebody posted some code on how to do this, but I don't know if this can be done over (on top of) a background graphic.

    The other need is to be able to save the results of the users button clicks to a text file. An example of this would be to show (as part of the background) "What is 6 x 8" and have 4 clickable buttons appear: "40" "42" "46" and "48", and have the app record which button was clicked on.

    It is used in a classroom situation and we control all aspects of it (the graphic / video files, and the hardware it's run on) so we won't have issues with drivers or other incompatibilities.

    Therefore, question time:

    1) Is PBWin8 capable of this?

    2) Do I need the "Forms" addon to design the user interface?

    A little help to build "version 1" would probably be needed - my experience with Win coding was a bit of VB3 on WFWG... it's been a while. While I'm not asking anyone to "write my app for me" (at least not for free) I'll need a few pointers to get me started.

    But first, if someone can answer 1 and 2 first, I'll get a compiler if the answer is yes.

    Thanks in advance to all that can help me with this.

    Regards,
    Chris

  • #2
    To 1): PB is capable of doing everything (well, exclude driver programming) that i.e. C++ can do.

    To 2) You don't need to purchase a forms designer. All they do, is generated PB code, which you can do yourself in any text editor. Now for my personal opinion: a forms designer helps speed up things. That said, there are other form designers for PB avaliable. It's worth to take your time and test them out and see which designer works best for you.

    Comment


    • #3
      >Is PBWin8 capable of this?

      The compiler is really not capable of 'doing' anything; no compiler is.

      The PB/Win compiler will, however, cleanly and accurately support all the things you need to do to create this application.

      FWIW, I know there is code here to get you started doing all these things. But you will have to "cut and paste" from multiple demos, just like I did.....

      One From Column A, One from Column B..


      I'll let others speak to the utility and desireability of using PBForms to create this application. (I am not a PBForms user).
      Michael Mattias
      Tal Systems (retired)
      Port Washington WI USA
      [email protected]
      http://www.talsystems.com

      Comment


      • #4
        Yes, I remember that "tour" demo - neat and along the lines of what I have in mind.

        Having a quick look at the links though, I'll have some serious learning to do.
        Is it feasible to have a "main" which is the code that displays when the app is started, and have separate subs (for example, DisplayPage01, DisplayPage02, and so on) that contains the code that is executed when the user clicks the appropriate button?

        I realize this might not be the most efficient technique, but it's one I've been using in microcontroller land for years - i.e. a different sub for every situation that the user can initiate. With micros, I use a different sub for the various functions, such as Fan_On, Light_Off, Emergency_Stop, Overload_Detected, and so on, and call these from Main. We used to do this with QB4.5 back in the DOS days, and some of those machines are still running, 15 years on...

        Is this style of programming practical with PB?

        Cheers

        Comment


        • #5
          A number of things need to be considered:

          (1) The number bitmap images and the format of the images used. If you have a large number of images and the distribution method limits space (ie. downloadable, rather than distributed on CD), then you may need to use an addon tool which gives you access to other image formats, like PNG, JPEG, GIF, etc. There is a COM Interface in Windows which can handle some formats, but if the one you choose is not suppported then you may need to use a third party image tool. Bitmaps are going to be large, especially 24 or 32 bit color.

          PB's native command set does not support anything but Bitmaps (BMP).

          (2) The buttons you refer to, will they be standard rectangular buttons or do you need non-rectangular (ie. circle) ? Anything other than the standard rectangular buttons (using colors defined by Windows) will require a more advanced coding using the API. Buttons with user defined colors, 3D, non-rectangular will require ownerdraw buttons and the use of regions. This can be done using PB, but requires a bit of API knowledge with these areas.

          (3) Video. Playing video is not too difficult using the Windows API MCI command set. This is not native to PB, but is part of the Windows API. MCI is the easiest method, IMO and you can play MPEG, AVI, QUICKTIME, etc. as long as the codecs are installed and MCI supports those codecs on the end users system.

          Most PC's support AVI at minimum and possibly MPEG.

          (4) You need to determine what graphic capabilities you require, such as simply displaying a bitmap versus advanced drawing methods such as drawing non-rectangular images on a graphic background, anti-aliasing, alphablending, gradients, text (fonts) rotation, image rotation, etc.

          PB offers a number of simpler graphic methods and other addon tools are available which offer more advanced graphic capabilities (ie. Graphic Tools, GDImage, RMChart)

          (5) As far as Form development, it all depends upon the coding style you plan to use. PB's DDT (Dynamic Dialog Tools) command set is one choice. If you prefer that, then PB Forms or any other DDT code generator/designer would suffice. If you prefer working with the Windows API directly (often refered to as SDK style coding here) for GUI display, then a tool like FireFly or PwrDev would be used.

          There are other GUI development tools not mentioned and each offers different features.

          The more specific you are about your requirements, the easier it will be to see which development method would bets suit your needs.
          Chris Boss
          Computer Workshop
          Developer of "EZGUI"
          http://cwsof.com
          http://twitter.com/EZGUIProGuy

          Comment


          • #6
            >Is it feasible to have a "main" which is the code that displays when the app is started

            Code starts executing with the entry point function (PBMAIN or WinMain). You can make it do whatever you want.

            and have separate subs (for example, DisplayPage01, DisplayPage02, and so on) that contains the code that is executed when the user clicks the appropriate button?
            A. See CALL function in help file
            B. Under Windows(r) any and all 'user-initiatied events' such as moving or clicking the mouse or pressing or releasing a key on the keyboard result in a notification message to your program that the user did that. What you do when you get that notification is up to you.

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

            Comment


            • #7
              you *still* haven't bought the compiler?

              1. Yes
              2. No

              Don't know if I followed you about "playing video over the background bitmap" though. Do you mean that the video has a transparent background?

              Comment


              • #8
                Yes
                No

                I don't use PBForms, and while it might make it easier than my recompiling and testing for perfections of my own hand generated dialogs, I've just never used it.

                I do a lot of windows w here I don't want the user maximizing it, or Minimizing it so yes, you can create the window the way you want - maximized and grey the control buttons out if you want....easy to do!

                PB seemingly will do anything C will do, so far as I've ever done...
                Scott Turchin
                MCSE, MCP+I
                http://www.tngbbs.com
                ----------------------
                True Karate-do is this: that in daily life, one's mind and body be trained and developed in a spirit of humility; and that in critical times, one be devoted utterly to the cause of justice. -Gichin Funakoshi

                Comment


                • #9
                  >you *still* haven't bought the compiler?

                  Originally posted by Chris Holbrook View Post
                  1. Yes
                  2. No
                  Good question..
                  Your wasting peoples time.
                  hellobasic

                  Comment


                  • #10
                    Steady on Edwin! He may not be all bad...

                    Comment


                    • #11
                      1. Yes
                      2. No, but...

                      PBForms will save you a lot of time with the User interface. It will also help you grasp some of the nuances of programming in general. I progressed much quicker after the purchase of PBForms.

                      Rod
                      Rod
                      I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

                      Comment


                      • #12
                        Originally posted by Chris Boss View Post
                        A number of things need to be considered:

                        (1) The number bitmap images and the format of the images used.

                        (2) The buttons you refer to, will they be standard rectangular buttons

                        (3) Video. Playing video is not too difficult using the Windows API MCI

                        (4) You need to determine what graphic capabilities you require, such as simply displaying a bitmap versus advanced drawing methods

                        (5) As far as Form development, it all depends upon the coding style you plan to use. PB's DDT (Dynamic Dialog Tools) command set is one choice.

                        The more specific you are about your requirements, the easier it will be to see which development method would bets suit your needs.
                        Hi Chris, thanks for the reply. I'll answer them in order...

                        1) I'll stick with bmp to keep it simple, at least to start with. There are no practical limits to the program + data files total size, as we will be running it only on our own machines (i.e. the finished product won't be distributed).

                        2) The buttons can be square or rectangular, no circles or transparency.

                        3) Video file formats / codecs will not be an issue, we will create the video files to suit. Somebody already posted code to play mpegs, but it was not specified whether they will play in a window that sits over a background bmp image.

                        4) Apart from video content, it's bitmap data only. No text, lines, antialiasing, etc. The "text" seen by the user is the background bmp.

                        5) No idea what dialog tools are (at this stage). I'm still to learn that.

                        At this stage, I just need to know that the compiler is capable of generating the code I need before I get out the plastic. I don't want to repeat a previous software mistake, buying something only to be told later that "that can't be done, you should have bought this...".

                        From the replies, it looks like the "forms" addon will make life easier especially for a win coding newbie, but someone suggested an alternative which I'll be checking out tonight.

                        Many thanks for the reply.

                        Cheers

                        Comment


                        • #13
                          Originally posted by Chris Holbrook View Post
                          Don't know if I followed you about "playing video over the background bitmap" though. Do you mean that the video has a transparent background?
                          No, the video (these are only on some, not all, of the pages seen by the user) just sits over (obscures) part of the background bmp image. What I meant be "playing over" was that the background for that page can appear, then a video can appear, obscuring part of the background... when it's finished playing the sub-window goes away, re-revealing the part of the background that was obscured.

                          The video sub-window will be fixed in both size and location (cannot be moved be the end user).

                          Hope that makes it clear.

                          Cheers

                          Comment


                          • #14
                            Chris,
                            My advice would be to first just purchase PBWin. Study and experiment with the DDT command set. Then you can make a better decision on which direction you want to go (If at all), PBFORMS or one of the excellent Third party tools.
                            You also can abandon DDT and elect to go with sdk or use a resource dialog editor. That's the beauty of PowerBASIC. You make the decision. Therein lies the rub sometimes. Information Overload. But believe me there is very little that PBWin cannot do on it's own! You just have to spend the time to learn it.

                            James

                            Comment


                            • #15
                              AFAIK you can still get that 30-day no-questions-asked money-back guarantee from PowerBASIC Inc. but you should contact their sales department to confirm. (Also I have no clue if that offer applies to the PBForms product).

                              Their email address is [email protected] ; or, there should be a toll-free phone number on the main PB web page for sales inquiries if you wish to speak with a real human.

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

                              Comment


                              • #16
                                Chris Burgess,

                                You can basically do anything you want with PowerBasic, since you have access to the entire Windows API (the internal calls made directly to the operating system). There are no limits.

                                The problem is the Windows API is very extensive and some of it is a bit complicated and it takes time to learn how to do some things.

                                Most PB'ers use some addon tool for GUI generation. The most popular is likely PowerBasics own PBForms. There are also some freeware designers and a number of third party designers.

                                In Windows, the fastest and easiest way to design the overall look of your application is visually. While you can hand code a GUI (Forms/controls layout), it is a bit time consuming.

                                You will see comments here which refer to DDT or SDK style coding.

                                DDT (or Dynamic Dialog Tools) refers to built in commands in the PowerBasic compiler for creating Forms and controls. There is also some commands for populating controls (ie. fill a listbox). DDT still requires some knowledge of the Windows API for more advanced stuff.

                                SDK is a term some thrown around by some, which simply means calling the Windows API (operating system) directly for all GUI code. This is not dependent upon the compilers command set, but is simply making calls to the operating system directly. You need good documentation about the Windows API when doing this. This documentation is available from Microsoft as downloads, on their web site or low cost CD's (the CD is free, they just charge for shipping). I recommend purchasing the Windows SDK (software development kit) from Microsoft. The cost is about $10 or so.

                                When using the SDK style of coding, there are a number of third party visual designers which are geared towarded this. The most popular one is FireFly. It has a Visual Basic look and feel to it. The price is about $100, last I checked. There is also PwrDev and Phoenix.

                                Most PB'ers choose a development style (DDT, SDK and a third party designer) for their development which fits their way of working. I would venture to say that most likely you will need at least one addon tool to get the most out of the compiler, whether it be PBForms, FireFly, etc.

                                There is also EZGUI 4.0 Pro (which I developed and sell), but thats a totally different discussion which should be posted in the third party forum.

                                At minimum should buy the compiler. Even if you don't use it for development of the front end of your application, it can be used as an excellent addon to any software development environment (compiler) for building non-GUI code. You can compile standard Windows DLL's (Dynamically Link Library) which can be used with any compiler for Windows which supports DLL's (most do). This means you can take advantage of the BASIC command set in PowerBasic to build libraries for use with C, Visual Basic, Pascal (delphi) and any other compiler. You won't be wasting any resources in getting the compiler.

                                You can also download freeware visual designers (there are three on my web site and possibly others from other sources) to get started using DDT. If you like DDT, then you can consider purchasing PowerBasic's PBForms or any other third party DDT designer.

                                As you get experience with the compiler, you can research out the third party market of addon designers/code generators to see if any fit your coding style, as well as needs.

                                I original purchased PowerBasic (1.0) for use as an addon for Visual Basic. I later eventually shifted completely to PowerBasic and it is now my primary development tool. I development my software using PB 6.1, but I also use PB 8.0 for testing (DDT stuff).
                                Last edited by Chris Boss; 3 Jun 2008, 11:06 AM.
                                Chris Boss
                                Computer Workshop
                                Developer of "EZGUI"
                                http://cwsof.com
                                http://twitter.com/EZGUIProGuy

                                Comment


                                • #17
                                  I am going to try to put this matter in a different light. A compiler does nothing more than convert programming statements into executable code. The ability of the compiler to parse through statements and handle the syntax involved are a reflection of the care and attention to detail given the compiler's front end. The PowerBasic compilers are exceptionally flexible and fast in converting source code to actual code - so fast, in fact, that many coders (myself included) simply call up the IDE and recompile code on the fly in order to execute it, rather than call up the executable itself. It is blazingly fast!

                                  The present day PowerBasic compilers are extensive in nature. I last heard that there were well over 600 keywords associated with PowerBasic, and those are words that actually DO something, or represent processes that simply WORK.

                                  Bob Zale is a great believer in the idea that for every computer action there should be a counterpart instruction that does the opposite. Nor does he
                                  seem to believe that there is only one right way to do anything, so you end up with a superlative instruction set that you only need to know a part of in order to code effectively. As a result, everybody is free to develop their own style, or adapt as much of their old style to PowerBasic as they care to.

                                  One of the significant marks of a programming language is the data types and structures that it supports. PowerBasic pretty much covers them all, from
                                  bit-oriented instrcutsions, all the way to user defined types (UDTs), and does not miss any of the string, integer, floating points, or currency types in between. It even supports Variants well enough for the purpose. It even has special instructions for processing arrays and performing matrix math.

                                  Another significant aspect of the PB language is consistency in syntax rules.
                                  There are very few oddball conventions found in PB, and once you become familiar with a syntatical rule, it applies everywhere. This makes it very easy to get up to speed with the language, because a lot of it seems pretty obvious after awhile.

                                  PB compilers get high marks for being able to create DLLs that other programs can call, or being able to use the DLLs created by other programs. It supports the calling conventions employed by other languages without difficulty. It provides a full set of the Windows APIs in a series of Include files that it adapted from the MS source, and which it maintains on its web site.
                                  And even though the Win32API.Inc file is a monster of a file, the compiler only extracts and codes those portions actually referenced and used in your program, which means your program source and executable files remain small in size.

                                  The compiler is very forgiving when it comes to coding form. For instance,
                                  it may encounter the same constant or type being defined in different
                                  included files, but as long as the definitions are in agreement with each other, there is no conflict, and it will continue to compile the code. It also allows
                                  for very stiff enforcement of declaring all variables before use, or relaxed rules where you can define variables on the fly.

                                  Visual Basic taught us that we can first visualize a form, then fill in the details of what the form allows us to do. PBForms allows you to approach coding in PowerBasic in a similar manner. But you do not have to code that way. It all comes down to choices again. Other Visual Designers allow you to go far beyond what limited visual effects that most VB programmers have natively,
                                  but let you do it in PowerBasic where it results in smaller and faster code.

                                  In fact, you will eventually find that PowerBasic has a special command that
                                  was added at the request of some ex-VB coders that is called #BLOAT. A lot of people think that this is some sort of insider's joke, and in a way it is. What #BLOAT does is allow you to make significantly larger executable files that do exactly the same thing as the smaller version, but which are more impressive because they are so much more massive in size. They make the client feel that they are finally getting their money's worth.

                                  Visual and Audio effects have limited native support in PowerBasic, but that is where it's strength in working with DLLs really pays off. That type of functionality is easily acquired from third parties, and PowerBasic is then able to let you utilize them as you direct. It also provides you with the necessary tools for networking through its TCP/IP and UDP interfaces.

                                  While we can tell you that PowerBasic is probably sufficient for your needs,
                                  what we can't tell you is whether you can achieve the results you want, because it all depends upon the driving element: the programmer. If you feel confident that you could do it with VB and .NET, then it should be safe to tell you that you can certainly do it with PB and some third party products for the visual elements.

                                  Comment


                                  • #18
                                    Originally posted by Donald Darden View Post
                                    ...and some third party products for the visual elements.
                                    Not convinced that you would need these, what did you have in mind?

                                    Comment


                                    • #19
                                      Originally posted by Michael Mattias View Post
                                      AFAIK you can still get that 30-day
                                      ...
                                      there should be a toll-free phone number on the main PB web page

                                      MCM
                                      Thanks for the reply.

                                      As long as it's capable (yes, I know it's the writer, not the compiler) of generating the code I need, I'll be more than happy to give it a go.
                                      I'll also try the "jobs wanted" section, and see if someone wants to write a very-cut-down version of what I'm hoping to achieve, and supply it with source. I'm confident once I get the basics, the rest should follow.

                                      The toll free number is no good from my location (50 miles south of Cooper Pedy in the Australian outback). You can't get much further from civilization... we don't even have mains power out here.

                                      (see http://www.opalcapitaloftheworld.com.au/) if interested)

                                      Regards,
                                      Chris

                                      Comment


                                      • #20
                                        Originally posted by Chris Boss View Post
                                        Chris Burgess,

                                        DDT (or Dynamic Dialog Tools) refers to built in commands in the PowerBasic compiler for creating Forms and controls. There is also some
                                        ...
                                        SDK is a term some thrown around by some,which simply means calling the Windows API (operating system) directly
                                        ...
                                        Most PB'ers choose a development style (DDT, SDK and a third party
                                        You can also download freeware visual designers (there are three on my web site (DDT stuff).
                                        Thanks for the reply and explanation of the differences. Looks like I'll be sticking with DDT, at least to start with.
                                        I'll have a look at those ones you mentioned and see if any of them resemble what I want to do.

                                        Thanks again,
                                        Chris

                                        Comment

                                        Working...
                                        X