>*testing the grid scrollbars dynamically. >*scrollbars appear when needed only > >_screen.windowstate=1 > >Publi myform >myform=Newobject("yscroll") >myform.Show >Read Events >Retu >* >Define Class yscroll As Form > Height = 346 > Width = 759 > ShowWindow = 2 > AutoCenter = .T. > Caption = "Testing scrollbars dynamically." > Name = "Form1" > > Add Object grid1 As Grid With ; > Anchor = 15, ; > Height = 277, ; > Left = 11, ; > ScrollBars = 0, ; > Top = 5, ; > Width = 733, ; > Name = "Grid1" > > Add Object command1 As CommandButton With ; > Top = 307, ; > Left = 183, ; > Height = 27, ; > Width = 84, ; > Anchor = 768, ; > Caption = "No scrollbars", ; > BackColor = Rgb(128,255,0), ; > Name = "Command1" > > Add Object optiongroup1 As OptionGroup With ; > AutoSize = .T., ; > ButtonCount = 4, ; > Anchor = 768, ; > Value = 1, ; > Height = 27, ; > Left = 305, ; > Top = 307, ; > Width = 264, ; > Name = "Optiongroup1", ; > Option1.Caption = "Test1", ; > Option1.Value = 1, ; > Option1.Height = 17, ; > Option1.Left = 5, ; > Option1.Style = 0, ; > Option1.Top = 5, ; > Option1.Width = 61, ; > Option1.AutoSize = .F., ; > Option1.Name = "Option1", ; > Option2.Caption = "Test2", ; > Option2.Height = 17, ; > Option2.Left = 68, ; > Option2.Style = 0, ; > Option2.Top = 5, ; > Option2.Width = 61, ; > Option2.AutoSize = .F., ; > Option2.Name = "Option2", ; > Option3.Caption = "Test3", ; > Option3.Height = 17, ; > Option3.Left = 131, ; > Option3.Style = 0, ; > Option3.Top = 5, ; > Option3.Width = 61, ; > Option3.AutoSize = .F., ; > Option3.Name = "Option3", ; > Option4.Caption = "Test4", ; > Option4.Height = 17, ; > Option4.Left = 198, ; > Option4.Top = 5, ; > Option4.Width = 61, ; > Option4.Name = "Option4" > > Add Object label1 As Label With ; > AutoSize = .T., ; > FontBold = .T., ; > FontSize = 10, ; > Anchor = 768, ; > Caption = "Grdid.scrollbars=0", ; > Height = 18, ; > Left = 587, ; > Top = 309, ; > Width = 117, ; > ForeColor = Rgb(255,0,0), ; > BackColor = Rgb(255,255,128), ; > Name = "Label1" > > Procedure yscroll > Local m.x,m.y > With Thisform.grid1 > m.x=0 > For i=1 To .ColumnCount > m.x=m.x+.Columns(i).Width > Endfor > m.x=m.x+.ColumnCount*.GridLineWidth+2*Sysmetric(5) > m.y=(.RowHeight+.GridLineWidth)*Reccount()+Sysmetric(6) > > Do Case > Case m.x<.Width And m.y<.Height > .ScrollBars=0 > Case m.x<.Width And m.y>.Height > .ScrollBars=2 > Case m.x>.Width And m.y<.Height > .ScrollBars=1 > Case m.x>.Width And m.y>.Height > .ScrollBars=3 > Endcase > > .Refresh > Endwith > Endproc > > Procedure Load > Close Data All > Endproc > > Procedure grid1.Init > With This > .RecordSource="" > .GridLines=0 > .DeleteMark=.F. > .ScrollBars=0 > .Refresh > Endwith > Endproc > > Procedure command1.Click > Thisform.grid1.ScrollBars=0 > Endproc > > Procedure optiongroup1.InteractiveChange > Thisform.label1.Caption="Grid.scrollbars="+Trans(Thisform.grid1.ScrollBars) > Endproc > > Procedure optiongroup1.Option1.Click > Sele * From Home(1)+"samples\data\customer" Where Recn()<5 Into Cursor ycurs > > With Thisform.grid1 > .RecordSource="ycurs" > .Refresh > Endwith > Thisform.yscroll() > Endproc > > Procedure optiongroup1.Option2.Click > Sele fax,address From Home(1)+"samples\data\customer" Into Cursor ycurs > With Thisform.grid1 > .RecordSource="ycurs" > .Refresh > Endwith > Thisform.yscroll() > Endproc > > Procedure optiongroup1.Option3.Click > Sele * From Home(1)+"samples\data\customer" Into Cursor ycurs > With Thisform.grid1 > .RecordSource="ycurs" > .Refresh > Endwith > Thisform.yscroll() > Endproc > > > Procedure optiongroup1.Option4.Click > Sele fax,address From Home(1)+"samples\data\customer" Where Recno()<6Into Cursor ycurs > With Thisform.grid1 > .RecordSource="ycurs" > .Refresh > Endwith > Thisform.yscroll() > Endproc > > >Enddefine >* >*-- EndDefine: yscroll > >>
m.x=m.x+.ColumnCount*.GridLineWidth+2*Sysmetric(5)