Newsgroup: it.comp.lang.visual-basic
Titolo: Ridimensionamento webbrowser

Ho un problema nel ridimensionare il controllo Webbrowser. In sostanza
questa funzione, non mi dà alcun risultato... qualcuno di voi sa dirmi il
perché?
Private Sub frmBrowser_Resize()
  WebBrowser1.Width = frmBrowser.Width / 1.037
  WebBrowser1.Height = frmBrowser.Height / 1.823
End Sub
un grazie anticipato a tutti coloro che risponderanno
--
Fabio Ruini
(
fabi...@libero.it
)
"Non si può descrivere la passione, la si
può soltanto vivere" (Enzo Ferrari)


A parte il fatto che qui divisori mi sembrano un po' strani, qual e' il
risultato che ti aspetti ? Il webbrowser, poverino, fa quello che gli
ordini.
Ciao
Aldo

 ha scritto nel messaggio
news:90oss3$1plrd$1...@ID-56381.news.dfncis.de...



Se chiedere spiegazioni su cio' che non si capisce e' essere arroganti
allora si', sono arrogante e me ne vanto.
Aldo

 ha scritto nel messaggio
news:90pc38$1trem$1...@ID-56381.news.dfncis.de...


 cui lo fai che lo fa apparire veramente arrogante.
Rispondo in parallelo all' altro msg che ho trasmesso poco fa:
Scusa se il mio modo di fare puo' apparire arrogante. In realta' il piu'
delle volte tento di osservare le cose dal lato umorististico, una specie di
"avviamo il pensiero laterale".
E' chiaro poi che, purtroppo, non tutte le ciambelle escono col buco.
Senza polemica, credimi, prova a rileggere il tuo post iniziale e dimmi che
cosa si capisce:
--- inizio estratto:
In sostanza questa funzione, non mi dà alcun risultato... qualcuno di voi sa
dirmi il perché?
--- fine estratto
Nel tuo post non e' scritto da nessuna parte qual era il risultato atteso,
sicche' avevo davanti due strade:
1) ignorare il post (come faccio ormai quasi sempre con i subject
indecenti);
2) chiedere spiegazioni (in questo caso, non sono uno psicologo, ma uno che
si spaccia per programmatore).
Spero che quanto scritto possa spianare il rapporto.
Ciao
Aldo

ok, allora proverò umilmente a chiedere scusa a tutti...
quello che vorrei fare con la procedura, é che al ridimensionamento manuale
del form (fatto dall'utente tramite il mouse, per esempio) corrispondesse
automaticamente il ridimensionamento dell'oggetto webbrowser. In sostanza,
all'aumento o dimunizione di larghezza o altezza del form, dovrebbe
corrispondere un proporzionale aumento o diminuzione della larghezza o
dell'altezza dell'oggetto webbrowser.


 dell'altezza dell'oggetto webbrowser.
La soluzione, suggerita da Luca, con la lettura delle dimensioni dell' area
client del form:
Private Sub frmBrowser_Resize()
 WebBrowser1.Width = frmBrowser.ScaleWidth / 1.037
  WebBrowser1.Height = frmBrowser.ScaleHeight / 1.823
End Sub
ti garantisce una variazione *proporzionale*.
Si potrebbe anche scrivere in maniera piu' efficiente con
Private Sub frmBrowser_Resize()
    If WindowState <> vbMinimized Then
            ' fa il resize solo quando serve, cioe' quando l'utente vede
            ' usa il metodo Move perche' piu' efficiente di una doppia
chiamata
            With WebBrowser1
                    .Move = .Left, ,  _
                                    Me.ScaleWidth,  _
                                    Me.ScaleHeight / 2
            End With
    End If
End Sub
Eliminerei quei numeri fissi che avevi messo, dato che mi sembrano un
workaround per tener conto delle differenze fra la larghezza e l' altezza
complessive del form e le dimensioni del suo bordo e  della barra del titolo
e dell' eventuale menu (dimensioni che possono peraltro essere modificate
dall' utente attraverso l' applet delle proprieta' dello schermo).
Ho sostituito frmBrowser con Me perche' se, invece di chiamare direttamente
frmBrowser, se ne utilizzano una o piu' istanze allora il codice non
funziona piu' .
Il motivo e' che, invece di riferircisi all' istanza di *quel* frmBrowser,
ci si riferisce ad un ipotetico frmBrowser mai caricato prima e caricato
giusto automaticamente con la lettura delle dimensioni che, ovviamente, sono
quelle fissate a design time e non quelle che *vede* l' utente.
hth
Ciao
Aldo

 End Sub
mi inserisco solo per una questione di stile personale:
di solito faccio
sub resize
    if windowstate = 1 then exit sub
    ...
end sub
e' circa lo stesso, ma piu' a sinistra sta il codice meglio sto.
sbaglio ?

 sbaglio ?
MHO di tipo generale, applicabile non solo al windowstate:
1) Dal punto di vista del risultato immediato e' sicuramente corretto.
2) Dal punto di vista della leggibilita' per tutti e sempre nel tempo,
concedimi qualche riserva:
Es. spicciolo:
Me.MousePointer = 6
vs
Me.MousePointer = vbSizeNESW
oppure:
MyAdoConnection.Mode = adModeShareDenyNone
vs
MyAdoConnection.Mode = 16  '&H10
oppure:
rsRecordset.Open sql, cn, adOpenDynamic, adLockBatchOptimistic,
adDelayFetchStream
vs
rsRecordset.Open sql, cn, 2, 4, &H4000
o, peggio:
rsRecordset.Open sql, cn, 2, 4, 16384
Dal punto di vista della evoluzione del codice, se mai un giorno si dovesse
avere bisogno di cambiare il valore della costante ...
Ciao e buona domenica
Aldo

 avere bisogno di cambiare il valore della costante ...
scusa mi sono spiegato male. il punto non era la costante, quanto l'if.
il tuo codice racchiude le istruzioni dentro l'_if not_, il mio schizza
fuori _if_.
tutto li'.
ciao, a.

 tutto li'.
Come al solito, anch'io sono stato molto attento a leggere ... :-)
Si', in quel caso, visto che comunque nel caso di minimize quasi sicuramente
non avrei avuto altro da fare, penso anch' io che convenisse uscire subito e
mantenersi, quindi, piu' a "sinistra".
Ciao
Aldo