Lesson 1 + 1b

Defining basic terms

Application

An application is a collection of objects that work together to accomplish something useful. In VB the application is called a Project. A Project could be a the management of a Video store, the calculation of mortgages, a dating service or the Payroll for 1000 employees ... 


Object

An object is a piece of software that has properties and functions that can be manipulated. Whew! You're here so, you must be somewhat familiar with the Windows environment. A window is an object. It has properties: size, color, position on the screen, etc. (The purists among you may want to talk about aclass rather than an object but, at this point we just want to keep it simple, and the underlying concept is the same). The window has functions, also calledmethods, that can be manipulated: change the size, move it around, open it and close it. You do not have to write code to resize a window - you just click and drag. But somebody had to write code at some point. Fortunately for us, when they did they put it all in a nice little package and called it a window object. Now, whenever you need a window in your Project you can make a copy of the window object, change its properties for color or size very easily, and paste it where you want it. Then you can use its built-in methods to open it, close it when you want or resize it whenever necessary. When you create an application using objects and combining them to produce results, you are working in an object-oriented environment.


Event-driven

To produce an application in COBOL, a procedural language, you write COBOL source programs, you compile them into machine code and then you run them via a control interface such as JCL. A program can contain 1000's of lines of source code and could run for hours with no human intervention. In fact, in large installations, a jobstream can consist of a dozen programs, all automatically accepting input from the previous program and producing output for the next. The programmer can be blissfully unaware that the program has run unless something catastrophic happens.



In a VB project, the processes that occur have to be associated with events. An event is something that happens - the user clicks on a button, a form is opened, the result of a calculation is too large. The operation is event-drivenbecause everything that executes does so as the result of some kind of event. The role of the programmer is to anticipate the events and to write the code that will be executed when the event occurs. A VB application is interactive in the sense that the user is constantly interacting with the program. The user inputs a Customer Id, the program checks the Id in the database and immediately brings up the customer's file or displays a message that the particular Id is invalid.

Jumping right in!

Project description

We want to create a Scoreboard for a football game (there it is already!) between the Giants and the Redskins. To begin with the simplest task we will only count the touchdowns and display appropriate messages.

Please note: although we will create a complete functional Project with controls and code and so on, the purpose of this exercise is to show what can be done. In the following lessons we will be explaining scripts and the use of controls in a lot more detail. If you study this example you should be able to relate it to what you already know of programming and judge whether this tutorial will be easy or hard for you to do.

Creating the Project

First thing to do is to create a Directory where you will store all your VB Projects. Call it VBApps, for example. Then start VB. The first screen will ask whether you want to open a new project or an existing one - it's obviously a new one and it will be a Standard EXE. Then, maximize all the windows (it's easier to work with - some of the examples in the tutorial had to be reduced for the sake of the presentation). Now, save your project. It will first ask you to save the form - call it Score.frm - and then the Project - call it Scorebrd.vbp. From now on, do File-->Save Project very, very frequently.





Before you start to build-up the form, it will make it easier if you change the color of the form. Otherwise you will be working with grey controls on a grey background. To change the color, just click anywhere on the form, go to the properties window, find the property called BackColor and change it to the standard Window background (teal) or to any color you want in the palette.

In our first example we will need 6 labels and 2 command buttons. Each one of these objects that you put on a Form is called a control. To get a control you go to the Toolbox, click on the control you want, come back to the Form and click and drag the control to the size and position you want. Position the controls somewhat like in the diagram below.


IMPORTANT NOTE: If this is your first experience with VB, don't be afraid to experiment. This is hands-on stuff! Remember that VB is a Microsoft product, therefore it works with the standard Windows interface. All the functions you know from MS-Office work the same way here: Copy, Cut, Paste, (Ctrl)+(Click), (Shift)+(Click), drag the mouse over a group of controls to select them all, etc. The Undo button is a nice one to keep handy - when you modify a control you can always Undo the change - remember this when you get to the part about aligning the controls, making them all the same size and so on. That part can get tricky. If you accidentally end up in the Code window while palying around, go down a few paragraphs and you will see how to get back to the Form. At this point the worst that can happen is that your Form will get all messed up. So what! You can just scrap it and start over again, but you will have learned something.
Now that we have a bunch of controls on the form, we have to jazz them up a bit. We do this by changing the Properties of the controls in the Properties window. Each control has a whole series of properties, most of which we won't need right now. The ones we do need are:
Alignment = how text aligns in the control
BackColor = choose the color of the background
Caption = the text that will appear in the control
Font = choose the font type and size
ForeColor = choose the color of the text (foreground)
As with all Windows applications, you can select multiple controls with (Ctrl)+(Click) and change a property for all of them at once. For example, if all backgrounds are white, select all controls, change ForeColor to white and all of them are modified. Change your form to look like the one below. Note that you do not have to change the Caption for Label4, Label5 and Label6 and that you can't change the color of the buttons. They insist on being what was called in the old days "IBM grey". Don't forget to save your project often as you go along!







If you Run the application at this point, you should see your Form appear, just the way you created it. However if you click on any of the controls, absolutely nothing happens! There areevents that occur; the form opens, a button is clicked, etc. But, there is nothing that tells the form what to do when it sees an event. That is why we have to write code, also called script.
            


To switch between the Code window and the Form window, use the buttons just over the Project Explorer window (diagram on the left).
Once in the Code window, you have the option of seeing all the code for the Project or the code for one event at a time. Use the buttons in the lower left-hand corner (diagram on the right).
To select the object and the event you wish to code, use the two Listboxes at the top of the Code window. The one on the left for the object and the one on the right for the event. Start withGeneral ... Declarations and then Form ... Load, etc.


At this point you might want to download the sample programand study it. In the following lessons we'll add functionality to the exercice and we'll explain what the code means. But for the moment, a good exercice would be to write part of the code and then try to figure out how to improve certain aspects of the program.

You can download the application here: FootScoreboard.zip


Now we can Run it and see something happen. When the Form loads, it will initialize the fields that we specified in the code.

Now code the Command1 button and Run it to see the result.







Lesson 1b



Any program can stand to be improved, even mine! But there's a technique to use when building a bigger and better application - you do it step-by-step.

Improving the application
Assuming that you're a beginner with VB, here's the development technique I recommend for you:

  • write the simplest program that you understand and make it work - even if it doesn't have color or fancy fonts, test it and then save it;
  • make a copy of your previous working program and code one or two improvements in the copy - if you become stuck and can't recover, destroy the copy, go back to the previous version, make a new copy and start again;
  • repeat for every improvement you make, using small steps so that if something does go wrong its easier to identify the source of the problem (if you made 12 corrections in a program and then it doesn't work, how will you know which of the changes is causing the problem?)
   Avoid repeating code!
In our FootScoreboard example, there is one occasion where there are several lines of code repeated.

OK, so it's only a few lines but, in a large program that can happen a lot and it is very time-consuming both to create the code and the to maintain it.





The way to correct that is to take all the code that repeats and put it into a separate procedure. A procedure is identified by the Private Sub ... End Sublines.

Then, whenever you have to execute the code, call the procedure simply by writing its name.



A second improvement
Another thing we usually need in a program is a re-initialize button.

After one loop of the program, in this case one match, we usually want to clear all the data and start over.

For that we'll create a Clear button on the form.




But, we'll notice that what we do with the Clear button is in fact the same thing we do when we load the form in the first place. So, we'll use the procedure technique to simplify the code.



To download the improved sample program and study it, click here: