Newsgroup: it.comp.appl.access
Titolo: Ma voi come ridimensionate i form ?

Ho postato qualche giorno fà un msg relativo ai problemi di
ridimensionamento form e controlli. Suppongo che sia un problema comune a
tutti quelli che sviluppano e vendono le loro applicazioni: sviluppate a
casa vostra con un monitor da 17" a 1024x768 e poi quando lo portate dal
cliente che ha un monitor 15" a 800x600 come fate a dimesionare le maschere
ed i controlli ?
Io ho provato la procedura presente sul sito comune ma ha qualche problemino
(lentezza ed altro). Ho cercato su internet ma tutto quello che ho trovato
(anche su consiglio del mitico Karl in un post del 18/05/2000) è a pagamento
e ora sono nello sconforto più assoluto.
Ringrazio chiunque sappia aiutarmi.
Aloa    Mattia

 Aloa    Mattia
RoDAgo

è un problema che ho anch'io



 ed i controlli ?
Una volta ho avuto la necessità di qualcosa di simile e, sfruttando una
routine presente sul sito comune, ho scritto in un modulo quanto segue:
Private Declare Function apiGetSys Lib "user32" _
    Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const SM_CXVSCROLL = 2
Private Const SM_CYHSCROLL = 3
Private Const SM_CYCAPTION = 4
Private Const SM_CXBORDER = 5
Private Const SM_CYBORDER = 6
Private Const SM_CXDLGFRAME = 7
Private Const SM_CYDLGFRAME = 8
Private Const SM_CYVTHUMB = 9
Private Const SM_CXHTHUMB = 10
Private Const SM_CXICON = 11
Private Const SM_CYICON = 12
Private Const SM_CXCURSOR = 13
Private Const SM_CYCURSOR = 14
Private Const SM_CYMENU = 15
Private Const SM_CXFULLSCREEN = 16
Private Const SM_CYFULLSCREEN = 17
Private Const SM_CYKANJIWINDOW = 18
Private Const SM_MOUSEPRESENT = 19
Private Const SM_CYVSCROLL = 20
Private Const SM_CXHSCROLL = 21
Private Const SM_DEBUG = 22
Private Const SM_SWAPBUTTON = 23
Private Const SM_RESERVED1 = 24
Private Const SM_RESERVED2 = 25
Private Const SM_RESERVED3 = 26
Private Const SM_RESERVED4 = 27
Private Const SM_CXMIN = 28
Private Const SM_CYMIN = 29
Private Const SM_CXSIZE = 30
Private Const SM_CYSIZE = 31
Private Const SM_CXFRAME = 32
Private Const SM_CYFRAME = 33
Private Const SM_CXMINTRACK = 34
Private Const SM_CYMINTRACK = 35
Private Const SM_CXDOUBLECLK = 36
Private Const SM_CYDOUBLECLK = 37
Private Const SM_CXICONSPACING = 38
Private Const SM_CYICONSPACING = 39
Private Const SM_MENUDROPALIGNMENT = 40
Private Const SM_PENWINDOWS = 41
Private Const SM_DBCSENABLED = 42
Private Const SM_CMOUSEBUTTONS = 43
Private Const SM_CMETRICS = 44
Public Function AdattaAVideo(f As Form) As Boolean
    On Error Resume Next
    Dim risp, rapporto As Double, fsize As Integer
    Dim ctl As Control
    risp = Val(fGetSysStuff("resolution"))
    rapporto = risp / 640
    For Each ctl In f.Controls
      ctl.Height = ctl.Height * rapporto
      ctl.Width = ctl.Width * rapporto
      ctl.Top = ctl.Top * rapporto
      ctl.Left = ctl.Left * rapporto
      fsize = ctl.FontSize * rapporto
      risp = DMax("DimCarat", "T_DimensioniCaratteri", "[DimCarat] <= val("
& fsize & ")")
      ctl.FontSize = risp
    Next
End Function
Function fGetSysStuff(strWhat As String) As String
' ritorna con "resolution" la risoluzione dello schermo
' ritorna con "windowsize" la dimensione massima ottenibile in finestra
Dim strRet As String
    Select Case LCase(strWhat)
        Case "resolution": strRet = apiGetSys(SM_CXSCREEN) & "x" _
                                        & apiGetSys(SM_CYSCREEN)
        Case "windowsize": strRet = apiGetSys(SM_CXFULLSCREEN) & "x" _
                                        & apiGetSys(SM_CYFULLSCREEN)
    End Select
    fGetSysStuff = strRet
End Function
Uso: nell'evento su apertura della form progettata in 640x480 lancio la
funzione AdattaAVideo(Me).
Per questioni estetiche, è necessario provvedere alla creazione di una
tabella T_DimensioniCaratteri contenente un campo DimCarat riempito con
tutti i valori possibili rappresentati dalle dimensioni in punti dei font
utilizzati.
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 ha scritto nel messaggio
news:96u8ek$k9k$1...@pegasus.tiscalinet.it...

Lo sconforto ero solo relativo al fatto che non sono in grado di risolverlo
da solo e mi sento un po merdaccia :-)
Comunque mi sa proprio che comprerò qualche cosa. Voi che ne dite: ocx, mde,
dll ??? Cosa compero ?
Aloa e grazie ancora                Mattia


Grazie 1000 dell'aiuto. Solo una domanda che mi è balzata alla mente
rileggendo il mio post: questa procedura deve essere utilizzata su
dimensioni fisse delle form cioè non ridimensiona i controlli nel momento in
cui con il mouse ridimensiono la mia finestra ?
Aloa                    Mattia

 ha scritto nel messaggio
news:jjMk6.12778$_N1.3...@news.infostrada.it...

Esatto. Quella era una traccia, lascio alla tua fantasia il resto...
--


