Results 1 to 4 of 4

Thread: Set size to 640 X 480

  1. #1

    Thread Starter
    Junior Member
    Join Date
    Sep 1999
    Location
    Rock Island
    Posts
    21

    Question

    How can I set the the Height and Width properties of a form so it will fill the screen at 640 X 480 and also for 800 X 600. Or better yet a pixel/twip ratio would work.

  2. #2
    _______ HeSaidJoe's Avatar
    Join Date
    Jun 1999
    Location
    Canada
    Posts
    3,946
    ' this works
    #VBIDEUtils#************************************************************
    ' * Programmer Name : Mikhail Shmukler
    ' * Web Site : http://www.geocities.com/ResearchTriangle/6311/
    ' * E-Mail : [email protected]
    ' * Date : 13/10/98
    ' * Time : 10:24
    ' * Module Name : class_Elastic
    ' * Module Filename : Elastic.cls
    ' **********************************************************************
    ' * Comments :
    ' * This class can change size and location of controls On your form
    ' * 1. Resize form
    ' * 2. Change screen resolution
    ' * Assumes:1. Add Elastic.cls
    ' * 2. Add declaration 'Private El as New class_Elastic'
    ' * 3. Insert string like 'El.init Me' (formload event)
    ' * 4. Insert string like 'El.FormResize Me' (Resize event)
    ' * 5. Press 'F5' and resize form ....
    '
    '****************************************************************

    Option Explicit
    Private nFormHeight As Integer
    Private nFormWidth As Integer
    Private nNumOfControls As Integer
    Private nTop() As Integer
    Private nLeft() As Integer
    Private nHeight() As Integer
    Private nWidth() As Integer
    Private nFontSize() As Integer
    Private nRightMargin() As Integer
    Private 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 nRightMargin(nNumOfControls)
    On Error Resume Next
    For I = 0 To nNumOfControls
    If TypeOf frm.Controls(I) Is Line Then
    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
    nRightMargin(I) = frm.Controls(I).RightMargin
    End If
    Next

    If bWinMax Or frm.WindowState = 2 Then ' maxim
    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 Long

    On Error Resume Next
    nSaveRedraw = frm.AutoRedraw

    frm.AutoRedraw = True

    If bFirstTime Then
    bFirstTime = False
    Exit Sub
    End If

    If frm.Height < nFormHeight / 2 Then frm.Height = nFormHeight / 2

    If frm.Width < nFormWidth / 2 Then frm.Width = nFormWidth / 2
    nCaptionSize = 400
    dRatioY = 1# * (nFormHeight - nCaptionSize) / (frm.Height - nCaptionSize)
    dRatioX = 1# * nFormWidth / frm.Width
    On Error Resume Next ' for comboboxes, timeres and other nonsizible controls

    For I = 0 To nNumOfControls
    If TypeOf frm.Controls(I) Is Line Then
    frm.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(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 = nSaveRedraw

    End Sub
    "A myth is not the succession of individual images,
    but an integerated meaningful entity,
    reflecting a distinct aspect of the real world."

    ___ Adolf Jensen

  3. #3
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221
    form.move 0,0,screen.width,screen.height
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

  4. #4
    Guest
    For future refernce, the pixel/twip ratio is

    Code:
    screen.twipsperpixelx
    screen.twipsperpixely

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width