Resize maschera

di il
4 risposte

Resize maschera

Buonasera,
sto cercando di fare un approssimativo resize di una maschera utilizzando il seguente codice:
Public function resize_form(frm As Form)
Dim RapportoX As Single, RapportoY As Single, ctr As control, txt As TextBox
RapportoX = GetSystemMetrics(SM_CXSCREEN) / 1366
RapportoY = GetSystemMetrics(SM_CYSCREEN) / 768
For Each ctr In frm.Controls
 ctr.Width = ctr.Width * RapportoX
 ctr.Height = ctr.Height * RapportoY
 ctr.Top = ctr.Top * RapportoY
 ctr.Left = ctr.Left * RapportoX
Next
For Each txt In frm.Controls
txt.FontSize = txt.FontSize * (RapportoX / RapportoY)
Next
End function
in pratica la maschera è stata realizzata su schermo dimensione 1366x768 e vorrei adattarla ad altri schermi. Solo non capisco perchè mi restituisce errore "tipo non corrispondente" nel momento in cui è richiesto di eseguire il resize dei font delle textbox.
Grazie.

4 Risposte

  • Re: Resize maschera

    Quel codice non funzionerà mai... come pensi.
    In ogni caso la seconda parte del codice, inutile in quanto dovrebbe essere inglobata nel primo ciclo, non discrimina in alcun modo le textbox, ed il fatto tu abbia usato txt non significa proprio prendere solo le textbox...
    Si deve controllare nel primo ciclo il ControlType oppure tramite TypeOf... dell'oggetto
    Ctr e se è una textbox allora applichi la formattazione del font.
    Speriamo poi tu non abbia LABEL, COMBOBOX o altri oggetti che supportano la proprietà Caption...

    Rimarrai molto deluso di quel codice soprattutto se hai SubForm o TabControl.
  • Re: Resize maschera

    Puoi provare a vedere questo mio DEMO, esageratamente più complesso, ed il motivo è tecnico.
    forum.masterdrive.it/access-79/resizing-access-65773/

    P.S. io non lo userei mai, nè questo mio metodo nè altri cioccolatini che fanno magheggi grafici, l'ho sviluppato solo a titolo di test, sono accrocchi che non metterei mai nel mio codice.
  • Re: Resize maschera

    Grazie della risposta e della demo che studierò attentamente. In effetti il mio fine era quello di capire fino dove ci si può spingere con queste cose. Proprio per questo l'ho definito un resize approssimativo.
    A conti fatti credo che la soluzione più gestibile sia quella di realizzare delle form da caricare a seconda della dimensione dello schermo.
  • Re: Resize maschera

    Assolutamente si, si realizzano 2/N applicativi a seconda della Risoluzione.
    Io ho utilizzato il mio demo per operare a DESIGN quindi SALVARE... rimane qualche cosa da sistemare ma fa il 98% del lavoro sporco.

    Poi realizzi un LAUNCHER che legge la risoluzione e lancia l'applicativo.
Devi accedere o registrarti per scrivere nel forum
4 risposte