Modo preferito per mantenere il controllo centrato sul ridimensionamento
Domanda
Qual è il tuo modo preferito di mantenere i controlli centrati sul suo genitore quando il genitore cambia larghezza o altezza?
Soluzione
Se per 'centrato' intendi " era già nel mezzo e vuoi tenerlo lì senza ridimensionarlo " ;, quindi rimuovi tutti gli ancoraggi. Se dovesse essere ridimensionato, la soluzione di gabr è quella con :)
Altri suggerimenti
Imposta la proprietà Anchors del controllo su [akLeft, akTop, akRight, akBottom].
Se intendi una sorta di "aggiornamento", attendi ... " tipo di cosa, lo sposto manualmente nell'evento OnResize del form. Questo mi permette di tenere un pannello fuori mano durante la progettazione e nascosto normalmente, ma posso renderlo visibile quando necessario.
procedure TMyForm.FormResize(Sender: TObject);
var
nNewTop : Integer;
begin
inherited;
pnlRegenerating.Left := (ClientWidth - pnlRegenerating.Width) div 2;
nNewTop := (ClientHeight div 5) {* 4};
if (nNewTop + pnlRegenerating.Height) > ClientHeight then
nNewTop := ClientHeight - pnlRegenerating.Height - 4;
pnlRegenerating.Top := nNewTop;
end;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow