Autore Topic: [RISOLTO] Replicare gruppo di controlli  (Letto 1051 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #15 il: 11 Aprile 2020, 15:34:40 »
Grazie Cogier

Codice: [Seleziona]
    HBOxes[iCount - 1].Delete
    HBOxes.Pop

il pezzo che mi mancava

 :ok:
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #16 il: 12 Aprile 2020, 09:38:09 »
Da cosa nasce cosa
il form ha dimensioni predefinite, ma se si volesse ridimensionarlo in funzione del contenuto?
ho giocato con autoresize ed expand, ma non ottengo cio che desidero

buona pasqua

EDIT:
cose strane
con la proprieta autoresize di VBoxctrl su true ogni volta che premo  al suo interno non vedo nulla
Se setto expand su true ogni volta che premo + VboxCtrl si accorcia, cioè la proprietà height diminuisce
« Ultima modifica: 12 Aprile 2020, 10:06:05 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #17 il: 12 Aprile 2020, 10:07:21 »
Dopo un po di prove ho concepito una cosa del genere
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #18 il: 12 Aprile 2020, 14:07:13 »
Vedi allegato
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #19 il: 13 Aprile 2020, 08:18:58 »
Grazie Gianluigi
quindi è la proprietà Spacing che deve essere true
il resto del codice è molto piu semplice e funzionale
toglimi una curiosità
nella textbox la proprietà expand su true? 
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #20 il: 13 Aprile 2020, 11:23:22 »
Grazie Gianluigi
quindi è la proprietà Spacing che deve essere true
il resto del codice è molto piu semplice e funzionale
toglimi una curiosità
nella textbox la proprietà expand su true?

Expand sulla textbox è solo per farti vedere che la TextBox occupa tutto lo spazio rimanente, in questo caso, trattandosi di arrangment orizzontale, quello in larghezza.
Era solo come dimostrazione.
I contenitori che normalmente influiscono sui controlli figli, se posti ad autoresize vengono invece influenzati da essi, l'autoresize della form occorre usarlo con attenzione e usare la proprietà expand per la text può essere dannoso oltre a portare a un layout poco piacevole se posti il resto dei controlli di HBox ad autoresize.
Se distribuisci la tua applicazione, occorrerebbe sempre fare le prove con dei font di diverso formato e vedere dove e come intervenire.
Ad esempio in questo caso si potrebbe provare a dare ai controlli interni le corrette misure atte a contenere tutti i dati con il font corrente, porre gli HBox su autoresize e ottenere dal font un fattore di proporzione che andrà a moltiplicare l'altezza e la larghezza dei controlli (Print Me.Font.Size).
Potrebbe essere anche più semplice porre tutto su autorezize tranne le textbox che non ce l'hanno dandogli delle misure molto abbondanti tenendo conto di possibili utenti ipovedenti o usare solo li il fattore di proporzione.
Un'ultima cosa, la proprietà padding nel caso di autoresize dei controlli può essere molto utile, provala magari a 5.

Ammesso che questo pistolotto abbia una morale o solo un senso questo è: fai molte prove sul disegno della finestra prima di iniziare a scrivere codice altrimenti potresti pentirti.

 :sleepy:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #21 il: 13 Aprile 2020, 17:24:35 »
Allego un progetto esplicativo di quanto detto sopra.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #22 il: 15 Aprile 2020, 12:23:39 »
Funziona bene
quindi trovi il font ottimale per l'applicazione e ridimensioni tutto con un fattore proporzionale a quello ideale
Con quest'ultima penso di aver avuto tute le informazioni necessarie

Grazie a tutti
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #23 il: 15 Aprile 2020, 14:37:36 »
quindi trovi il font ottimale per l'applicazione e ridimensioni tutto con un fattore proporzionale a quello ideale

Tanto per essere ancora più chiari, impostando una finestra con Autoresize = True e Resizable = False,  tu dai alla finestra un'impostazione rigida anche se questa (qui) si adatta a tutti i vari temi con relative misure.
Piccola divagazione,  come ben sai ci sono alcuni utenti che hanno temi particolari, in Linux sono molto in voga i temi dark e allora cambiare i colori non è mai cosa saggia perché potresti trovarti con un colore chiaro su sfondo chiaro o viceversa, a meno che non usi colori generici per tutti i cambiamenti tipo LightBackground, ButtonForeground ecc.

Stessa cosa vale per le misure, una data misura in altezza e larghezza di un controllo che sul tuo desktop contiene benissimo quanto deve essere li immesso potrebbe risultare insufficiente se un tuo utente usa un tema personalizzato con caratteri più grandi, magari in grassetto ecc. Anche viceversa se usa caratteri molto piccoli perché, beato lui, ha una vista da aquila.

Quindi, in questo caso specifico (finestra che si auto imposta rigidamente) per essere sicuro che il tuo utente veda bene tutto come vedi tu, occorre dare ai controlli uno spazio sufficiente anche al grassetto e poi proporzionare in base alle misure del carattere da lui usato.

Il fattore lo ottieni dividendo la dimensione del suo carattere con il valore della dimensione del tuo.

Ricorda che qui parliamo di una finestra che si adatta ai suoi controlli, mentre di norma è l'opposto.

Ci vuole un po ad abituarsi al comportamento dei vari contenitori e all'influenza che essi hanno sugli altri contenitori e sui controlli in base a come vengono impostati.
Un buon sistema per imparare è quello si dare colori diversi ai contenitori e ai controlli e poi cambiando le varie impostazioni vederne il comportamento.

Siamo in Linux non in Windows e ogni tema ha impostazioni diverse se vuoi che io veda le tue finestre esattamente come le vedi tu non hai altra strada che questa.

Sia chiaro che anch'io sto imparando  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro