PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN DEFINE CLASS form1 AS form Height = 250 Width = 358 ScrollBars = 2 Caption = "Form1" VScrollSmallChange = 1 LastTop = 0 ADD OBJECT text1 AS textbox WITH ; Height = 23, ; Left = 36, ; Top = 36, ; Width = 100, ; Name = "Text1" ADD OBJECT text2 AS textbox WITH ; Height = 23, ; Left = 192, ; Top = 180, ; Width = 100, ; Name = "Text2" ADD OBJECT container1 AS container WITH ; Top = 320000, ; Left = 84, ; Width = 133, ; Height = 11690, ; BackColor = RGB(255,0,0), ; Name = "Container1" PROCEDURE Scrolled LPARAMETERS nDirection IF m.nDirection < 4 DeltaTop = (m.this.ViewPortTop - m.This.LastTop)*9 && 1 -> This.VScrollSmallChange = 5 Precison = 5*2 = 10 Max form size = 32XXX*2 = 64XXX && 2 -> This.VScrollSmallChange = 5 Precison = 5*3 = 15 Max form size = 32XXX*3 = 96XXX && ... && 9 -> This.VScrollSmallChange = 1 Precison = 1*10 = 10 Max form size = 32XXX*10 = 32X.XXX FOR k=1 TO this.ControlCount this.Controls[m.k].Top = this.Controls[m.k].Top - m.DeltaTop ENDFOR This.LastTop = m.this.ViewPortTop ENDIF ENDPROC ENDDEFINE