Option ExplicitPrivate nFormHeight As IntegerPrivate nFormWidth As IntegerPrivate nNumOfControls As IntegerPrivate nTop () As IntegerPrivate nLeft () As IntegerPrivate nHeight () As IntegerPrivate nWidth () As IntegerPrivate nFontSize () As IntegerPrivate nRightMargin () As IntegerPrivate bFirstTime As Boolean
Sub INIT (FRM AS FORM, OPTIONAL NWINDSTATE AS VARIANT) DIM I AS INTEGER DIM BWINMAX AS BOOLEAN
Bwinmax = not ismissing (nwindstate)
nFormHeight = frm.Height nFormWidth = frm.Width nNumOfControls = frm.Controls.Count - 1 bFirstTime = True ReDim nTop (nNumOfControls) ReDim nLeft (nNumOfControls) ReDim nHeight (nNumOfControls) ReDim nWidth (nNumOfControls) ReDim nFontSize (nNumOfControls)
Redim NRight Margin (Nnumofcontrols) on Error ResMe next for i = 0 to nnumofcontrols if Typeof frm.controls (i) is line kiln ntop (i) = frm.controls (i) .y1 NLEFT (i) = frm.controls (i) .X1 nheight (i) = frm.controls (i) .y2 nwidth (i) = frm.controls (i) .x2 else Ntop (i) = frm.controls (i) .top NLEFT (i) = frm.controls (I) .left nheight (i) = frm.controls (i) .height nwidth (i) = frm.controls (i) .width nfontsize (i) = frm.fontsize nRight Margin (i) = frm.controls (i) .Rightmargin endiff
If bWinMax Or frm.WindowState = 2 Then frm.Height = Screen.Height frm.Width = Screen.Width Else frm.Height = frm.Height * Screen.Height / 7290 frm.Width = frm.Width * Screen.Width / 9690 END IF
Bfirsttime = true
End Sub
SUB FormResize (FRM AS FORM)
DIM I as Integer Dim Ncaptionsize As INTEGER DIM DRATIOX As Double Dim Dratioy As Double Dim NsaveredRaw As Longon Error ResMe next nsaveredraw = frm.autoredraw
FRM.AUTOREDRAW = TRUE
IF bfirstttime kiln bfirsttime = false exit sub?
IFfrm.height If frm.Width For i = 0 to nnumofcontrols if Typeof frm.controls (i) is line kilm.controls (i) .y1 = int (ntop (i) / dratioy) frm.controls (i) .x1 = int (NLEFT (i) / Dratiox) frm.controls (i) .y2 = int (NHEIGHT (I) / Dratioy) frm.controls (i) .x2 = int (nwidth (i) / dratiox) else frm.controls (i) .top = int = int (NTOP (I) / Dratioy) frm.controls (i) .left = int (NLEFT (i) / dratiox) frm.controls (i) .height = int (NHEIGHT (I) / Dratioy) frm.controls (i) .Width = int (nwidth (i) / dratiox) frm.controls (i) .FONTSIZE = INT (NFONTSIZE (I) / _ Dratiox) INT (NFONTSIZE (I) / Dratiox) Mod 2 frm.controls (i). Rightmargin = int (NRIGHTMARGIN (I) / Dratioy) end if next FRM.AUTOREDRAW = NSAVEDRAW End Sub