DO FORM c:\form1.scx
DO FORM c:\form2.scx
arrangeall('form1',.t.,100,100)
Function arrangeall(tcFormName,tlOmitAutoCenteredForms,;
tnStartTop, tnStartLeft, tnStartColumn )
#Define WINDOW_STAGGER_FACTOR Sysmetric(9)
Local lnArranged, lnColumn, lnTop, lnLeft, loFormRef, ;
lnParentHeight, lnScaleMode, lnIndex, llAllForms
lnScaleMode = _Screen.ScaleMode
_Screen.ScaleMode = 3
lnArranged = 0
lnTop = Iif(Type("tnStartTop") = "N", tnStartTop, 0)
lnLeft = Iif(Type("tnStartLeft") = "N", tnStartLeft,0)
lnColumn = Iif(Type("tnStartColumn") = "N" And tnStartColumn > 0, ;
tnStartColumn, 1)
lnParentHeight = _Screen.Height
llAllForms = Empty(tcFormName)
For lnIndex = _Screen.FormCount To 1 Step -1
loFormRef = _Screen.Forms(lnIndex)
If Upper(loFormRef.BaseClass) == "TOOLBAR"
Loop
Endif
If (llAllForms Or Upper(loFormRef.Name) == Upper(tcFormName)) And ;
loFormRef.WindowState = 0 And loFormRef.Visible And ;
(Not (tlOmitAutoCenteredForms And loFormRef.AutoCenter))
lnArranged = lnArranged + 1
loFormRef.Top = lnTop
loFormRef.Left = (lnLeft * lnColumn)
loFormRef.AutoCenter = .F.
lnTop = lnTop + WINDOW_STAGGER_FACTOR
lnLeft = lnLeft + WINDOW_STAGGER_FACTOR
If lnTop > lnParentHeight - WINDOW_STAGGER_FACTOR
Store WINDOW_STAGGER_FACTOR To lnTop, lnLeft
lnColumn = lnColumn + 1
Endif
Else
Endif
Endfor
_Screen.ScaleMode = lnScaleMode
Return lnArranged