Mangiare Senza Glutine disponibile su App Store

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.

Allegati