1. @... SAY
Clipper :
@row, col SAY
Example :
@ 15, 20 SAY "Phone" PICTURE "@R (999)999-9999" COLOR "BG+/B+, BG+/N"
HMG :
@
[ ID
[ OF | PARENT | DIALOG
VALUE
[ ACTION | ONCLICK | ON CLICK
[ WIDTH
[ HEIGHT
[ AUTOSIZE ]
[ FONT
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP
[ BACKCOLOR
[ FONTCOLOR
[ BORDER ]
[ CLIENTEDGE ]
[ HSCROLL ]
[ VSCROLL ]
[ TRANSPARENT ]
[ RIGHTALIGN | CENTERALIGN ]
[ HELPID
[ INVISIBLE ]
Example
@ 15 ,20 LABEL Lbl_1;
VALUE "Phone" ;
WIDTH 350 HEIGHT 35 ;
FONT "Arial" SIZE 18 BOLD ;
FONTCOLOR BLUE ;
CENTERALIGN
CCH: Basically, SAY in Clipper becomes LABEL control. While COLOR string becomes BACKCOLOR & FONTCOLOR
Clipper : @HMG :, [SAY[PICTURE ] [COLOR]] GET[PICTURE ] [COLOR] [CAPTION] [MESSAGE] [WHEN] [RANGE*, [VALID] | ]
@
[ ID
[ OF | PARENT | DIALOG
[ HEIGHT
[ WIDTH
[ FIELD
[ VALUE
[ PICTURE
[ VALID
// RANGE - allowed range of values
[ VALIDMESSAGE
[ MESSAGE
[ WHEN
[ READONLY ]
[ FONT
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ PASSWORD ]
[ TOOLTIP
[ BACKCOLOR
[ FONTCOLOR
[ ON CHANGE
[ ON GOTFOCUS
[ ON LOSTFOCUS
[ RIGHTALIGN ]
[ INVISIBLE ]
[ NOTABSTOP ]
[ HELPID
Example :
@ 160,460 GETBOX GBox_1 ;
HEIGHT 24 WIDTH 120;
VALUE " " ;
FONT "Arial" SIZE 9 ;
ON CHANGE FindChg();
PICTURE '@XXXXXXXXXXXXXXXXXXXXXXX'
. @ 40,10 GETBOX Text_2 ;
HEIGHT 20;
VALUE 57639 ;
ACTION MsgInfo( "Button Action");
TOOLTIP "Numeric input. RANGE -100,200000 PICTURE @Z 99,999.99";
PICTURE '@Z 99,999.99';
RANGE -100,200000;
BOLD;
MESSAGE "Numeric input";
VALIDMESSAGE "Value between -100 and 200000 " ;
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}} ;
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
@ 78,10 GETBOX Text_3 ;
VALUE "Jacek";
ACTION MsgInfo( "Button Action");
ACTION2 MsgInfo( "Button2 Action");
IMAGE {"folder.bmp","info.bmp"};
BUTTONWIDTH 20 ;
PICTURE "@K !xxxxxxxxxxxxxx";
TOOLTIP "Character Input. VALID {|| ( len(alltrim(This.Value)) >= 2)} PICTURE @K !xxxxxxxxxxxxxx " ;
VALID {|| ( len(alltrim(This.Value)) >= 2)};
VALIDMESSAGE "Minimum 2 characters" ;
MESSAGE "Character Input";
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}} ;
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
@ 120,10 GETBOX Text_4 WIDTH 30 HEIGHT 20;
VALUE .t.;
TOOLTIP "Logical Input VALID {|| (This.Value == .t.)}";
PICTURE "Y";
VALID {|| (This.Value == .t.)};
VALIDMESSAGE "Only True is allowed here !!!";
MESSAGE "Logical Input";
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}} ;
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
@ 160,10 GETBOX Text_2a HEIGHT 20;
VALUE 234123.10 ;
TOOLTIP "Numeric input PICTURE @ECX) $**,***.**" ;
PICTURE '@ECX) $**,***.**' ;
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}} ;
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
@ 200,10 GETBOX Text_2b HEIGHT 20;
VALUE "Kowalski";
PICTURE "@K !!!!!!!!!!";
ON CHANGE {|| TONE(300)};
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}} ;
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
DEFINE GETBOX Text_2c // Alternate Syntax
ROW 240
COL 10
HEIGHT 20
VALUE "MyPass"
PICTURE "@K !!!!!!!!!"
BACKCOLOR {{255,255,255},{255,255,200},{200,255,255}}
FONTCOLOR {{0,0,0},{255,255,200},{0,0,255}}
VALID {|| ( len(alltrim(This.Value)) >= 4)}
TOOLTIP "Character input PASSWORD clause is set"
VALIDMESSAGE "Password must contains minimum 4 characters"
MESSAGE "Enter password (min 4 char.) "
PASSWORD .T.
Comments by Mel Smith from comp.lang.clipper/comp.lang.xharbour
Here is a snippet of HMG Code that shows a prompt (P.O. Number:), then a
'GET' that inputs a P.O. number from the user, then verifies it and does a few more things.
These next two statements are 'inside' a Window Definition structure:
DEFINE WINDOW MNTPCH;
etc,
etc,
// This next is a 'SAY' emulation showing how wide/high the prompt
box should be,
// and where the label should be positioned (in 'pixels'), and that
// it should be right-aligned in its 'box'. Note that the 'LABEL'
has a name itself.
// Here, it is named LABPONUM, so that I can reference and change
the characteristics
// of the label itself at a later stsge -- if I wish to.
@ 010,010 LABEL LABPONUM OF MNTPCH WIDTH 090 HEIGHT 20 ;
VALUE "P.O. Number :" RIGHT
// This next is the 'GET' emulation showing the 'picture' clause,
the initial value to be displayed,
// the colors for foreground and background, and what to do when
gaining focus, and
// what to do when focus is lost, and then a Validation function to
perform on losing focus.
@ 010,120 GETBOX oPONUM OF MNTPCH WIDTH 060 HEIGHT 20 ;
PICTURE "@K! #####" ;
VALUE cPONUM ;
FONTCOLOR GFCOLORS ;
BACKCOLOR GBCOLORS ;
ON GOTFOCUS {|| IF(lGOTNEWPO,SETFOCUSTO("MNTPCH","oVENDCODE"), ;
SETPROPERTY("MNTPCH","LABF6SELPO","VISIBLE",.T.))}
;
ON LOSTFOCUS {||SETPROPERTY("MNTPCH","LABF6SELPO","VISIBLE",.F.)} ;
VALID {||GABORT := .NOT. CHKPONUM("MNTPCH","oPONUM",ALIAS(), ;
THIS.VALUE,@cPONUM),.T.} ;
TOOLTIP "Enter a different P.O. No., or use Movement Keys"
etc,
etc
// and many other fields, browses, etc, in here too
// It gets easier after you bang your head against the wall for five
months :))
END WINDOW
I would like to see a full example with window @SAY and @get equivalent. I am using these examples but getting an error E0030.
ReplyDelete