Playing around with custom mouse cursors
Try running the code below. It creates a form and adds all the various types of baseclass controls to it. Then it adds a grid and adds a column for each control type. For each control it adds tooltips and custom mouse pointers.
Move your mouse over the various controls.
Notes:
“OleControl” won’t work because it needs more information (the control type, like TreeView or Web Control) and puts up a dialog. I tried using SYS(2335) to suppress User Interface, but that won’t work in design time, where there must be UI (otherwise how do you interact with it?). Other baseclasses don’t work because they don’t have the right properties (like “Empty” and “Collection’)
I noticed that I couldn’t change the forecolor of the columnheader. A little investigation (MSDN docs) reveals that the color changes only if Windows XP Visual Styles is turned off. With them enabled, the header is drawn by Windows, and not Fox.
CLEAR ALL
CLEAR
nFields=ALANGUAGE(aa,3)
ADEL(aa,27) && remove OleControl because it prompts user with dialog
nFields=nFields-1
LIST MEMORY LIKE aa
PUBLIC oForm as Form
oForm=CREATEOBJECT("Myform")
oForm.left=50
oForm.AllowOutput= .F.
oForm.Height=400
oForm.width=MIN(SYSMETRIC(1)-oForm.left,1900) && my screen is 2048 X 1536
oForm.Themes= .F. && so header color works
oForm.visible=1
nCnt=0
nWidth=80
nPerLine=12
nHeight=50
cPicPath=HOME()+"graphics\cursors\"
nCurs=ADIR(aCurs,cPicPath+"*.cur")
CREATE CURSOR foo (name c(10))
COPY STRUCTURE EXTENDED TO t.dbf
*!* USE t
*!* LIST STRUCTURE
*!* RETURN
USE t EXCLUSIVE
ZAP
FOR i =1 TO nFields
INSERT INTO t (field_name,field_type,field_len,field_dec,field_null) values;
("fld"+TRANSFORM(i),"C",3,0,.t.)
ENDFOR
*Use Null because Null can be valid controlsource for control
CREATE foo FROM t
INSERT INTO foo (fld1,fld2) VALUES ("One",null)
INSERT INTO foo (fld1,fld2) VALUES ("Two",null)
GO TOP
FOR i = 1 TO nFields
TRY
nCnt=i-1 && start at 0
oForm.AddObject("ox"+TRANSFORM(nCnt),aa[i])
ox=EVALUATE("oForm.ox"+TRANSFORM(nCnt))
WITH ox
.top=INT(nCnt / nPerLine)*nHeight
.left=(nCnt% nPerLine)*nWidth
.Height=nHeight
.Width=nWidth
.ToolTipText=TRANSFORM(i)+" "+aa[i]
.visible=1
.MousePointer=99
* .MouseIcon=cPicPath+"4way03.cur"
.MouseIcon=cPicPath+aCurs[1+nCnt% nCurs,1]
ENDWITH
CATCH TO oEx
oForm.AddObject("lbl"+TRANSFORM(nCnt),"Label")
oLbl=EVALUATE("oForm.lbl"+TRANSFORM(nCnt))
WITH oLbl as Label
.top=INT(nCnt / nPerLine)*nHeight
.left=(nCnt% nPerLine)*nWidth
.Height=nHeight
.Width=nWidth
.ToolTipText=TRANSFORM(i)+" "+aa[i]
.ForeColor=255
.Caption=aa[i]
.visible=1
ENDWITH
?i,aa[i],oEx.message
ENDTRY
ENDFOR
?"Now grid"
oForm.addobject("oG","Grid")
WITH oForm.oG as Grid
.ColumnCount=nFields
.top=200
.width=oForm.width
.visible=1
.Anchor=15
FOR i = 1 TO nFields
oCol=EVALUATE(".Column"+TRANSFORM(i))
WITH oCol as Column
.Sparse=.f.
.Header1.ToolTipText=TRANSFORM(i)+" "+aa[i]
.Header1.caption=aa[i]
TRY
.addobject("ox",aa[i])
.CurrentControl="ox"
.ox.visible=1
.ox.ToolTipText=TRANSFORM(i)+" "+aa[i]
.ox.mousepointer=99
.ox.MouseIcon=cPicPath+aCurs[1+i% nCurs,1]
* .ox.MouseIcon=cPicPath+"4way05.cur"
CATCH TO oEx
TRY
oCol.Header1.Forecolor=255 && doesn't work if themes off
oCol.Header1.FontItalic=.t.
oCol.Header1.FontBold=.t.
CATCH
ENDTRY
?i,aa[i],oEx.message
ENDTRY
ENDWITH
ENDFOR
ENDWITH
DEFINE CLASS MyForm AS Form
ShowTips=.t.
ENDDEFINE
Comments
Anonymous
February 01, 2008
<a href= http://index1.vehal.com >american red cross volunteer dental assistant program</a>Anonymous
January 16, 2009
<a href= http://gyouoxe.angelfire.com >find trademaked names</a> <a href= http://pkqfkpc.angelfire.com >personality disorder domestic violence</a> <a href= http://huiidei.angelfire.com >harperaudio wuthering heights</a> <a href= http://jimwzao.angelfire.com >what is satellite radio</a> <a href= http://ctboazk.angelfire.com >xprs</a>