As noticed in Hello Word – 3 sample, HMG has a lot of message functions with name prefixed by “Msg”:
MsgBox() :
Shows a Message Box
Syntax: MsgBox(<cMessage>,[<cTitle>]) –> Nil
Example : MsgBox( “This a simple message”, “MsgBox Example” )
MsgExclamation() :
Shows a message box with an exclamation icon and a special sound.
Syntax: MsgExclamation(<cMessage>,[<cTitle>]) –> Nil
Example : MsgExclamation( “Wrong selection !”, “MsgExclamation Example” )
MsgInfo() :
Shows a message box with an information icon and a special sound.
Syntax: MsgInfo (<cMessage>,[<cTitle>]) –> Nil
Example : MsgInfo( “For your information”, “MsgInfo Example” )
MsgStop() :
Shows a message box with an stop icon and a special sound.
Syntax: MsgStop(<cMessage>,[<cTitle>]) –> Nil
Example : MsgStop( “End of file reached”, “MsgStop Example” )
MsgOkCancel() :
Shows a message box with [Ok] and [Cancel] buttons
Syntax: MsgOkCancel(<cMessage>,[<cTitle>]) –> lResponse
Example : MsgOkCancel( “Are your to exit ?”, “MsgOkCancel Example” )
MsgRetryCancel() :
Shows a message box with [Retry] and [Cancel] buttons
Syntax: MsgRetryCancel(<cMessage>,[<cTitle>]) –> lResponse
Example: MsgRetryCancel( “File open error !”, “MsgRetryCancel Example” )
MsgYesNo() :
Shows a message box with [Yes] and [No] buttons
Syntax: MsgYesNo( <cMessage> , <cTitle> ) –> lResponse
Example: MsgYesNo( “Are you sure to delete file ?”, “Confirm Delete” )
Like MsgBox(), all message functions accept parameters as a string constant representing the message itself. All message functions also have a second parameter, again a string constant representing the title of message box.
As noticed in syntax, the first four message functions returns NIL, and the last three returns a logical value.
<lResponse> is .T. when selected first option; Ok, Retry and Yes.
Try and observe results.
Hints :
– As a rule, every HMG project must have one and only one “Main” window. This message functions are exception of this rule. If you have only message function(s) you can build a program without main window.
– For multiple lines message body you may use CRLF. CRLF is a predefined constant in HMG. If required you may define it:
CRLF := HB_OsNewLine()
Example :
MsgBox( "This is a" + CRLF + "multiple line" + CRLF + ;
"message", CRLF + "Multi-Line" )
– Since message function accept only “C” ( Character ) type arguments as <cMessage> and <cTitle>; for messaging other that ‘C’ type arguments, you may use appropriate function to convert to character type. See below for an example.
Example :
/*
HMG Message functions
*/
#include <hmg.ch>
dToday := DATE()
lMaried := .T.
nSalary := 123.456
PROCEDURE Main()
SET DATE GERM
SET CENT ON
dToday := DATE()
lMaried := .T.
nSalary := 123.456
DEFINE WINDOW frmMsgFuncs ;
AT 0,0 ;
WIDTH 400 ;
HEIGHT 200 ;
TITLE 'Message Functions' ;
MAIN
DEFINE MAIN MENU
DEFINE POPUP '&Test'
ITEM 'Msg&Box' ACTION ;
MsgBox( "This a simple message", "MsgBox Example" )
ITEM 'Msg&Exclamation' ACTION ;
MsgExclamation( "Wrong selection !", "MsgExclamation Example" )
ITEM 'Msg&Info' ACTION ;
MsgInfo( "For your information", "MsgInfo Example" )
ITEM 'Msg&Stop' ACTION ;
MsgStop( "End of file reached", "MsgStop Example" )
ITEM 'Msg&OkCancel' ACTION ;
MsgOkCancel( "Are your to exit ?", "MsgOkCancel Example" )
ITEM 'Msg&RetryCancel' ACTION ;
MsgRetryCancel( "File open error !", "MsgRetryCancel Example" )
ITEM 'Msg&YesNo' ACTION ;
MsgYesNo( "Are you sure to delete file ?", "Confirm Delete" )
ITEM 'Multiple &Line' ACTION ;
MsgBox( "This is a" + CRLF + "multiple line" + CRLF + ;
"message", CRLF + "Multi-Line" )
ITEM 'Non-Character' ACTION ;
MsgBox( "Today : " + DTOC( dToday ) + CRLF +;
"Married : " + IF( lMaried, "Yes", "No" ) + CRLF +;
"Salary : " + LTRIM( STR( nSalary ) ) ,;
"Non-Char" )
SEPARATOR
ITEM "E&xit" ACTION ThisWindow.Release
END POPUP // File
END MENU // Main()
END WINDOW // Main
CENTER WINDOW frmMsgFuncs
ACTIVATE WINDOW frmMsgFuncs
RETURN // Main()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-