Newsgroup: it.comp.lang.visual-basic
Titolo: Riscrivere tutto per cambio risoluzione?

Salve a tutti.Ho un corposo programma in VB5 con una ventina di form zeppi
di controlli vari, progettato per una risoluzione dello schermo di 640x480.
Volendo (sarebbe ora!) mettere un monitor LCD ottimizzato a 1024x768
naturalmente i miei form risulano non occupare tutto lo schermo, e se li
ridimensiono, i controlli resteranno dove erano.
Allora, giusto per scrupolo ma senza troppe speranze, esiste un modo per
"riadattare" il "tutto" alla nuova risoluzione o devo ridisegnare uno per
uno tutti i form?
Grazie.
Giorgio

Giorgio, venerdì alle 9.47.58, ha estratto dai neuroni:

Un modo già pronto non credo.
Ma la sintassi dei file frm è una cosa banale banale.
Potresti scriverti un programmino a cui passi la cartella in cui si 
trovano i file frm originali, una cartella in cui creare le copie, poi 
il tuo softwarino fa un for each nei files, e per ogni file cerca i 
controlli che vuoi ridimensionare (il form stesso, i cmdbtn, le 
picturebox, i frame, ecc) e ne modifica Width e Heigth con una semplice 
proporzione. Poi cerca i controlli che vuoi riposizionare, e ne 
modifica top e left con la stessa proporzione.
Tempo di sviluppo: non più di un'ora.
Tempo di esecuzione: forse 5 secondi.
Alla fine, hai un progetto che, più o meno, sarà ridisegnato 
correttamente. Al che, ti guardi i singoli form e metti a posto i 
dettaglini e le cavolatine. Ma diciamo che con 3-4 ore complessive 
avrai fatto tutto. Molto meno che ridimensionare tutto a manina.
Ciao
Alberto
-- 
Ma noi no

 ha scritto nel messaggio
news:OMuWe.54$Pj5....@news4.tin.it...

Oltre al consiglio di Alberto, potresti provare qualche controllo ocx o dll
che sono sparsi per la rete. Ce ne sono moltissimi free. Prova a fare una
ricerca su Google usando le parole: controllo resize visual basic.
PS.: una volta ne ho trovato uno che non era niente male, se lo trovo te lo
invio.
Ciao, Vincenzo

 ridimensiono, i controlli resteranno dove erano.
...
Ho avuto lo stesso problema non troppo tempo fa.
Nell'evento activate del (dei) form, ho scritto poche righe di codice che
mi hanno risolto il problema.
Partendo dal form originale, mi sono memorizzato altezza e larghezza, poi
ho massimizzato il form, ho trovato la proporzione tra vecchio e nuovo,
poi con la collection Controls, ho ridimensionato (proprieta' Height e
Width), ricollocato (Top, Left, ma sarebbe piu' veloce ed efficente
lavorare con Move), e poi adattato il testo (proprieta' font.size).
Dovrai anche gestire controlli che non supportano questa o quella
proprieta', quindi... on error... 
Spero di averti dato uno spunto.
Ciao... Maurizio 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 mi hanno risolto il problema.
Le poche righe che hai scritto, sono esattamente quelle che suggerivo 
di scrivere io (ciclare su .Controls o in un file di testo, non è che 
cambi gran che). Generando nuovi .frm, però, si ha la possibilità di 
gestire la nuova grafica *dopo* il ridimensionamento, correggendo cose 
sgradevoli o casi particolari.
Il grosso vantaggio del tuo metodo, invece, è quello di potersi 
adeguare anche a altre risoluzioni, addirittura anche a formati wide.


 adeguare anche a altre risoluzioni, addirittura anche a formati wide.
...
In realta' l'ho pensato per formati "standard", pero' poi ero arrivato che
anche cambiando il rapporto tra orizzontale e verticale, avrebbe
funzionato (quasi) ugualmente. Un problema che mi viene in mente riguarda
il ridimensionamento dei caratteri.



Si, infatti mi viene lo sconforto pensando di dover riprovare i vari Font
per far entrare i giusti caratteri in Labels progettate esattamente "a
misura"! :-0
Ma credo sia inevitabile.
Grazie a tutti!
Giorgio

 misura"! :-0
...
Mah, il problema esiste solo se la risoluzione cambia da normale a wide.
Se la proporzione tra X e Y e' uguale, basta fare .Font.Size = .Font.Size
* proporzione.
E' vero che bisognerebbe testare se la "grandezza" del font supporta la
dimensione che stiamo impostando, pero' se anche la misura non fosse
supportata, si setterebbe al valore valido piu' vicino.



Si, ma in pratica, dovendo (sic!) cambiare anche i Font e riottimizzare 
tutte le distanze, ho dovuto ridisegnare tutti i form uno per uno.
Avevo trovato un SW per Resize, ma cambia solo qualcosa si qualcosa no.
Circa 1 settimana di lavoro.
Però c'è qualcosa di buono in tutto questo: ho evitato di guardare la TV e 
in campagna elettorale è un grosso vantaggio;-)
Giorgio