PUBLIC ohilites
ohilites = CREATEOBJECT("hilites")
ohilites.SHOW
RETURN
**************************************************
DEFINE CLASS hilites AS FORM
TOP = 0
LEFT = 0
HEIGHT = 220
WIDTH = 543
DOCREATE = .T.
CAPTION = "Hilight Cells"
NAME = "hilites"
cselfld = .F.
ADD OBJECT grid1 AS GRID WITH ;
HEIGHT = 169, ;
LEFT = 24, ;
RECORDSOURCE = "testtest", ;
TOP = 48, ;
WIDTH = 492, ;
NAME = "Grid1"
ADD OBJECT text1 AS TEXTBOX WITH ;
HEIGHT = 25, ;
LEFT = 190, ;
TOP = 12, ;
WIDTH = 145, ;
NAME = "Text1"
ADD OBJECT label1 AS LABEL WITH ;
WORDWRAP = .T., ;
CAPTION = "In the text box type characters or numbers, then <Tab>", ;
HEIGHT = 30, ;
LEFT = 25, ;
TOP = 10, ;
WIDTH = 162, ;
NAME = "Label1"
ADD OBJECT label2 AS LABEL WITH ;
WORDWRAP = .T., ;
CAPTION = "Examples: WIN or 03 or 123 etc. Hilite is case sensitive.", ;
HEIGHT = 30, ;
LEFT = 340, ;
TOP = 10, ;
WIDTH = 162, ;
NAME = "Label2"
PROCEDURE hilite
PARAMETERS search_string, cfield
DO CASE
CASE TYPE(cfield) = "C" OR TYPE(cfield) = "M"
IF search_string $ EVAL(cfield)
RETURN RGB(0,255,255) &&... lite blue
ENDIF
CASE TYPE(cfield) = "N"
IF search_string $ STR(EVAL(cfield))
RETURN RGB(255,0,0) &&... lite red
ENDIF
CASE TYPE(cfield) = "D"
IF search_string $ DTOC(EVAL(cfield))
RETURN RGB(0,255,0) &&... lite red
ENDIF
OTHERWISE
* nop. Not pretty, but I got lazy
ENDCASE
ENDPROC
PROCEDURE showsel
THISFORM.Grid1.Column2.Text1.SELSTART = ;
AT(ALLTRIM(THISFORM.text1.VALUE), THISFORM.Grid1.Column2.Text1.VALUE) -1
THISFORM.Grid1.Column2.Text1.SELLENGTH = LEN(ALLTRIM(THISFORM.text1.VALUE))
ENDPROC
PROCEDURE LOAD
*... Grab records from resource file
*SELECT * from Sys(2005) INTO CURSOR testtest
USE testtest
ENDPROC
PROCEDURE grid1.INIT
*... breeze through columns and hilite them if cell
*... contains search string
FOR jj = 1 TO THIS.COLUMNCOUNT
STORE 'Column' + ALLTRIM(STR(jj)) TO MyColumn
THIS.&MyColumn..DYNAMICBACKCOLOR = ;
"ThisForm.hilite(ALLTRIM(ThisForm.Text1.Value), " + ;
"This.&MyColumn..controlsource)"
NEXT
ENDPROC
PROCEDURE grid1.REFRESH
NODEFAULT
ENDPROC
PROCEDURE text1.VALID
STORE ALLTRIM(THIS.VALUE) TO cval
LOCATE REST FOR ;
cval $ TYPE OR;
cval $ ID OR;
cval $ NAME OR;
cval $ STR(ckval) OR;
cval $ DTOC(UPDATED)
DO CASE
CASE cval $ TYPE
THISFORM.cSelfld = 1
CASE cval $ ID
THISFORM.cSelfld = 2
CASE cval $ STR(ckval)
THISFORM.cSelfld = 5
CASE cval $ DTOC(UPDATED)
THISFORM.cSelfld = 7
OTHERWISE
THISFORM.cSelfld = 0
ENDCASE
THISFORM.Grid1.Column2.SELECTONENTRY = .F.
RETURN .T.
ENDPROC
PROCEDURE text1.LOSTFOCUS
IF THISFORM.cSelfld > 0
WITH THISFORM.grid1.COLUMNS(THISFORM.cSelfld )
.SETFOCUS
DO CASE
CASE TYPE(.CONTROLSOURCE) = "C" OR TYPE(.CONTROLSOURCE) = "M"
.Text1.SELSTART = AT(ALLTRIM(THISFORM.text1.VALUE), .Text1.VALUE) -1
CASE TYPE(.CONTROLSOURCE) = "N"
.Text1.SELSTART = ;
AT(ALLTRIM(THISFORM.text1.VALUE), LTRIM(STR(.Text1.VALUE)))
CASE TYPE(.CONTROLSOURCE) = "D"
.Text1.SELSTART = ;
AT(ALLTRIM(THISFORM.text1.VALUE), DTOC(.Text1.VALUE)) -1
OTHERWISE
* nop. Not pretty, but I got lazy
ENDCASE
.Text1.SELLENGTH = LEN(ALLTRIM(THISFORM.text1.VALUE))
ENDWITH
ENDIF
ENDPROC
ENDDEFINE
*
*-- EndDefine: hilites
**************************************************