Newsgroup: it.comp.appl.access
Titolo: maschere e risoluzione schermo

Qualcuno puņ farmi un esempio su come ridimensionare tutti i controlli di
una form
in base alla risoluzione impostata?
Grazie
  Gianni

 ha scritto nel messaggio
news:iol58.2482$EB4....@twister1.libero.it...

www.sitocomune.com
Ciao.
--
Sergio MAZZA

Ciao.
Option Compare Database
Global width As Single
Global height As Single
Type Dati
   top As Single
   left As Single
   width As Single
   height As Single
   fontsize As Single
   columnsize As String
   listwidth As Single
End Type
Type Scheda
   name As String
   width As Single
   height As Single
   section_height(4) As Single ' altezza delle sezioni
   count As Integer ' numero di oggetti
   Info() As Dati ' contiene le informazioni sugli oggetti
End Type
Dim elenco() As Scheda
Global QuanteForm As Integer
Function SetScale(f As Form)
   Dim i As Integer
   Dim cont As Integer
   cont = 0
   While cont < QuanteForm
      If elenco(cont).name = 
f.name
 Then GoTo Modifica
      cont = cont + 1
   Wend
   cont = QuanteForm
   QuanteForm = QuanteForm + 1
   ReDim Preserve elenco(QuanteForm) As Scheda
Modifica:
   elenco(cont).name = 
f.name
   elenco(cont).width = f.InsideWidth
   elenco(cont).height = f.InsideHeight
   On Error Resume Next
   For i = 0 To 4
      elenco(cont).section_height(i) = f.Section(i).height
   Next
   On Error GoTo 0
   elenco(cont).count = f.count
   ReDim elenco(cont).Info(f.count) As Dati
   For i = 0 To f.count - 1
      On Error Resume Next
      elenco(cont).Info(i).top = f.Controls(i).top
      elenco(cont).Info(i).left = f.Controls(i).left
      elenco(cont).Info(i).width = f.Controls(i).width
      elenco(cont).Info(i).height = f.Controls(i).height
      elenco(cont).Info(i).fontsize = f.Controls(i).fontsize
      If f.Controls(i).ControlType = acListBox Or
f.Controls(i).ControlType = acComboBox Then
         elenco(cont).Info(i).columnsize = f.Controls(i).ColumnWidths
      End If
      If f.Controls(i).ControlType = acComboBox Then
         elenco(cont).Info(i).listwidth = f.Controls(i).listwidth
      End If
      On Error GoTo 0
      If f.Controls(i).ControlType = acSubform Then
         SetScale f.Controls(i).Form
      End If
   Next i
End Function
Function Min(a As Single, b As Single) As Single
   If a < b Then Min = a Else Min = b
End Function
Function Rescale(f As Form)
   Dim c, i As Integer
   Dim ratiox, ratioy, ratio As Single
   i = 0
   While i < QuanteForm
      If elenco(i).name = 
f.name
 Then
         ratiox = f.InsideWidth / elenco(i).width
         ratioy = f.InsideHeight / elenco(i).height
         If ratiox < ratioy Then
            ratio = ratiox
            'f.InsideHeight = elenco(i).height * ratio
         Else
            'If (f.RowHeight <> -1) Then
            ratio = ratioy
            'Else
            ' ratio = ratiox
            'End If
            'f.InsideWidth = elenco(i).width * ratio
         End If
         If ratio < 0 Then ratio = 0
         If f.RowHeight <> -1 Then f.RowHeight = f.RowHeight * ratio
         On Error Resume Next
         For c = 0 To 4
            f.Section(c).height = elenco(i).section_height(c) * ratio
         Next c
         On Error GoTo 0
         For c = 0 To f.count - 1
            f.Controls(c).width = elenco(i).Info(c).width * ratio
            f.Controls(c).height = elenco(i).Info(c).height * ratio
            On Error Resume Next
            f.Controls(c).top = elenco(i).Info(c).top * ratio
            f.Controls(c).left = elenco(i).Info(c).left * ratio
            f.Controls(c).fontsize = elenco(i).Info(c).fontsize *
ratio
            On Error GoTo 0
            If f.Controls(c).ControlType = acListBox Or
f.Controls(c).ControlType = acComboBox Then
               If elenco(i).Info(c).columnsize <> "" Then
                  Dim tmp As String
                  Dim nuovo As String
                  Dim col As String
                  Dim pos As Integer
                  tmp = elenco(i).Info(c).columnsize & ";"
                  pos = InStr(1, tmp, ";")
                  nuovo = ""
                  While pos > 0
                     nuovo = nuovo & Format(Val(left(tmp, pos)) *
ratio) & ";"
                     tmp = Right(tmp, Len(tmp) - pos)
                     pos = InStr(1, tmp, ";")
                  Wend
                  f.Controls(c).ColumnWidths = nuovo
               End If
            End If
            If f.Controls(c).ControlType = acComboBox Then
               f.Controls(c).listwidth = elenco(i).Info(c).listwidth *
ratio
            End If
            If f.Controls(c).ControlType = acSubform Then
               Rescale f.Controls(c).Form
            End If
         Next c
         Exit Function
      End If
      i = i + 1
   Wend
   Beep
   MsgBox ("Errore: inserire una chiamata a Setscale ME nella routine
evento Su Apertura")
End Function
Saluti.
Emanuele.

 ha scritto nel messaggio
news:6jtd5uo8129gmheij...@4ax.com...


> Qualcuno puň farmi un esempio su come ridimensionare tutti i controlli di


 
Allora ti devi spiegare meglio, perchč i CAMPI nelle FORM non ci sono.
I CAMPI sono quelle "COSE" che trovi solo nelle Tabelle e Query, quindi
cosa ridimensioni in relazione alla Risoluzione attuale...????????
Proprio non capisco quello che ti serve...!
Alessandro
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:67bb7c40fc7c30ebfc...@mygate.mailgate.org...


 
Mah....!!!
Vedi post successivo.(Auguri)
Alessandro.


 Ho sbagliato, parlavo dei controlli nelle maschere.
Ma soprattutto, non scrivo DOPO il quoting!!!
Antonio