PDA

Visualizza la versione completa : [delphi] bottoni di una toolbar


Mat24
29-06-2004, 13:32
salve ragazzi,
sto aggiungendo dei bottoni creati a run-time ad una toolbar. I bottoni sono di tipo TToolButton. L'inserimento avviene sempre allineato a sinistra, ovvero un eventuale bottone precedentemente inserito viene spostato verso destra. Mi sapete dire se ce un modo per aggiungere il nuovo bottone alla destra di quelli già inseriti???

Grazie, ciao. M. :ciauz:

alka
29-06-2004, 16:09
L'effetto collaterale che denunci è dovuto al fatto che la posizione assunta da un pulsante dipende innanzitutto dalla sua posizione espressa dalle proprietà Left e Top, più che dalla posizione di inserimento.

Se ti limiti a creare i ToolButton dinamicamente senza definire il valore della proprietà Left, ciascun pulsante assumerà la posizione ideale per la coordinata 0 (zero), che è il valore predefinito di Left, pertanto verrà messo all'inizio, e così via per tutti gli altri pulsanti.

L'alternativa che hai è quella di generare i pulsanti in ordine inverso oppure attribuire un valore di Left alla proprietà che sia sufficientemente grande per garantire che il pulsante venga posto all'estrema destra dei pulsanti esistenti, indipendentemente dal loro numero.

Ad esempio, potresti definire la proprietà Left attribuendole questa espressione:


ToolButton.Left := (ToolBar.ButtonCount * ToolBar.ButtonWidth);

In questo modo, garantirai che il pulsante sia posizionato all'estrema destra, anche se addirittura la toolbar non dovesse essere completamente visibile, ad esempio perchè troncata dalla finestra di dimensioni più ridotte rispetto ad essa.

Spero di averti chiarito la problematica.

Ciao! :ciauz:

Mat24
29-06-2004, 16:52
Grazie Alka,

avevo pensato anch'io ad una soluzione di questo tipo solo che mi preoccupava la presenza di divisori nel calcolo della larghezza totale. Ho però notato che anche se eccedo oltre la dimesione totale il nuovo pulsante viene comunque posto accanto all'ultimo...e dunque mi ponevo il problema inutilmente. Pensavo comunque che ci fosse un metodo che lo facesse automaticamente, visto che quando inserisco i bottoni a design time vengono automaticamente allineati a dx.

Ti ringrazio per avermi chiarito le idee..a presto, M. :ciauz:

Loading