Small Basic >
Curriculum > Online
> Lesson 2.5: Clock, Desktop, and Dictionary Objects
In this lesson, you will learn how to:
As you program, you may encounter situations where you need to calculate time or perform certain actions based on the date and time.
By using the Clock object, you can include this logic in your programs and write programs that use the system clock. This object’s properties include
Date, Hour, Time, and
Let’s explore some properties of the Clock object…
You can get the current system date, day of the week, and time by using the
Date property, the WeekDay property, and the Time property, respectively.
Let’s look at an example that displays this information in the graphics window…
date = Clock.Date
weekday = Clock.WeekDay
time = Clock.Time
display = ("Current Date: " + date + "," + "Current Weekday: " +
weekday + "," + " Current Time: " + time)
GraphicsWindow.DrawBoundText(40, 40, GraphicsWindow.Width, display)
This is the output you will see:
In this example, we have used the DrawBoundText operation of the
GraphicsWindow object. This operation displays a line of text at a location that you indicate by specifying an x-coordinate and a y-coordinate. The text for this example starts at the location that we indicated by specifying an x-coordinate
of 40 and and a y-coordinate of 40.
You can use the Year property of the Clock object to get the current system year.
Let’s take an example that uses this property to calculate the user’s age…
TextWindow.WriteLine("Enter the year of your birth:")
birthyear = TextWindow.Read()
age = Clock.Year - birthyear
TextWindow.WriteLine("Your age is " + age + ".")
Clickon the toolbar.
You can use the Month and the Day property of the
Clock object to get the current month and current day, respectively.
How about writing a program that greets you on your birthday?
TextWindow.Write("Enter the month of your birthday:")
birthdaymonth = TextWindow.ReadNumber()
TextWindow.Write("Enter the date of your birthday:")
Birthdaydate = TextWindow.ReadNumber()
If (birthdaymonth = Clock.month And birthdaydate =Clock.Day) Then
TextWindow.WriteLine("Hey! Wish You A Very Happy Birthday!")
In this example, the text window displays birthday wishes only if user specifies the same month and day as the current system month and day.
You can get the current hour, minute, and second of the day by using the
Hour, Minute, and Second properties of the
Let’s combine these properties to display a digital clock in the graphics window…
GraphicsWindow.FontSize = 26
GraphicsWindow.BrushColor = "Green"
If Clock.Hour >= 12 Then
status = "PM"
status = "AM"
CurrentTime = Clock.Hour + " : " + Clock.Minute + " : " + Clock.Second + " " + status
GraphicsWindow.DrawBoundText(100, 100, 400, "Time: " + CurrentTime)
In this example, we used the Hour, Minute, and
Second properties of the Clock object to display a digital clock. We defined the clock status as PM if the current system hour is greater than or equal to 12; otherwise, the clock status is AM. To make the digital clock run
continuously, we have used the Goto statement to jump to up: after 1000 milliseconds.
You can set a desktop wallpaper of your choice by using the the SetWallPaper operation of the
You can also retrieve the size of your current desktop and use the information to specify the location of objects on the screen.
When you use the SetWallPaper operation, you can choose your wallpaper image from any local file, network file, or Internet URL.
ImagePath = Program.Directory + "\Blue.jpg"
You can get the screen height and width of the primary desktop by using the
Height and Width properties, respectively, of the
Let’s apply these properties to the graphics window.
GraphicsWindow.Height = 400
GraphicsWindow.Width = 500
GraphicsWindow.Top = (Desktop.Height - GraphicsWindow.Height) / 2
GraphicsWindow.Left = (Desktop.Width - GraphicsWindow.Width) / 2
The Height and Width properties of the
Desktop object are very useful when you want to display a text or graphics window in the same position relative to the top and left side of the desktop at various resolutions. In this example, the graphics window is 400 pixels high and 500 pixels wide.
To display this window in the center of the desktop, subtract the window’s height and width from the height and width of the primary desktop, and then divide the results by 2.
The Dictionary object is a useful resource that you can include as part of your Small Basic program.
You can use this object to retrieve the meaning of a specified word from the online Dictionary service.
The Dictionary object has two operations—GetDefinition and
You must be connected to the Internet to use the Dictionary object in Small Basic.
You can obtain the meaning of an English word by using the GetDefinition operation. For a definition in French, use the
For example, let’s use the GetDefinition operation to find the meaning of “magnanimous.”
txt = "Magnanimous"
GraphicsWindow.FontName = "verdana"
GraphicsWindow.FontSize = 24
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.DrawText(10, 10, txt)
defn = Dictionary.GetDefinition(txt)
GraphicsWindow.FontSize = 12
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.DrawText(10, 60, defn)
Congratulations! Now you know how to:
Create a program to set an alarm that plays a sound of a ringing bell and changes the wallpaper of your desktop.
To see the answers to these questions, go to the
Answer Key page.
Can't get this solution to work either Ed
TeaWatch, did you ask in the forums? Do you have a link to the thread? I'd be interested in updating this page and the deck to make it clearer. Thanks!