dynamictoolbar.pdf

Upload: michelle-dunn

Post on 01-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 DynamicToolbar.pdf

    1/20

    Dynamic Toolbar

    © 2012 Craig Hatmaker

    BBeeyyoonndd EExxcceell

    PROJECTS

    DYNAMICTOOLBAR

  • 8/9/2019 DynamicToolbar.pdf

    2/20

    Dynamic Toolbar

    © 2012 Craig Hatmaker

    BBeeyyoonndd EExxcceell

  • 8/9/2019 DynamicToolbar.pdf

    3/20

    Dynamic Toolbar

    © 2013 Craig Hatmaker

    BBeeyyoonndd EExxcceellTable of Contents

    Why Read This? .................................................................................................................................................................................... 1

    Which is best for me? ....................................................................................................................................................................... 1

    Installing the Demo .............................................................................................................................................................................. 2

    Dynamic Toolbar Introductory Video ............................................................................................................................................ 2

    Requirements ................................................................................................................................................................................... 2

    Installing ........................................................................................................................................................................................... 2

    Running ............................................................................................................................................................................................ 2

    Adding Dynamic Toolbar to Workbooks ............................................................................................................................................... 3

    Configuring Dynamic Toolbar ............................................................................................................................................................... 4

    TDT – Toolbar Definition Table ..................................................................................................................................................... 5

    Coding .................................................................................................................................................................................................. 7Invoking Dynamic Toolbar with the Add-In ....................................................................................................................................... 7

    Invoking Dynamic Toolbar without the Add-in ................................ .................................... .................................... .......................... 8

    Coding “Callbacks” ........................................................................................................................................................................... 9

    Examples: ..................................................................................................................................................................................... 9

    Reading and Setting Control Values .................................... ..................................... .................................... ................................... 10

    Creating Icons..................................................................................................................................................................................... 11

    Technical Documentation .................................... ..................................... .................................... ..................................... ................. 16

    Introduction ................................................................................................................................................................................... 16

    Components ................................................................................................................................................................................... 16

    Forms ......................................................................................................................................................................................... 16

    Modules ..................................................................................................................................................................................... 16

    Classes (Event Handlers) ............................................................................................................................................................. 16

  • 8/9/2019 DynamicToolbar.pdf

    4/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 1

    BBeeyyoonndd EExxcceellWhy Read This?

    Beginners

    Use this add-in to easily createRibbon-like interfaces for XL workbooks.

    DevelopersLearn about dynamically created

    UserForms, Controls, Events, and Classes.

    What is the Dynamic Toolbar?When we need an easy and elegant

    way for users to access macros/routines,we have a few options:

    1) Paste Buttons on WorksheetsFrom Developer tab find Controls

    group and use Insert to paste a controlsto the worksheet, add text, set someproperties and assign a macro. It’s easybut takes up worksheet space and limitsour user interface to one worksheet orwe must replicate all controls to otherworksheets. It looks unprofessional.

    2) The Office Custom UI Editor

    This free standalone applicationmodifies any MS Office Ribbon. It usesexisting MS Office icons. It looks veryprofessional but requires ribbonconfiguration using XML in a separateapplication. We cannot use it to modifythe Ribbon from within XL.

    3) AJP’s RibbonX Visual Designer Andy Pope’s add -in is free and

    provides a graphical editor. It is awelcome step up from editing XMLdirectly.

    4) Ribbon Commander Spreadsheet1’s add -in is free for trial

    use. It does everything The OfficeCustom UI Editor does with VBA insteadof XML and from within XL so ourinterface can change while our XL appsare running.

    5) Dynamic Toolbar

    Dynamic Toolbar adds acustomizable floating Ribbon-likeinterface for XL applications likePapaGantt ’s and KitchenDesign’s toolbarsshown above. Dynamic Toolbar is by farthe easiest to learn and use because weconfigure it using normal Excel tablesinstead of XML or VBA; and because itrequires only a handful of properties. Italso shares Ribbon Commander ’s abilityto change the toolbar while our app isrunning.

    Dynamic Toolbar cannot do all theMS Office Ribbon does, but it doesenough; is instantly recognizable so usersknow how to use it; and can beassembled in a fraction of the time andeffort. It also happens to be a great wayto learn about adding, placing andmanipulating all kinds of controls on aUserForm through VBA.

    Which is best for me?1. I need “quick and easy”: Dynamic Toolbar 2. My user interfaces are very sophisticated demanding a wide variety of controls

    – or – I must preserve as much screen real estate as possible: I prefer a graphical tool: AJP’s RibbonX Visual Designer I prefer to work in XML: The Office Custom UI Editor I prefer to work in VBA: Ribbon Commander

    3. I need tab layouts to change while my application is running And point #2 applies: Ribbon Commander Point #2 does not apply: Dynamic Toolbar or Ribbon Commander

    http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://www.andypope.info/vba/ribboneditor.htmhttp://www.andypope.info/vba/ribboneditor.htmhttp://www.ribboncommander.com/http://www.ribboncommander.com/http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttps://sites.google.com/site/beyondexcel/project-updates/papagantt-thebigdaddyofxlganttchartshttps://sites.google.com/site/beyondexcel/project-updates/papagantt-thebigdaddyofxlganttchartshttp://www.ribboncommander.com/http://www.ribboncommander.com/http://www.andypope.info/vba/ribboneditor.htmhttp://www.andypope.info/vba/ribboneditor.htmhttp://www.andypope.info/vba/ribboneditor.htmhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://www.ribboncommander.com/http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://www.andypope.info/vba/ribboneditor.htmhttp://www.ribboncommander.com/https://sites.google.com/site/beyondexcel/project-updates/papagantt-thebigdaddyofxlganttchartshttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspxhttp://www.ribboncommander.com/http://www.andypope.info/vba/ribboneditor.htmhttp://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspx

  • 8/9/2019 DynamicToolbar.pdf

    5/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 2

    BBeeyyoonndd EExxcceellInstalling the Demo

    Dynamic Toolbar Introductory Video

    http://youtu.be/hNuiTlLmGWE

    RequirementsThis demo requires MS Excel 2007®

    or later. VBA (macros) must be enabled.

    InstallingIMPORTANT! Follow these steps.

    Don’t skip any.

    1. Download DynamicToolbar.Zip

    2. Open your Downloads folder, NOTthe zip file.

    3. Right click DynamicToolBar.Zip andselect Extract All .

    4. Make sure Show extracted files whencomplete is checked.

    5. Make note of the extracted folder’spath.

    Running1. Open the extracted folder2. Double click AddInDemo.xls 3. If Protected View displays click

    Enable Editing .

    4. If Security Warning displays clickEnable Content .

    Select a row or rows in any table anduse SHIFT-CTRL-D to display the Toolbardefined by the AddIn’s Toolbar DefinitionTable (TDT).

    DynamicToolbar .Zip’s URL: https://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolbar/DynamicToolbar.zip

    Dynamic Toolbar

    http://youtu.be/hNuiTlLmGWEhttp://youtu.be/hNuiTlLmGWEhttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolBar/DynamicToolBar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolBar/DynamicToolBar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolBar/DynamicToolBar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolbar/DynamicToolbar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolbar/DynamicToolbar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolbar/DynamicToolbar.ziphttps://dl.dropboxusercontent.com/u/13737137/Projects/DynamicToolBar/DynamicToolBar.ziphttp://youtu.be/hNuiTlLmGWE

  • 8/9/2019 DynamicToolbar.pdf

    6/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 3

    BBeeyyoonndd EExxcceellAdding Dynamic Toolbar to Workbooks

    Play the video first to get an overview of Dynamic Toolbar . Then play with AddInDemo.xls to get familiar with it . Next, read

    Configuring Dynamic Toolbar to see how simple it is to customize for your project. Lastly, add it to your projects by following thesesimple steps:

    1. Copy TDT from AddInDemo.xls to your project (or create it).Reference: TDT – Toolbar Definition Table

    2. Modify the TDT entries to define your toolbar ’s controls Reference: Configuring Dynamic Toolbar

    3. Create or copy icons into your project’s directory (if using Button or Command control types).Reference: Creating Icons

    4. Add the Dynamic Toolbar add-in, OR copy the three Dynamic Toolbar modules to your project and code to display theDynamic Toolbar when your workbook opens and/or when the user presses CTRL-T Reference: Invoking Dynamic Toolbar with the Add-In Or Invoking Dynamic Toolbar without the Add-in

    5. Record or write macros/routines for each control to run and name them exactly as your entered in TDT’s Call Back column

    6. Make sure the routines have the appropriate parameters for the control type.Reference: Coding “Callbacks”

    When these six steps are completed, Dynamic Toolbar is ready for your project.

    http://localhost/var/www/apps/conversion/tmp/scratch_1/Callbacks#_Coding_http://localhost/var/www/apps/conversion/tmp/scratch_1/Callbacks#_Coding_http://localhost/var/www/apps/conversion/tmp/scratch_1/Callbacks#_Coding_

  • 8/9/2019 DynamicToolbar.pdf

    7/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 4

    BBeeyyoonndd EExxcceell

    DropBox CheckBoxButton

    GroupTextBox

    Tab

    Configuring Dynamic Toolbar

    Configuring Dynamic Toolbar involves making entries in an XL tablethat I call the TDT (Toolbar DefinitionTable). Below is the TDT used to createthe above Dynamic Toolbar .

    We can name this table anything wewant but it must contain the sevencolumns shown. Each table row defines acontrol. The first row defines the ProjectName TextBox and includes the Tab and

    Group names, the Control type, theTextBox’s Caption and initial Setting .

    That’s it! Just a handful of entriesadd a textbox to a toolbar.

    Tab Group Control Caption Call Back Values SettingPapaGantt Identification TextBox Project Name ProjectPapaGantt Identification TextBox Task ID Prefix 1PapaGantt Database But ton Impor t Pro ject modGant t. ImpPrj Icons\ Import48 .g if

    PapaGantt Database But ton Expor t Pro ject modGant t.ExpPrj Icons\Export48 .g ifPapaGantt Database But ton Remove Project modGant t.DrpPrj Icons\Remove48.g if

    PapaGantt Act ions But ton Clear Task Table modGant t.Cl rTbl Icons \Clear48 .g ifPapaGantt Actions Button Increase Task Indent modGantt.Indent Icons\Indent48.gifPapaGantt Actions Button Decrease Task Indent modGantt.Outdent Icons\Outdent48.gifP apa Ga nt t A cti on s Bu tto n C re ate W BS mo dG an tt. Cr tW BS I co ns \WB S4 8. gifPapaGantt Act ions But ton Recalc Durat ions modGant t.ClcTsk Icons \Recalc48.gi fPapaGantt Actions Button Draw/ Redraw Gantt modGantt.CrtCht Icons\Draw48.gifP ap aG an tt A ct io ns B ut to n P ri nt G an tt m od Ga nt t. Pr tC ht I co ns \P ri nt 48 .g ifPapaGantt Settings DropDown Level Display modGantt.ChgLvl *All,0,1,2,3,4,5,6,7,8,9 *AllPapaGantt Set tings DropDown Interva l modGant t.ChgInt Years ,Quarters,Months ,Weeks ,Days,Hours,30 ,15,5,1 WeeksPapaGantt Options CheckBox Dependency Lines modGantt.DspLin TRUEPapaGantt Options CheckBox Cursor Control modGantt.CsrCtl TRUEPapaGantt Options CheckBox Show Input Messages modGantt.DspIM TRUEPapaGantt About Button About modGantt.DspAbt Icons\About48.gifPapaGantt About Button Guide modGantt.DspPDF Icons\Acrobat48.gif

    P apa Ga nt t A bou t Bu tto n B ey ond E xc el mo dG an tt. Ds pB XL I co ns \BX L4 8. gif

    TDTToolbar Definition Table - This defines what controls are included in the Dynamic Toolbar

  • 8/9/2019 DynamicToolbar.pdf

    8/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 5

    BBeeyyoonndd EExxcceellTDT – Toolbar Definition Table

    The TDT has only seven columns; which means it takes no more, and sometimes fewer than seven entries to define a Toolbarcontrol. Here is what each column is:

    Column/Field DescriptionTab This determines which Groups and Controls display in Dynamic Toolbar . Unlike MS

    Office’s Ribbon , Dynamic Toolbar currently displays only one tab at a time, but wecan define multiple tabs in the same TDT and change which tab to display inDynamic Toolbar at any time.

    ATTENTION ENTERPRISING DEVELOPERS!Try adding a MultiPage control to Dynamic ToolBar to enable multiple tabs.

    Group This determines which Controls appear in a Group . Grouping controls can add orderto Dynamic Toolbar and improve its appearance. Group captions appears at theirbottom.

    Control Dynamic Toolbar only recognizes the most common control types:

    Button This is a large icon with its caption underneath. Usebutton’s to run macros/routines requiring noparameters.

    Command This is a small icon with its caption to theright. Use command buttons when small icons are good enoughor desired for aesthetics.

    DropBox This is a dropdown list and caption to the left. UseDropBoxes to select from a list of options.

    List values are entered in the Values field.

    CheckBox This displays a check box with its caption tothe right. Use CheckBoxes to turn features on and off.

    TextBox Use text boxes for entering names, captions, or other free formtext or properties.

    ATTENTION ENTERPRISING DEVELOPERS!Try adding all Ribbon controls to Dynamic ToolBar .

    Caption All controls have captions. Enter one, two, or three words to explain what thecontrol does.

    Call Back This is a Control ’s assigned macro/routine.

    NOTE! If a routine comes from a workbook other than the host workbook, enterthe routine’s fully qualified name. Example:

    ‘MyWorkbook.xls’!MyModule.MyRout ine

  • 8/9/2019 DynamicToolbar.pdf

    9/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 6

    BBeeyyoonndd EExxcceellColumn/Field DescriptionValues This column/field is dependent on what is in the control column/field. For:

    Buttons and Commands this is the image file (with path if not in the samedirectory as the workbook).

    ComboBoxes this contains values to list. CheckBoxes and TextBoxes this does not apply

    Setting ComboBoxes , CheckBoxes and TextBoxes get their initial values from here. Theyalso set this value when they change. Our routines can get the Dynamic Toolbar controls current values from here.

  • 8/9/2019 DynamicToolbar.pdf

    10/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 7

    BBeeyyoonndd EExxcceell

    Private Sub Workbook_Open()Me.ActivateApplication.AddIns("DynamicToolbar").Installed = True Application.EnableEvents = True Application.OnKey "^T", "ThisWorkbook.Toolbar"Toolbar

    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean )Application.OnKey "^T", ""Application.AddIns("DynamicToolbar").Installed = False

    End Sub

    Public Function Toolbar() As Boolean Me.Activate: Run "'DynamicToolbar.xlam'!Display", [TDT].ListObject, "PapaGantt"

    End Function

    CodingInvoking Dynamic Toolbar with the Add-In

    The purpose of Dynamic Toolbar is to run macros/VBA routines and there is a little VBA required to set up the add-in.

    NOTE! Running AddInDemo.xlsm installed the Dynamic Toolbar add-in on your PC. With Dynamic Toolbar installed wecan load it into our projects manually using the DEVELOPER tab, Add-Ins button, checking Dynamictoolbar in theAdd-Ins dialog and then clicking OK…

    … or we can use VBA.

    Add the above code to your project’s ThisWorkbook module to load theDynamicToolbar add-in when our workbook opens. The code also contains oneway to launch the toolbar using the keyboard shortcut Shift-Ctrl-T (We canchoose a different key if we want to preserve the Table Totals keyboardshortcut).

    NOTE! Change the Tab. The above code launches tab PapaGantt . Change PapaGantt to whatever your tab’s name is .

    NOTE! Run "'DynamicToolbar.xlam'!Display" is an example of calling an external VBA routine. Even thoughadd-ins are loaded with a host workbook, add-ins are not part of the host workbook. They are external to thehost workbook. To call external routines we must use Application.Run or, more concisely, the Run method.

    NOTE! Tables - VBA knows XL’s tables as ListObjects . When we create a table in XL it receives a name that can befound in XL’s Name Manager . I use TDT as the Toolbar Definition Table ’s name. We can use XL’s Names inVBA using VBA’s Evaluate method. Brackets around Names are shorthand for VBA’s Evaluate method. Thus,[TDT] is shorthand for Evaluate(“TDT”) . VBA’s Range object also evaluates names like this: Range(“TDT”) so [TDT] is also shorthand for Range(“TDT”) ; thus , [TDT] evaluates to the table’s Range , not its ListObject .If a Range is part of a table, we can get the ListObject from the Range like this: Range(“TDT”).ListObject ,or more concisely [TDT].ListObject

  • 8/9/2019 DynamicToolbar.pdf

    11/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 8

    BBeeyyoonndd EExxcceell

    Private Sub Workbook_Open()Application.OnKey "^T", "ThisWorkbook.Toolbar"Toolbar

    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean )Application.OnKey "^T", ""

    End Sub

    Public Function Toolbar() As Boolean frmDynTB.Display [TDT].ListObject, "PapaGantt"

    End Function

    Invoking Dynamic Toolbar without the Add-inThe add-in is DynamicToolbar.xlam and appears in our VBE’s Project window. It

    contains three modules that do all the work: frmDynTB , modGeneral , and clsDynTB.

    frmDynTb Is a completely blank UserForm with code for adding controls.

    modGeneral Is a stripped down version of my general purpose library containingroutines used in other projects that I reuse here.

    clsDynTB Is a class module that handles various control events. This is requiredbecause frmDynTb has no controls until it adds them, thus, it has nocode for handling any control events. clsDynTb does. We can createas many instances of clsDynTB as needed, one for each control addedto frmDynTB , and clsDynTB will handle all click, change, and mouseover events.

    We can drag these three modules from DynamicToolbar.xlam into our project andnot bother with using an add-in. This may make project distribution easier and codingDynamic Toolbar invoking routines simpler.

  • 8/9/2019 DynamicToolbar.pdf

    12/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 9

    BBeeyyoonndd EExxcceellCoding “Callbacks”

    A callback is just another term used in the Microsoft ribbon community for a macro (or routine) assigned to a ribbon control.Dynamic Toolbar is not a ribbon. It just looks and acts like a ribbon. I am leveraging ribbon terms to prepare readers who go on to

    customizing the ribbon. While callbacks are simply macros/routines assigned to a ribbon control, different ribbon control typesrequire different callback stubs (macro/routine templates). The table below provides examples.

    Control Description Callback Stub ExampleButtons,Commands

    Have no required parameters. Public Sub MyButton_Click()

    End Sub

    ComboBoxes Require one variant parameter that will containwhatever users select from the list.

    Public Sub MyList_Change(byVal vValue as Variant )

    End Sub

    CheckBoxes Require one boolean parameter that will be TRUEwhen the control is checked and FALSE whenunchecked.

    Public Sub MyCheckBox_Click(byVal bOnOff as Boolean )

    End Sub

    TextBoxes Require one string parameter that will containwhatever is in the textbox.

    Public Sub MyTextBox_Change(byVal sString as String )

    End Sub

    NOTE! All callbacks can contain optional parameters, and all parameters, including the first, can be declared Optional Dynamic Toolbar will only use the required parameter listed in the table above.

    NOTE! Controls are not required to have a callback at all. Setting an option, for example, might not need an immediatereaction and but its setting could be required by some operation not yet started.

    Examples:

    Scenario CodeButton or Command

    Display worksheet Sales . The Button ’s callback is DisplayChart .Public Sub DisplayChart()

    Worksheets(“Sales”).Activate End Sub

    CheckBox

    Turn EnableEvents on or off. The CheckBox’s callback is SetEvents .Public Sub SetEvents(byVal bOnOff as Boolean)

    Application.EnableEvents = bOnOffEnd Sub

    ComboBox

    Set font size. The ComboBox’s callback is FontSize .Public Sub FontSize(byVal vValue as Variant)

    Selection.Font.Size = clng(vValue)End Sub

  • 8/9/2019 DynamicToolbar.pdf

    13/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 10

    BBeeyyoonndd EExxcceellReading and Setting Control Values

    If a routine needs to know which ComboBox option is selected, or if a CheckBox is checked, we can provide our routines thecurrent setting from the TDT’s Setting column. We can also examine frmDynTB ’s controls directly. Getting values from frmDynTB ’scontrols requires three pieces of information:

    Question Code SolutionIs frmDynTB displayed? If frmDynTB.Visible then Which tab Is frmDynTB displaying? IF frmDynTB.Caption = sMyTabName then

    Which control is Project Name textbox ? Dim lRow as Long Dim oMyControl as Object

    lRow = Evaluate("MATCH(""Project Name"", TDT[Caption],0)")Set oMyControl = frmDynTB.Controls(Format(lRow,"000"))

    NOTE! frmDynTB’s control names are their TDT row formatted to three positions with leading zeroes. Ex: “ 001 ”

  • 8/9/2019 DynamicToolbar.pdf

    14/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 11

    BBeeyyoonndd EExxcceellCreating Icons

    Creating icons is easy. The easiest way is to simply copy an image and reduce it to the size we need. Here is an example.Imagine we just recorded a report macro and need a Report icon so users can click it on the Dynamic Toolbar and create the reportfrom freshly downloaded data. Where can we get a Report icon?

    Instructions Screen ShotsOpen browser and navigate to Google

    Type the name of what you needfollowed by the word Icon and pressEnter . In this example, we want an iconfor an option to create a Report.

  • 8/9/2019 DynamicToolbar.pdf

    15/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 12

    BBeeyyoonndd EExxcceellInstructions Screen ShotsChances are this screen will not providewhat we need so click Images .

    Scroll down until you find an image thatlooks good to you. Keep in mind thatlarge fancy images will not look goodwhen shrunk to small icons. Look forsmall, simple images. In this example, I

    picked a simple blue icon.

  • 8/9/2019 DynamicToolbar.pdf

    16/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 13

    BBeeyyoonndd EExxcceellInstructions Screen ShotsRight click on the image and select CopyImage.

    Open Microsoft Paint and click Paste then click Resize .

  • 8/9/2019 DynamicToolbar.pdf

    17/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 14

    BBeeyyoonndd EExxcceellInstructions Screen ShotsMake sure Pixels is clicked and then setHorizontal to 50 pixels. If Maintainaspect ratio is checked (the default) we

    do not need to set the Vertical to 50.

    NOTE! For Command icons resize theimage to 16 x 16 pixels.

    When Horizontal and Vertical pixelvalues are set, click OK.

    Click Crop

  • 8/9/2019 DynamicToolbar.pdf

    18/20

    Dynamic Toolbar

    © 2014 Craig Hatmaker Page 15

    BBeeyyoonndd EExxcceellInstructions Screen ShotsClick the file dropdown and then selectSave As and one of these pictureformats: JPEG, BMP, or GIF (I prefer

    JPEG).

    Save the icon and make note of its pathand name.

    Congratulations! You have just made an

    icon that can be included in DynamicToolbar .

  • 8/9/2019 DynamicToolbar.pdf

    19/20

  • 8/9/2019 DynamicToolbar.pdf

    20/20

    Dynamic Toolbar BBeeyyoonndd EExxcceellClass Method/Property Description

    QualifyCallBack Makes sure routines are called from the appropriateproject.

    Glow Turn on Glow effects

    ResetColor Turn off Glow effects