2008-11-24 14 views

Odpowiedz

7

Jeśli przez "wyśrodkowany" masz na myśli "było już w środku i chcesz go zatrzymać bez zmiany rozmiaru", usuń wszystkie kotwice. Jeśli ma być zmieniany, rozwiązaniem jest gabr :)

5

Ustaw właściwość Kotwice kontrolki na [akLeft, akTop, akRight, akBottom].

+0

To rzeczywiście jest sposób na zrobienie tego. –

+0

Zakłada, że ​​childcontrol jest allowd do zmiany rozmiaru. – Vegar

+0

Tak. Druga odpowiedź opisuje podejście bez zmiany rozmiaru. – gabr

0

Jeśli masz na myśli coś w stylu "aktualizowanie, proszę czekać ...", ręcznie przesuwaj je w zdarzeniu OnResize w formularzu. To pozwala mi trzymać panel na uboczu podczas projektowania i ukrywać go normalnie, ale mogę go pokazać w razie potrzeby.

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;