>Public oForm >oForm = Createobject('myForm') >oForm.Show > >Define Class myForm As Form > Add Object myGrid As Grid > > Procedure Load > Create Cursor myProcess (percent i, Name c(10)) > Rand(-1) > For ix = 1 To 100 > Insert Into myProcess Values (Int(Rand()*100),Sys(2015)) > Endfor > Endproc > > Procedure Init > With This.myGrid.Columns(1) > .AddObject('myPercent','myContainer') > .myPercent.Width = .Width > .myPercent.lblPercent.Width = .Width > .myPercent.Visible = .T. > .DynamicFontBold = "thisform.UpdateContainer(this.columns(1).myPercent)" > .CurrentControl = 'myPercent' > .Sparse = .F. > Endwith > Endproc > > Procedure UpdateContainer(toContainer) > With toContainer > .shpPercent.BackColor = Iif(percent>90,0xFF,0x00FF00) > .shpPercent.Width = toContainer.Parent.Width * percent/100 > .lblPercent.Caption = '%'+Ltrim(Str(percent)) > Endwith > Endproc >Enddefine > >Define Class myContainer As Container > BackColor=0xFFFFFF > BorderWidth=0 > Add Object shpPercent As Shape With BorderStyle = 0 > Add Object lblPercent As Label With Alignment = 2 ,BackStyle=0 >Enddefine >Cetin