Domanda

Qual è il tuo modo preferito di mantenere i controlli centrati sul suo genitore quando il genitore cambia larghezza o altezza?

È stato utile?

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
scroll top