ToolBar Control

HMG Tutor 18

More Organization (TOOLBAR Control)

Toolbars are used to group command buttons in a bar located (usually) at window top (under main menu bar).

#include "hmg.ch"
Function Main
DEFINE WINDOW Win_1 ;
   AT 0,0 ;
   WIDTH 640 HEIGHT 480 ;
   TITLE 'Tutor 18: ToolBar Test' ;
   MAIN ;
   FONT 'Arial' SIZE 10
   DEFINE MAIN MENU
      POPUP '&File'
         ITEM '&Disable ToolBar Button' ACTION ;
               Win_1. ToolBar_1.Button_1.Enabled := .F.
         ITEM '&Enable ToolBar Button' ACTION ;
               Win_1. ToolBar_1.Button_1.Enabled := .T.
         ITEM '&Exit' ACTION Win_1.Release
      END POPUP
   END MENU
   DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 80,80 FLAT BORDER
      BUTTON Button_1 ;
         CAPTION '&Button &1' ;
         PICTURE 'button1.bmp' ;
         ACTION MsgInfo('Click! 1')
      BUTTON Button_2 ;
         CAPTION '&Button 2' ;
         PICTURE 'button2.bmp' ;
         ACTION MsgInfo('Click! 2') ;
         SEPARATOR
      BUTTON Button_3 ;
         CAPTION 'Button &3' ;
         PICTURE 'button3.bmp' ;
         ACTION MsgInfo('Click! 3')
    END TOOLBAR
END WINDOW
CENTER WINDOW Win_1
ACTIVATE WINDOW Win_1
Return Nil

DatePicker Control

HMG Tutor 12

Getting Dates (The DatePicker Control)

The easiest way to get dates from user is the datepicker control.

@ 10,10 DATEPICKER Date_1

#include "hmg.ch"
Function Main
DEFINE WINDOW Win_1 ;
   AT 0,0 ;
   WIDTH 400 ;
   HEIGHT 200 ;
   TITLE 'Tutor 12 - DatePicker Test' ;
   MAIN
   DEFINE MAIN MENU
      POPUP "First Popup"
         ITEM 'Change DatePicker Value' ACTION ; 
            Win_1.date_1.Value := Date()
         ITEM 'Retrieve DatePicker Value' ACTION  ;
            MsgInfo ( dtoc(Win_1.Date_1.Value))
      END POPUP
   END MENU
   @ 10,10 DATEPICKER Date_1
END WINDOW
ACTIVATE WINDOW Win_1
Return

CheckButton

HMG Tutor 11

Button + CheckBox = CheckButton

The CheckButton control, acts like a checkbox, but looks like a button. Like buttons, It comes in two flavors: Text and Graphical.

@ 10,10 CHECKBUTTON CheckButton_1 ;
        CAPTION 'CheckButton' ;
        VALUE .F.

@ 50,10 CHECKBUTTON CheckButton_2 ;
        PICTURE 'Open.Bmp' ;
        WIDTH 27 ;
        HEIGHT 27 ;
        VALUE .F. ;
        TOOLTIP 'Graphical CheckButton'

#include "hmg.ch"
Function Main
DEFINE WINDOW Win_1 ;
   AT 0,0 ;
   WIDTH 400 ;
   HEIGHT 200 ;
   TITLE 'Tutor 11 - CheckButton Test' ;
   MAIN
   DEFINE MAIN MENU
      POPUP "First Popup"
         ITEM 'Change Text CheckButton Value' ACTION ;
               Win_1.CheckButton_1.Value := .T.
         ITEM 'Retrieve Text CheckButton Value' ACTION ;
               MsgInfo ( if(Win_1.CheckButton_1.Value,'.T.','.F.'))
         SEPARATOR
         ITEM 'Change Picture CheckButton Value' ACTION ;
               Win_1.CheckButton_2.Value := .T.
         ITEM 'Retrieve Picture CheckButton Value' ACTION ;
               MsgInfo ( if(Win_1.CheckButton_2.Value,'.T.','.F.'))
      END POPUP
   END MENU
   @ 10,10 CHECKBUTTON CheckButton_1 ;
           CAPTION 'CheckButton' ;
           VALUE .F.
   @ 50,10 CHECKBUTTON CheckButton_2 ;
           PICTURE 'Open.Bmp' ;
           WIDTH 27 ;
           HEIGHT 27 ;
           VALUE .F. ;
           TOOLTIP 'Graphical CheckButton'
END WINDOW
ACTIVATE WINDOW Win_1
Return

Picture Buttons

HMG Tutor 10

Being More Graphical (Picture Buttons)

Instead a text caption you can use a picture.

#include "hmg.ch"
Function Main
DEFINE WINDOW Win_1 ;
   AT 0,0 ;
   WIDTH 400 ;
   HEIGHT 200 ;
   TITLE 'Tutor 10 - Picture Button Test' ;
   MAIN
   @ 10,10 BUTTON PictureButton_1 ;
      PICTURE 'button.bmp' ;
      ACTION MsgInfo('Picture Button Clicked!!') ;
      WIDTH 27 ;
      HEIGHT 27 ;
      TOOLTIP 'Picture Button Tooltip'
END WINDOW
ACTIVATE WINDOW Win_1
Return

The optional tooltip clause, causes that a small window with an explanatory text be displayed when the mouse pointer stays over the control for a few seconds. You can use this clause with most HMG controls.

Standard Buttons

HMG Tutor 9

Pushing Actions (Standard Buttons)

Another way for let the users to take an action (besides menus) are buttons.

@ 10,10 BUTTON Button_1 CAPTION 'Click Here!' ACTION MsgInfo('Button Clicked!')

#include "hmg.ch"
Function Main
DEFINE WINDOW Win_1 ;
   AT 0,0 ;
   WIDTH 400 ;
   HEIGHT 200 ;
   TITLE 'Tutor 09 - Button Test' ;
   MAIN
   @ 10,10 BUTTON Button_1 ;
     CAPTION 'Click Here!' ;
     ACTION MsgInfo('Button Clicked!')
END WINDOW
ACTIVATE WINDOW Win_1
Return