LESSON9 - Drive, Directory and fileLBox
LESSON9 - Drive, Directory and fileLBox
Nb:You can also use the MultiSelect property of the file list box to allow multiple file
selection.
The drive, directory, and file list boxes are almost always used together to obtain
a file name. As such, it is important that their operation be synchronized to insure
the displayed information is always consistent.
When the drive selection is changed (drive box Change event), you should
update the directory path. For example, if the drive box is named drvExample and
the directory box is dirExample, use the code:
dirExample.Path = drvExample.Drive
When the directory selection is changed (directory box Change event), you
should update the displayed file names. With a file box named filExample, this
code is:
filExample.Path = dirExample.Path
Once all of the selections have been made and you want the file name, you need
to form a text string that correctly and completely specifies the file identifier. This
string concatenates the drive, directory, and file name information. This should be
an easy task, except for one problem. The problem involves the backslash (\)
character. If you are at the root directory of your drive, the path name ends with a
backslash. If you are not at the root directory, there is no backslash at the end of
the path name and you have to add one before tacking on the file name.
Example code for concatenating the available information into a proper file name
and then loading it into an image box is:
Dim YourFile as String
If Right(filExample.Path,1) = "\" Then
YourFile = filExample.Path + filExample.FileName
Else
YourFile = filExample.Path + "\" + filExample.FileName
End If
imgExample.Picture = LoadPicture(YourFile)
Note we only use properties of the file list box. The drive and directory box
properties are only used to create changes in the file list box via code.
Example 4-2
Image Viewer
Start a new project. In this application, we search our computer's file structure for
graphics files and display the results of our search in an image box.
Image Viewer Application Specifications
Develop an application where the user can search and find graphics
files (*.ico, *.bmp, *.wmf) on his/her computer. Once a file is selected,
print the corresponding file name on the form and display the graphic
file in an image box using the LoadPicture() function
File1:
Name filImage
Pattern *.bmp;*.ico;*.wmf;*gif;*jpg
[type this line with no spaces]
Label1:
Caption [Blank]
BackColor Yellow
BorderStyle 1-Fixed Single
Name lblImage
Label2:
Caption Files:
Label3:
Caption Directories:
Label4:
Caption Drives:
Command1:
Caption &Show Image
Default True
Name cmdShow
Command2:
Cancel True
Caption E&xit
Name cmdExit
Line1:
BorderWidth 3
Shape1:
BackColor Cyan
BackStyle 1-Opaque
FillColor Blue
FillStyle 4-Upward Diagonal
Shape 4-Rounded Rectangle
Shape2:
BackColor White
BackStyle 1-Opaque
Image1:
BorderStyle 1-Fixed Single
Name imgImage
Stretch True
3. Attach the following code to the drvImage_Change procedure.
Private Sub drvImage_Change()
'If drive changes, update directory
dirImage.Path = drvImage.Drive
End Sub
When a new drive is selected, this code forces the directory list box to display
directories on that drive.
4. Attach this code to the dirImage_Change procedure.
Private Sub dirImage_Change()
'If directory changes, update file path
filImage.Path = dirImage.Path
End Sub
Likewise, when a new directory is chosen, we want to see the files on that
directory.
5. Attach this code to the cmdShow_Click event.
Private Sub cmdShow_Click()
'Put image file name together and
'load image into image box
Dim ImageName As String
'Check to see if at root directory
If Right(filImage.Path, 1) = "\" Then
ImageName = filImage.Path + filImage.filename
Else
ImageName = filImage.Path + "\" + filImage.filename
End If
lblImage.Caption = ImageName
imgImage.Picture = LoadPicture(ImageName)
End Sub
This code forms the file name (ImageName) by concatenating the directory path
with the file name. It then displays the complete name and loads the picture into
the image box.
6. Copy the code from the cmdShow_Click procedure and paste it into the
filImage_DblClick procedure. The code is identical because we want to display
the image either by double-clicking on the filename or clicking the command
button once a file is selected. Those of you who know how to call routines in
Visual Basic should note that this duplication of code is unnecessary - we could
simply have the filImage_DblClick procedure call the cmdShow_Click
procedure. We’ll learn more about this next class.
7. Attach this code to the cmdExit_Click procedure.
Private Sub cmdExit_Click()
End
End Sub
8. Save your project. Run and try the application. Find bitmaps, icons, and
metafiles. Notice how the image box Stretch property affects the different
graphics file types. Here’s how the form should look when displaying one
example metafile: