Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Grid Border Color
Message
From
01/10/2018 06:45:39
 
 
To
28/09/2018 03:00:54
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Database:
MS SQL Server
Miscellaneous
Thread ID:
01662372
Message ID:
01662416
Views:
110
Hi All
*created on 30 of september 2018
*this is a solution to simulate a grid border (native border  is vfp system window border and don't have any property to change borderWidth,Bordercolor).
*include the grid in a container and adjust (procedure resize()).the bordercolor property of the container or picture can desserve this problem.
*can change the random grid border color by simple click on it here.
*can set a container image (as shipped in code ybg.png for ex. or any other)an empty image want to say "no picture)
*with this code can have a simple color border or an image colored border.All adjustable as wanted.
*(can also use a basic solution with  a simple shape (zorder(1) always to send it back the grid).here can use curvature to play with round rectangle corners.)

PUBLIC oform
oform1=NEWOBJECT("ygrid_border_color")
oform1.Show
read events
RETURN

*
DEFINE CLASS ygrid_border_color AS form
	Height = 296+40
	Width = 700
	ShowWindow = 2
	AutoCenter = .T.
	showtips=.T.
	scalemode=3
	Caption = "Click shapes to change random color, pîcture or container borderWidth.can resize the form/grid"
	Name = "Form1"

	ADD OBJECT container1 AS ycont WITH ;
		Anchor = 15, ;
		Top = 12, ;
		Left = 30, ;
		Width = 655, ;
		Height = 265, ;
		BackStyle = 0, ;
		BorderWidth = 4, ;
		MousePointer = 15, ;
		BorderColor = RGB(255,128,64), ;
		Name = "Container1"

	ADD OBJECT shape1 AS shape WITH ;
		Top = 300+14, ;
		Left = 50, ;
		Height = 13, ;
		Width = 13, ;
		Anchor = 768, ;
		Curvature = 99, ;
		MousePointer = 15, ;
		ToolTipText = "Change random border  color (or click on container border)", ;
		BackColor = RGB(255,0,0), ;
		Name = "Shape1"

	ADD OBJECT shape2 AS shape WITH ;
		Top = 300+14, ;
		Left = 70, ;
		Height = 13, ;
		Width = 13, ;
		Anchor = 768, ;
		Curvature = 99, ;
		MousePointer = 15, ;
		ToolTipText = "Change container picture(empty=no picture)", ;
		BackColor = RGB(0,0,255), ;
		Name = "Shape2"

	ADD OBJECT spinner1 AS spinner WITH ;
		Height = 24,;
		KeyboardHighValue = 20,;
		KeyboardLowValue = 0,;
		Left = 90,;
		SpinnerHighValue =  20.00,;
		SpinnerLowValue =   0.00,;
		Top = 295+14,;
		Width = 48,;
		Anchor=768,;
                Value=4,;
		ToolTipText="container borderwidth (px)",;
	       Name = "Spinner1"

	PROCEDURE shape1.Click
	rand(-1)
	thisform.container1.BorderColor=RGB(255*rand(),255*rand(),255*rand())
	ENDPROC

	PROCEDURE shape2.Click
	WITH thisform.container1
	.picture=getpict()
	.BackStyle=1
	thisform.resize()
	endwith
	ENDPROC

	PROCEDURE Init
	local m.myvar
	text to m.myvar pretext 13 noshow
	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
    endtext
   
   strtofile(strconv(m.myvar,14),"ybg.png")
	this.resize
	ENDPROC

	PROCEDURE spinner1.InteractiveChange
	WITH thisform.container1
	.BorderWidth= this.value
	.parent.resize()
	endwith
	ENDPROC

	PROCEDURE resize
	WITH this.container1.grid1
	.Left=.parent.BorderWidth
	.Top=.parent.BorderWidth
	.Width=.parent.Width-2*.parent.BorderWidth
	.Height=.parent.Height-2*.parent.BorderWidth
	endwith
	ENDPROC

	PROCEDURE Load
	Close Data All
	Sele * From Home(1)+"samples\data\customer"  Into Cursor ycurs Readwrite
	Sele ycurs
	ENDPROC

	PROCEDURE Destroy
	clea events
	ENDPROC

ENDDEFINE
*
*-- EndDefine: ygrid_border_color
***********************************
*
DEFINE CLASS ycont AS container
	Anchor = 15
	Top = 12
	Left = 10
	Width = 655
	Height = 265
	BackStyle = 0
	BorderWidth = 4
	MousePointer = 15
	BorderColor = RGB(255,128,64)
	Name = "Container1"

	ADD OBJECT grid1 AS grid WITH ;
		Anchor = 0, ;
		Height = 193, ;
		Left = 13, ;
		Top = 14, ;
		Width = 543, ;
		Name = "Grid1"

	PROCEDURE Click
	rand(-1)
	this.BorderColor=RGB(255*rand(),255*rand(),255*rand())
	ENDPROC

	PROCEDURE grid1.Init
	WITH this
	.recordsource="ycurs"
	.recordsourcetype=1
	.deletemark=.F.
	.recordmark=.F.
	.highlightStyle=2
	.gridlines=0
	.fontsize=11
	.fontname="Courier new"
	.SetAll("DynamicBackColor",  "IIF(MOD(RECNO(), 2) = 0, RGB(255, 255, 255), RGB(255, 255, 190) )","column")
	.refresh
	endwith
	ENDPROC


ENDDEFINE
*
*-- EndDefine: ycont
***********************
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform