Newsgroup: it.comp.lang.visual-basic
Titolo: Risoluzione dello schermo

Avrei bisogno di scrivere del codice per far sì che nel momento in cui
carico un form vb si accorga del tipo di risoluzione e ridimensioni il form
in modo da mantenere le stesse proporzioni. Sembra un pb semplice ma non so
come fare soprattutto per i form che appaiono ingranditi a tutto schermo. Se
qualcuno sa come fare gradirei una risposta o sul newsgroup o in e-mail.
(Meglio sul newsgroup in modo che sia di pubblico dominio!)
Grazie Valeria.
e-mail: 
t...@trainnet.it

Ciao Vale,
la cosa è semplice. Le proprietà Screen.Width e Screen.Height ti ritornano la
larghezza e l'altezza in twips del video. Per sapere le misure in pixel dividi
per 15:
iPixelX = Screen.Width / 15   '(640, 800, 1024..)
iPixelY = Screen.Height / 15  '(480, 600, 768...)
select Case iPixelX
    case 640
        'Risoluzione 640x480
        ...
    case 800
        'Risoluzione 800x600
        ...
    ...
end select
TrainWare S.r.l. ha scritto:


 
Diventa:
iPixelX = Screen.Width / Screen.TwipsPerPixelX
iPixelY = Screen.Height / Screen.TwipsPerPixelY


Non e' sempre 15... dipende da... qualcosa, ma non ricordo
Usa le proprietà TwipsPerPixelX e TwipsPerPixelY dell'oggetto Screen per
fare le conversioni.
Cerca maggiori info nell'help
--
Roal Zanazzi
z...@iol.it

La cosa e' piuttosto complessa e lunghissima da fare.... Devi leggere
all'avvio la grandezza del form, e confrontarla (in resize) con la
grandezza che assume quando il form e' ridimensionato. A questo punto
con ridimensioni con questo rapporto tutti gli oggetti uno per uno.
Ti consiglio di far scomparire gli oggetti prima del ridimensionament,
(In una for con 300 oggetti e' logo il procedimento, ma se fai
scomparire gli oggetti e' immediata la cosa)
Ciao.
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 -----------Federico Emanuele Galli----------
 ----------Visual Basic's Programmer---------
 
 Sideralis Programs (Visual-Basic and Delphi)
 
http://www.geocities.com/colosseum/loge/2151
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
                 Trust no ONE.
Per rispondermi via E-Mail togli STOPSPAMMERS.
Guarda la RFD per it.comp.prog.collaborazione !

per 15:
  OK per il ragionamento ma fissare il valore dei twips per pixel a 15
e' errato, visto che il numero puo' essere anche 12, a seconda che tu
lavori con Large Fonts o Small Fonts, percio' nelle formule Valeria
dovrebbe utilizzare al posto del 15 Screen.TwipsPerPixelX e
Screen.TwipsPerPixelY onde rendere la routine valida per tutte le
possibilita'.
  Ciao :-)
  Massimo
  Nell'indirizzo, sostituire DIESPAMMERS con MC1258
  In the address, replace DIESPAMMERS with MC1258

...


larghezza=screen.width
Public Function CheckRez(pixelWidth As Long, pixelHeight As Long, Optional
Verbose As Boolean = True) As Boolean
On Error GoTo errhand
    CheckRez = True
    Dim lngTwipsX As Long
    Dim lngTwipsY As Long
    ' convert pixels to twips
    lngTwipsX = pixelWidth * 15
    lngTwipsY = pixelHeight * 15
    ' check against current settings
    If lngTwipsX > Screen.Width Or lngTwipsY > Screen.Height Then
'        pixelWidth = Screen.Width / 15
'        pixelHeight = Screen.Height / 15
        If Verbose Then
            MsgBox "Questa form richiede una risoluzione video di almeno " &
_
            pixelWidth & " X " & pixelHeight & " punti." & _
            vbCrLf & "La risoluzione attuale dello schermo è di " & _
            (Screen.Width / 15) & " X " & (Screen.Height / 15) & " punti.",
vbExclamation
        End If
        GoTo exitfunc
    End If
    CheckRez = False
exitfunc:
    Exit Function
errhand:
    StandardErrorHandler
End Function