<< Chapter < Page
  Ti dsp/bios lab   Page 1 / 1
Chapter >> Page >
The module is a lab assignment to help you better understand the very basics of Microsoft Visual Basic delegates.

Introduction

This lab module will help you become familiar with the basics of delegates in Microsoft Visual Basic(V). The exercises are written assuming you are using Visual Basic 2005 and the .NET Framework version 2.0 (or later). Some older versions will work the same, but you may need to figure out some differences. It should work with newer version also.

Module prerequisites

You should complete the Visual Basic Threads and Semaphores lab before this one.

Labratory

Part 1

  • In this part you will make a project with a thread that will try to change a TextBox text without using a delegate method. When the thread tries to change the TextBox text it won't work because the TextBox control is not handled by the thread.
  • Start up Visual Studio and create a new Visual Basic project.
  • On the GUI, put a new TextBox. By default it should have the name TextBox1 .
  • Create a thread called Task1 and start the thread in the Form1_Load method.
  • In the thread method Task1 , assign a string to the TextBox.
  • Run your program and observe what happens. You should get an error when the thread tries to access the TextBox control. Record what the error says.

Part 2

  • In this part we will make a delegate that will allow the thread to change the text in the TextBox.
  • Either start a new project or modify the one from the previous part. What you should have in your project is:
  1. A TextBox on the GUI with the name TextBox1 .
  2. A thread called Task1 that is started in the Form1_Load method.
  • Add commands to define a delegate type and an instance of a delegate. If you want to use the names shown here you can. These statements should be right under the beginning of the Form1 class (right after " Public Class Form1 ").
Delegate Sub DelegateType(ByVal myStr As String) Dim IDel As New DelegateType(AddressOf DelegateMethod)
  • Make a new DelegateMethod method that takes a string as an input and uses it to change the text of the TextBox.
  • In the Task1 method, use the TextBox1 to invoke the delegate method. Have it write the text "Task Text" to the TextBox.
  • Run your program and observe that the text "Task Text" gets written to the TextBox.

Part 3

  • In this part we will make a simple clock. All we will do is continuously get the current time and write it to the TextBox.
  • In this part we will have everything that is in the previous part so you can start where it left off. Your project should have:
  1. A TextBox on the GUI with the name TextBox1 .
  2. A thread that uses the Task1 method that is started in the Form1_Load method.
  3. Commands to define a delegate and an instance of a delegate.
  4. A delegate method that writes the input string to the TextBox.
  • In the thread, we will have it get the current date/time and the write it to the TextBox.
  • Put the following commands that will define objects to get the current date/time.
Dim count As Integer Dim dispDt As DateTimeDim datePatt As String = "M/d/yyyy hh:mm:ss tt" Dim dtString As String
  • In the thread make a continuous while loop that puts the date into the string dtString and then sends that string to the delegate. To get the date use the command:
dispDt = DateTime.Now ' get the time now dtString = dispDt.ToString(datePatt) ' Convert the date to a string
  • In the while loop make the thread sleep for 100 ms so that it is not doing too much processing. It will get the time/date and write it to the TextBox every 100 ms.
  • Run your program and observe that the text displays the date/time and that the seconds change.

Get the best College algebra course in your pocket!





Source:  OpenStax, Ti dsp/bios lab. OpenStax CNX. Sep 03, 2013 Download for free at http://cnx.org/content/col11265/1.8
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ti dsp/bios lab' conversation and receive update notifications?

Ask