Newsgroup: it.comp.lang.delphi
Titolo: webbrowser ridimensionabile

Buonasera!
Utilizzo sul mio form un componente webbrowser che contiene un testo 
formattato e dotato di background. Avrei bisogno che l'applicazione di cui 
fa parte anche il mio form sia ridimensionabile a diverse risoluzioni video 
(viene distribuita su cd-rom), per questo motivo tutti i controlli che ho 
messo sui form sono posti su componenti Panel opportunamente ancorati. Nel 
caso della webbrowser però il "trucco" non funziona. La finestra viene 
ingrandita aumentando la risoluzione del video, ma il suo contenuto ed in 
particolare il background rimane della dimensione originale. Mi sembra una 
cosa ovvia. Ma allora qual'è la strada da seguire per ottenere il risultato 
sperato?
Grazie per l'aiuto!

 ottenere il risultato sperato?
Non è ben chiaro come dovrebbe comportarsi il contenuto del Web Browser, 
anche se credo che la soluzione vada ricercata nell'adottare qualche 
"accrocchio" nel file HTML caricato. :-/
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

vicky ha scritto:

Ciao,
Credo, come suggeriva marco, che tu debba cambiare quanto visualizzato 
dal webbrowser e non soltanto il contenuto di quest' ultimo. Potresti 
provare a scrivere diverse pagine HTML da usare per le diverse risoluzioni.
ZioGian

 ZioGian
Nel caso in cui decidessi di scrivere  pagine in html diverse a seconda 
della risoluzione( invece di progettare una pagina unica con layout 
ridimensionabile tramite opportuni accorgimenti) come farei poi a 
richiamarle da delphi a seconda della risoluzione dello schermo presente? 
Grazie! 

 Grazie! 
La risoluzione devi determinarla tramite uno script in linguaggio 
JavaScript all'interno della pagina, usando appositi oggetti e le 
relative proprietà.
Il mio suggerimento è quello di sfruttare le capacità dei fogli di stile 
per determinare la visualizzazione del tuo contenuto, impostando la 
posizione degli elementi sulla pagina, le dimensioni dei caratteri, le 
immagini di sfondo, l'allineamento e la ripetizione degli sfondi stessi, 
disponendo tutto in modo indipendente dalla soluzione.
Non mi è possibile fornire un esempio azzeccato in quanto non conosco 
con precisione quali sono gli elementi che vuoi inserire all'interno di 
questa pagina, ad ogni modo cercando su siti di "Web Publishing" e "CSS 
Design", trovi facilmente come realizzare layout a due, tre o più 
colonne e così via.
Ciao,
   Marco.



Ho usato un'altro sistema per richiamare pagine a risoluzione diversa dal 
mio applicativo. Ecco il codice:
procedure TForm.FormCreate(Sender: TObject);
var
  HTMLPath1024:string;
  HTMLPath800:string;
begin
    HTMLPath800:=ExtractFilePath(Application.ExeName) + 
'HTML\versione800.htm';
    HTMLPath1024:=ExtractFilePath(Application.ExeName) + 
'HTML\versione1024.htm';
    If screen.Width = 800 then
         WebBrowser1.navigate(HTMLPath800)
   else
         WebBrowser1.navigate(HTMLPath1024)
  end;
Questo sistema funziona bene, ma siccome sono solo agli inizi e non mi č 
stato proposto come alternativa, mi chiedevo se posso andare incontro a 
problemi che in questo momento non vedo. Grazie !

 problemi che in questo momento non vedo. Grazie !
Potrebbe essere una soluzione valida quella di proporre una versione 
differente della pagina da visualizzare in base alla dimensione, anche 
se poi dovrai fare in modo che ciascuna pagina, benchè legata ad una 
determinata soluzione, sia visualizzata correttamente anche nel caso in 
cui sia presente una risoluzione diversa o intermedia tra le due, o 
comunque garantire che questa non presenti difetti eclatanti.
Ti basta comunque rendere temporaneamente ridimensionabile la finestra 
su cui lavori, o provare con un semplice browser, per verificare il 
risultato al volo.
