In Delphi, hai diverse modalità per allineare controlli ad un form usando la proprietà Align.
I valori della proprietà Align definiscono a quale bordo del controllo contenitore (Parent) devono essere allineati i controlli.
Escludiamo i valori diversi da alNone (da escludere poichè non viene allineato) e alClient (che permette al controllo di espandersi fino ad occupare l'intero spazio disponibile).
Quando si allineano i controlli usando alLeft, alTop, ecc. esegui un ancoraggio del controllo sul bordo; se esistono altri controlli con la stessa impostazione, puoi trascinarli per definire quale di essi sia il "prioritario".
Tuttavia, per ottenere certi layout complessi, devi suddividere la tua form in aree usando più pannelli del necessario.
Ad esempio, supponi di voler ottenere una form in cui è presente un'area superiore di larghezza fissa e un'area inferiore di dimensioni variabili a seconda della dimensione del form e suddivisa a sua volte in altre due parti, separate verticalmente, di cui una ha dimensioni fisse e l'altra ha dimensioni che si adattano all'area contenitrice che, a sua volta, si adatta all'area del form.
In questo caso, non puoi usare solo 3 pannelli, ma dovrai inserirne 4: il primo in alto allineato ad alTop, il secondo nella parte rimanente del form allineato ad alClient (in modo che si autoadatti). Nel pannello inferiore andranno poi inseriti altri due pannelli, uno allineato ad alLeft (a sinistra) e il secondo nello spazio rimanente allineato ad alClient.
Fai qualche prova in un progetto di esempio per acquisire dimestichezza.
Il tuo problema forse è dovuto al fatto che non hai ben presente la priorità degli allineamenti: alClient dipende sempre da tutti gli altri tipi di allineamento che sono prioritari rispetto ad esso.
Spero di averti dato sufficienti indicazioni sull'argomento per permetterti di risolvere autonomamente il tuo problema.
Ciao!![]()

Rispondi quotando