File
Transcription
File
Computer Science 110 NAME: _________________________ NOTES: Graphics & Animation (module 16) Adding Graphics to Your Applications Colours and graphics are used to make applications easier to understand and more interesting. Images can be simple graphics like circles, squares and ovals or they can be much more complex. In this module, you will: Use a picture box object to place images and draw graphics on your forms. Use the timer object to include simple animation in applications. Understanding Color Each tiny dot on your monitor is actually composed of three smaller dots—one red, one green and one blue. Red, Green and Blue (RGB) values are used to define the colors you see on your monitor. To display a color, you must vary the brightness of each of the three dots. For example, the color purple is displayed when the red and blue dots shine brightly and the green dot is dim. To display white, all the dots must be bright and to display black, all the dots must be turned off. The programmer can set the colour by using RGB values or by using Visual Basic color constants. Using the RGB values allows the programmer to display more color choices. Visual Basic has an RGB built-in function. This function can be used at run time, in an assignment statement, to change a color property. The following is an example: Private Sub UserForm_Initialize() Me.BackColor = RGB(255,0,0) End Sub In this statement, red, green and blue are integer values. The values may range between zero (0) and 255 to represent the brightness of the red, green and blue dots, which make up the colour. The above statement changes the background color of a form to red. Visual Basic also has predefined constants specifying RGB number values of some of the more standard colors. You can use these values to set the color of an object instead of using the RGB values. The following is a list of Visual Basic color constants: vbBlack vbBlue vbCyan vbGreen vbMagenta vbRed vbWhite vbYellow The assignment statement below changes the background color of a form to blue when the form is loaded: Private Sub Form_Load() Me.BackColor = vbBlue End Sub The BackColor property changes the background color of an object such as a form. Working with Color at Design Time No doubt you will agree that color enhances an interface and makes it more interesting. Many of the objects you add to the interface have color properties. An object's color is changed at design time using the BackColor and ForeColor properties. BackColor changes the background color of an object. To use BackColor: Double-click the BackColor property in the Properties window and select the Palette tab to display the available colors. ForeColor changes the color of the text displayed on an object. To use ForeColor: Double-click the ForeColor property in the Properties window and select the Palette tab to display the available colors. Note: Command buttons do not have a ForeColor property. Working with Image Control To place image, choose the Image control. An image object can only contain an image. The image object does not allow you to edit the contents of the picture. A picture box can display images in the following formats: BMP, CUR, GIF, JPG, WMF and ICO. The following table shows the properties that can be set for a Image Control: Description Property Name This identifies the object. Good style uses the prefix img in front of the name. Picture Used to display a dialogue box for selecting the image to display in the picture area BorderStyle 0 -fmBorderStyleNone or 1 -frmBorderStyleSingle AutoSize This can be either True or False. When it is set to True, the image is resized to the same size as the graphic. Visible Can be set to True or False to display or hide the image Visual Basic has a built-in function called LoadPicture. This function allows the programmer to change the picture at run time. This is done with an assignment statement using the following syntax: The image that is used in the image control can be from a file of images that you have stored on your computer. Moving Images A picture box (just like a form) can serve as a container for shapes and graphics. The picture box can be positioned within the form container and shapes can be positioned within their picture box container. The properties in the table below are used to position both the picture box on the form and to position a shape, such as a circle, inside the picture box itself. To position the picture box on the form, select the picture box and adjust the properties as required. To position a shape inside the picture box, select the shape and adjust the properties as required. Property Description Left Changes the distance between the left edge of the object and the left edge of its container Top Changes the distance between the top edge of the object and the top edge of its container Width Changes the width of the object Height Changes the height of the object The distance an object is moved is expressed in units called twips. 567 twips = 1 centimetre The Move method is used at run time to move a image object to a new location. The syntax for the Move method is as follows: In the example: imgHappyFace.Move imgHappyFace.Left-20 the image object called HappyFace is moved 20 twips to the left of its current position. That means if the image is now at 100 twips from the left edge of its container, it will be moved -20 twips and will be repositioned 80 twips from the left edge of its container. DoEvents DoEvents allows the operating system to process events while a VBA program is running. Some instances in which DoEvents may be useful include the following: Hardware I/O Delay Loops Operating System Calls DDE Deadlocking Yields execution so that the operating system can process other events. In this course we will only use DoEvent to allow use to do animation. Creating Timing Delays Sometimes you may want sections of code to run at an interval. In Excel VBA there is not a timer object like there was in Visual Basic 6.0. However, you can recreate the timer in the code window. For example, many word processors contain code that executes every ten minutes to automatically save your document. In Excel VBA you can use the timer code to simulate an animation.