2010-10-01 16 views
14

Voglio usare Delphi's 2009 TGridPanel, ma non capisco come usarlo correttamente.Delphi Come usare TGridPanel

Ad esempio, voglio avere un GridPanel con 4 colonne che dovrebbero avere il 25% percento della larghezza di GripPanels.

Così ho inserito un GripPanel nel modulo e aggiunto 4 ColumnItems. Io do gli articoli della colonna SizeStyle ssPercent, e ora provo a dare a ogni ColummItem un valore di 25 (ober l'ispettore dell'oggetto). Ma per alcuni motivi l'ispettore dell'oggetto non accetta il valore 25. Viene automaticamente modificato in qualcosa come '23, 8095238095238 '. Qualcuno potrebbe spiegarmi in breve come utilizzare questi componenti? Grazie!

risposta

13

Quando si imposta Value di una colonna con SizeStylessPercent, il componente distribuisce la nuova somma di tutte le colonne in stile ssPercent per la percentuale totale disponibile. Ad esempio, se hai 4 colonne al 25% e ne imposti una per il 50%, ora hai un totale del 125%. Il componente calcola 'Valore di nuovo per avere il totale distribuito proporzionalmente, cioè 50% -> 40% (100 * 50/125).

Per impostare il valore di più di una colonna alla volta, in fase di esecuzione si circonda il codice con GridPanel.ColumnCollection.BeginUpdate e GridPanel.ColumnCollection.EndUpdate.

E in fase di progettazione modificare direttamente lo .dfm. Premi "Alt + F12" mentre stai visualizzando il modulo nell'editor di progettazione, trova GridPanel nell'editor di testo, modifica il valore delle colonne e premi di nuovo "Alt + F12" per tornare alla vista di progettazione.

+0

Grazie, funziona! Nota: dopo aver rilasciato un GridPanel nel modulo e aver eliminato le righe e le colonne in fase di progettazione, queste righe e colonne esistono ancora in fase di esecuzione e devi eliminarle manualmente. Un po 'strano – flinkiy1

+0

Oppure puoi selezionare tutte e 4 le colonne e scrivere 25 nella finestra di ispezione oggetto – VitaliyG

+0

@Vitaliy - Non è più facile che selezionare tutto 4 e quindi digitare 0, che è coperto nella risposta di Uwe. La mia risposta, piuttosto, è utile se non hai intenzione di distribuire equamente le larghezze. Naturalmente puoi anche farlo ma, in effetti, altre alternative sono migliori. –

14

Se si desidera impostare tutte le colonne sullo stesso valore, selezionare tutte le colonne nella vista struttura e quindi (supponendo che SizeStyle sia già impostato su ssPercent) impostare il valore su . Ciò attiverà un automatismo che rende tutte le colonne di dimensioni uguali.