8_2_EventDrivenProgrammingGUIDesign201401

advertisement
Not in Text
CP212
Winter 2012
No VBA Required
“Regular” Programming
• traditional programming is sequential in nature
o one command executed after another
o even with looping and conditional statements
o program has a “flow” to it
Sub myProgram()
Dim var As String ' Do this
result = Msgbox ("Welcome") ' Then do this
If result = vbYes Then ' check this
Msgbox "Great!" ' Either do this...
Else
MsgBox "Not good!" ' or this
End Sub
Event-Driven Programming
•modern, graphical oriented programs are driven
by events
•a program will be running in memory, waiting for
•
the user to do something
oor possibly waiting for the system to do
something
things the user does (or the system) are called
events
A Typical Event Driven Program
Events and Event Handlers
•typical events would include clicking a button,
moving the mouse, or typing in text
•when an event happens, the code that responds
to that event is executed
othis code is called an “event handler”
• the event is said to have fired or been triggered
Graphical User Interfaces
•in the early days programs were written to run
from command prompts such as DOS or Unix
othe only “event” was a user typing something
and pressing enter
• creating a program with a graphical user interface (GUI pronounced “gooey”) uses event-driven programming
• windows, buttons, forms, icons, desktop, dialog boxes
are standard terms in graphical user interface design
• user interface design is an art and a science
• google "user interface design" "human-computer
interaction" "hci" "human factors" or other related topics
GUI Controls
• the primary layer for a GUI is a window or a form
• as a programmer, you add controls (also called
widgets) to the form
GUI Controls
o Java has a complete library of controls called the Swing
library
 makes writing GUIs quick and easy
 well...easier than doing it by hand!
o VB and VBA (and Microsoft Visual [Anything]) allows for
drag-and-drop GUI design
o simply make a form, add some controls and you have a
very fast prototype
 a (usually non-functioning) sample of your application
Simple Events
•you can then add code to the event handlers
for each widget
•some code you write will never be executed!
•try it out: drop a control on a form
odouble-click the control to display the default
event handler
• click the drop-down list on the right side to see the
events you can program for the current object
• the list on the left allows you to choose from the
objects on the form
Basic Events
• Userform events:
•
•
o Initialize (default), Activate, Click, DblClick, KeyPress,
Resize
Button events:
o Click (default), Enter, MouseUp, MouseDown, Exit (will fire
when the form closes)
TextBox events:
o Change (default), AfterUpdate, BeforeUpdate
Other Events
• Application, Workbook, Worksheets and Charts can all have
events
• Workbook_Open: runs code as soon as file is opened, not
•
•
•
•
•
recommended when distributing to the public, most apps
have macros disabled anyway.
Chart_Activate: fires when a chart is activated (clicked on)
Worksheet_Change: cells on the worksheet are changed
Worksheet_Activate: a worksheet is activated
Worksheet_Deactivate: a worksheet is deactivated
Experiment in the VBE to find other events
Design Options
• developing GUI software can start with simple sketches on a
napkin
• software mockups can be created in a graphics program like
•
Adobe Photoshop
o nice to look at but no interaction
other software is availble to help design the look of the
software
iPhone Design Template (Photoshop)
Layered, to
make
changing
layouts easy.
Rapid Prototyping
• one of the benefits of VB / VBA
• quickly and easily create a mockup of your software
•
•
•
o no code required!
can let users see it and play with it
o can add basic message boxes to make it interactive
allows users to work with the product and see what
works and doesn't work
can easily make changes based on their feedback
UX - User Experience
• UX - the intersection of Art, Science and Craftsmanship
• The subjective experience a user has when performing
a task while using your software (make them happy, not
angry)
References
•Jakob Nielsen: A User Design Specialist
ohttp://www.useit.com/
• User Interface Design Tips, Techniques and Principles
ohttp://www.ambysoft.com/essays/userInterfaceDesign.html
• Excel 2007 Power Programming with VBA by John
Walkenbach (now in an Excel 2010 version)
• Mockup Screens - $99 software! (video)
• Free GUI design add-on for
Firefox: http://www.evolus.vn/pencil/
Download