19 03 MWSTEVJEJ3CNTDCKHFH3T243QYBOIM7WDRBLE4Q




Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6!:Database Basics
function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) { var end = document.cookie.indexOf (";", j); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(j, end)); } i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } var m1=''; var gifstr=GetCookie("UsrType"); if((gifstr!=0 ) && (gifstr!=null)) { m2=gifstr; } document.write(m1+m2+m3);            Keyword Title Author ISBN Publisher Imprint Brief Full  Advanced      Search  Search Tips Please Select ----------- Components Content Mgt Certification Databases Enterprise Mgt Fun/Games Groupware Hardware IBM Redbooks Intranet Dev Middleware Multimedia Networks OS Prod Apps Programming Security UI Web Services Webmaster Y2K ----------- New Titles ----------- Free Archive To access the contents, click the chapter and section titles. Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6! (Publisher: The Coriolis Group) Author(s): Peter G. Aitken ISBN: 1576102815 Publication Date: 08/01/98 function isIE4() { return( navigator.appName.indexOf("Microsoft") != -1 && (navigator.appVersion.charAt(0)=='4') ); } function bookMarkit() { var url="http://www.itknowledge.com/PSUser/EWBookMarks.html?url="+window.location+"&isbn=0"; parent.location.href=url; //var win = window.open(url,"myitk"); //if(!isIE4()) // win.focus(); } Search this book:  














Previous
Table of Contents
Next




You can also specify that a Basic module be executed first when the program runs. To do this, select Sub Main from the Startup Object list and then put the code you want executed when the program starts in a procedure named Main in the Basic module. This technique is not commonly used, but it can be valuable when initialization code in the Basic module must be executed before any forms are loaded. Once the initialization is complete, code in the Basic module displays the program’s first form.
Chameleon Command Buttons
Let’s take a few minutes to think about the program’s eight Command Buttons. Four of them navigate among the records: forward or back one record, and to the first or last record. What other commands might the user need to enter? An Exit button is necessary, of course, and a List button for displaying the alphabetical list. These two buttons will be available at all times. This brings our total, so far, up to six buttons, but there are still more commands to consider. The program will always be in one of two states: browsing and editing records, or entering a new record (indicated by the EnteringNew Boolean variable). If the user is entering a new record, Save and Cancel commands are needed. If the program is in the browsing state, New (to begin entering a new record) and Delete (to delete the current record) commands are needed. This adds up to four commands for only two remaining Command Buttons. Do we need to add two more buttons?
No. We can use a programming trick that allows a single Command Button to serve two or more purposes. By changing the button’s Caption property, and by using a flag variable to determine what the program does when the button is clicked, two of the Command Buttons can serve double duty. Here’s how it works:

•  When the program starts, the buttons will display the New and Delete captions that we assigned during form design. The EnteringNew flag variable is set to False. The button’s Click event procedure tests the value of EnteringNew and directs execution accordingly.
•  If the user clicks on the New button, EnteringNew is set to True, and the button captions are changed to Save and Cancel. Code in the Click event procedure can now direct execution differently, because EnteringNew has a different value.
•  When the user clicks on Save or Cancel, the process is reversed: EnteringNew is set to False again, and the button captions are set back to New and Delete.

Some of this action goes on in the Click event procedure for the array of Command Buttons. You’ll find this code in Listing 19.4.
Listing 19.4 The Command Buttons’ Click event procedure.


Private Sub cmdAction_Click(Index As Integer)

‘ For the control array of four “action” buttons.

Dim Reply As Integer

If EnteringNew Then ‘ If we’re entering a new record, the first two
Select Case Index ‘ buttons have different meanings.
Case 0 ‘ Save.
Call SaveCurrentRecord
EnteringNew = False
cmdAction(0).Caption = “New”
cmdAction(1).Caption = “Delete”
Case 1 ‘ Cancel.
CurrentRecord = OldRecord
EnteringNew = False
cmdAction(0).Caption = “New”
cmdAction(1).Caption = “Delete”
Call DisplayRecord(CurrentRecord)
Case 2 ‘ List.
frmList.Show
Case 3 ‘ Exit.
Call ByeBye
End Select
Else ‘ If we're not entering a record.
Select Case Index
Case 0 ‘ New.
EnteringNew = True
Call AddNewAddress
Case 1 ‘ Delete.
Reply = MsgBox(“Delete this address?”, vbYesNo + vbQuestion)
If Reply = vbYes Then
txtFName.Text = “”
txtLName.Text = “”
txtAddress.Text = “”
txtCity.Text = “”
txtState.Text = “”
txtZip.Text = “”
Call SaveCurrentRecord
End If
Case 2 ‘ List.
frmList.Show
Case 3 ‘ Exit.
Call ByeBye
End Select
End If

End Sub


Two items in Listing 19.4 require special mention:


•  If the user selects the List button, this line of code is executed:


frmList.Show


The first part, frmList, is the name of the form where the records will be listed. The Show method does just what it implies: Shows the form. What happens next is determined by code in that form module, which we will deal with soon.
•  If the Exit button is selected, the program calls the ByeBye procedure, closing the file and using the Unload statement to unload the program’s forms (see Listing 19.5).

Listing 19.5 The ByeBye procedure ends the program.


Public Sub ByeBye()

‘ Close the data file and end the program.

Close #FileNum
Unload frmAddress
Unload frmList

End Sub




Table 19.1 Possible values for UnloadMode.



Constant
Value
Meaning

vbFormControlMenu
0
The user chose the Close command from the form’s Control menu.

vbFormCode
1
The Unload statement is invoked from code.

vbAppWindows
2
The current Windows session is ending.

vbAppTaskManager
3
The Windows Task Manager is closing the application.

vbFormMDIForm
4
An MDI child form is closing, because the MDI form is closing.



Why not execute the End statement to end the program? We would like to let the user confirm, just in case the Exit button was clicked by accident. End does not permit this, because it terminates the program immediately. In contrast, unloading a form triggers its QueryUnload event procedure. Code in this procedure can query the user to confirm the desire to end the program. The skeleton of this procedure is shown here:


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

End Sub


The UnloadMode argument specifies how the Unload event was triggered. Table 19.1 shows the possible values.
In our case, the UnloadMode argument will have the value one. Because we don’t really care why the form is being unloaded, however, we will just ignore this argument. The Cancel argument, on the other hand, is central to the purpose of this procedure. If code in the procedure sets Cancel to any nonzero value, the Unload event is canceled and the program does not terminate. If Cancel is left at its initial zero value, the program terminates. In our program, we’ll display a message box with Yes and No buttons asking if the user really wants to exit, then set the value of Cancel accordingly. This procedure is shown in Listing 19.6.
Listing 19.6 The QueryUnload event procedure.


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

‘ If the user tries to exit, confirm.

Dim Reply As Integer

Reply = MsgBox(“Exit - are you sure?”, vbYesNo + vbQuestion)

If Reply = vbYes Then
Call ByeBye
Else
Cancel = True ‘ Setting Cancel to a non-zero value
End If ‘ cancels the exit.

End Sub






Previous
Table of Contents
Next






Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.



Wyszukiwarka

Podobne podstrony:
wyklad w dniu 19 03 2010
19 03 11 A
19 03 2010 Wibracja związku 7
czapelski SzNP 19 03
Geo fiz wykład 19 03 2013
KPC Wykład (20) 19 03 2013
19 03 Umowa
19 03 11 R
03 (19)
03 (19)

więcej podobnych podstron