L'help indica che l'aggiunta di gboGroupStyle alle ButtonOptions su un TButtonGroup "Specifica che i pulsanti devono ereditare lo stile di gruppo impostato nel contenitore." Ma questa spiegazione mi lascia ancora persi - qualche idea?In TButtonGroup.ButtonOptions cosa fa l'aggiunta di gboGroupStyle?
risposta
L'opzione gboGroupStyle
nella proprietà TButtonGroup.ButtonOptions
non ha nulla a che fare con GroupIndex
come è noto, ad es. da TSpeedButton
.
impostazione dell'opzione gboGroupStyle
-True
consente di:
- impostare la proprietà
TButtonGroup.ItemIndex
, in modo da poter predefinire il pulsante che verrà messo a fuoco come impostazione predefinita, niente di fresco - fare clic sui pulsanti con ENTER o SPACE chiavi, che genererà l'evento
TGrpButtonItem.OnClick
dell'elemento del pulsante (se assegnato), esegue la sua azione o attiva l'eventoTButtonGroup.OnButtonClicked
Sono d'accordo sul fatto che il nome sia abbastanza fuorviante, ma è quello che ho trovato nel codice sorgente di Delphi-XE2.
gboGroupStyle fa funzionare il TButtonGroup come gruppo - ciò significa che un solo pulsante è selezionato in un dato momento. È simile al raggruppamento di più TSpeedButtons con GroupIndex, in cui solo un pulsante all'interno di quel gruppo viene selezionato in qualsiasi momento. Il pulsante attualmente selezionato può essere letto e scritto tramite la proprietà ItemIndex di TButtonGroup. Per visualizzare il pulsante selezionato è possibile implementare un gestore OnBeforeDrawButton o OnDrawButton.
Non penso che questo sia corretto in quanto non esiste un concetto di "down" per un TButtonGroup. Sembra che gboGroupStyle influisca su come funziona la proprietà ItemIndex. – Alister
Sì, il "down" era in realtà inteso come metafora per quanto riguarda il riferimento TSpeedButton. L'idea è di specificare un pulsante selezionato, tuttavia che può essere visualizzato (ad es. In OnBeforeDrawButton). –
Dalla mia sperimentazione sembra che venga utilizzato gboGroupStyle, quindi la proprietà ItemIndex può essere impostata su un valore diverso da -1, in modo che TButtonGroup memorizzi l'ultimo pulsante premuto.
Mi piacerebbe molto arrivare così lontano, ma TLama potrebbe anche ottenere il rappresentante in quanto questa è la risposta più completa. Penso che con gboGroupStyle sia meglio pensare a TButtonGroup come TRadioGroup, in quanto ha un singolo oggetto selezionato. – Alister