|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Visual Basic Projects WritePrivateProfileString: Creating a Quiz Application Step 3: Building the Quiz Topic Selection Form |
|
Posted: | Tuesday August 24, 1999 |
Updated: | Monday December 26, 2011 |
Applies to: | VB4-32, VB5, VB6, and VB3, VB4-16 with appropriate declarations |
Developed with: | VB6, Windows NT4 |
OS restrictions: | None |
Author: | VBnet - Randy Birch |
Other project pages: | Step 1: Introduction and BAS
Module Step 2: Building the 'TopScores' Form Step 3: Building the Quiz Topic Selection Form Step 4: Building the Main Quiz Form Form Illustration Layouts Downloadable KidzQuiz INI file |
Related: |
WritePrivateProfileString: INI Files - The Basics WritePrivateProfileString: INI Files - Saving Entire Sections |
Prerequisites |
Steps 1 and 2 completed. |
|
This puppy is responsible for reading all the sections from the INI file, and populating the list with the available quiz topics. As coded, it looks for the key word "Questions" in the Topic description, thereby allowing this same INI file to be used for other information in different sections, such as last user, highest score, etc etc. |
Form Code: frmSelect |
Add a new form to the project and name it frmSelect. This form has a list (List1), a Label, and two command buttons (cmd(0) and cmd(1) ). Add the following to this form: |
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'index of the OK command button Const btnOK = 0 Private Sub cmd_Click(Index As Integer) 'Regardless of the button, just unload. 'If a selection was made it was set 'in the list click event. Unload Me End Sub Private Sub Form_Load() Dim r As Long Dim pos As Long Dim start As Long Dim ret As String Dim sSection As String 'centre this form on the screen Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2 'Get the list of sections form the file. 'Below, the string is parsed to remove each 'section for the list, but it only adds those 'sections with the word "Questions" in it. This 'will allow this same INI file to be used for 'other purposes if desired (such as saving user settings). ret = Space$(2048) r = GetPrivateProfileString(vbNullString, _ vbNullString, _ "", _ ret, _ Len(ret), _ sIniQFile) 'if something returned (r is > 0) If r Then 'trim.. ret = Left$(ret, r) 'set the Instr() start pos.. start = 1 '..and get each question set Do Until pos >= Len(ret) pos = InStr(start, ret, Chr$(0)) If pos Then sSection = Mid$(ret, start, pos - 1) If InStr(sSection, "Questions") Then List1.AddItem sSection End If 'reset the start position and continue start = pos + 1 End If 'If pos ... Loop End If 'If r ... 'disable the OK button until a selection is made cmd(btnOK).Enabled = False End Sub Private Sub List1_Click() 'enable the OK button when a selection is made cmd(btnOK).Enabled = List1.ListIndex > -1 'and assign the selection to the ini 'filename public variable iniQuizSection = List1.List(List1.ListIndex) End Sub Private Sub List1_DblClick() 'invoke the OK button cmd(btnOK).Value = True End Sub |
Comments |
Save this file and head for the home stretch ....Step 4 - Building the Main Quiz Form. (And still don't bother to run the app yet) |
|
|
|
|||||
|
|||||
|
|||||
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |