Option Explicit 'Mike McGrath 'mikem@clara.net '(UK) 1998: 'This example opens form by increment steps to reach the forms set size. 'The attached sample is in VB6 but you can cut and paste this into your VB5 'and possibly VB4/32 projects. Rem define type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Rem declare api calls Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long '======================================================================= Private Sub Explode(Newform As Form, Increment As Integer) Dim Size As RECT ' setup form as rect type GetWindowRect Newform.hwnd, Size Dim FormWidth, FormHeight As Integer ' establish dimension variables FormWidth = (Size.Right - Size.Left) FormHeight = (Size.Bottom - Size.Top) Dim TempDC TempDC = GetDC(ByVal 0&) ' obtain memory dc for resizing Dim Count, LeftPoint, TopPoint, nWidth, nHeight As Integer ' establish resizing variables For Count = 1 To Increment ' loop to new sizes nWidth = FormWidth * (Count / Increment) nHeight = FormHeight * (Count / Increment) LeftPoint = Size.Left + (FormWidth - nWidth) / 2 TopPoint = Size.Top + (FormHeight - nHeight) / 2 Rectangle TempDC, LeftPoint, TopPoint, LeftPoint + nWidth, TopPoint + nHeight ' draw rectangles to build form Next Count DeleteDC (TempDC) ' release memory resource End Sub '======================================================================= Private Sub Form_Load() Explode Me, 1000 ' open this form by number of desired increment End Sub