Per altre informazioni scrivi a fabriziocaldarelli@negusweb.it
Libreria per il ridimensionamento automatico dei controlli in Visual Basic
Da Programmazione Software.
Descrizione
La mancanza di un layout manager in Visual Basic è un problema sentito. Proprio per questo ho deciso di realizzare un mio sistema di layout manager. Per far questo i requisiti dovevano essere i seguenti:
- Semplice integrazione nel progetto;
- Facilità di utilizzo;
- Possibilità di definire i singoli caratteri di ogni ridimensionamento di ogni controllo;
- Possibilità di aggregare più controlli per definire un singolo carattere di ridimensionamento per tutti i controlli contenuti.
Per soddisfare il punto uno ho realizzare una libreria costituita da tre classi, che per ora si possono inserire nel progetto semplicemente integrando i tre .cls nel progetto. Ancora non ho realizzato una .dll che li contenesse. Per poter utilizzare questa libreria è sufficiente che definiate i caratteri del ridimensionamento di ogni singolo controllo o di gruppi di controlli inseriti in un frame. Infatti tutti i controlli che vengono "registrati", vengono inseriti in un vettore insieme ai caratteri del ridimensionamento che dovranno essere applicati, come richiesto. Vediamo, nella pratica, come utilizzare questa libreria:
1. inserite nel progetto la classe clsRidimensionamento.cls, che contiene tutte le routine che vengono chiamate quando scatta l'evento form_resize;
2. inserite nel progetto la classe clsFormaControllo.cls, che contiene la classe per ridefinere ogni carattere di ridimensionamento del controllo;
3. inserite nel progetto la classe clsDimensioniControllo.cls, che contiene gli attributi che definiscono dimensioni e posizione del controllo;
4. inserite nel progetto il modulo modEnumRidimensionamento.bas, che contiene le modalità di ridimensionamento del controllo a cui gli si applicano.
5. inserite nel form (Form1) un controllo textbox (Text1);
6. Nel codice di Form1, dichiarate una variabile di tipo clsRidimensionamento, ad esempio: Dim ridimensionamento as clsRidimensionamento
7. All'interno della form_load di Form1 chiamate il metodo call ridimensionamento.registraForm(me) che registra il riferimento della form di cui i controlli fanno riferimento.
8. Ora, per registrare i caratteri del ridimensionamento che deve avere ogni singolo controllo, chiamare il metodo registraControllo, con i seguenti parametri: riferimento del controllo; modalità di ridimensionamento del controllo; modalità di ridimensionamento del controllo oltre il minimo.
Le modalità di ridimensionamento del controllo sono:
- MOVE_LEFT: Si sposta in un verso o nell'altro in direzione orizzontale come e quanto il form;
- MOVE_TOP: Si sposta in un verso o nell'altra in direzione verticale come e quanto il form;
- NIENTE: Non subisce alcun spostamento o ridimensionamento;
- PROPORZIONI_LEFT: La posizione orizzontale cambia proporzionalmente al ridimensionamento del form;
- PROPORZIONI_TOP: La posizione verticale cambia proporzionalmente al ridimensionamento del form;
- RESIZE_WIDTH: La dimensione orizzontale del controllo cambia come e quanto la variazione di dimensione orizzontale del form;
- RESIZE_HEIGHT: La dimensione verticale del controllo cambia come e quanto la variazione di dimensione verticale del form;
La modalità di ridimensionamento oltre limite minimo sono le stesse del ridimensionamento normale, tranne per il fatto che vengono prese in considerazione quando il form assume delle dimensioni inferiori a quelle iniziali.
9. Se si vogliono ridimensionare allo stesso modo un gruppo di controlli, possono essere inseriti in un frame ed utilizzare il metodo registraControlliFrame che accetta 3 parametri:
Riferimento del controllo Frame; Modalità di ridimensionamento dei controlli; Modalità di ridimensionamento del frame; Solitamente le due modalità di ridimensionamento sono le stesse.

