Jaki jest preferowany sposób utrzymywania kontroli skupionych na rodzicu, gdy rodzic zmienia szerokość lub wysokość?Preferowany sposób kontroli na środku na zmianę rozmiaru
5
A
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
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;
To rzeczywiście jest sposób na zrobienie tego. –
Zakłada, że childcontrol jest allowd do zmiany rozmiaru. – Vegar
Tak. Druga odpowiedź opisuje podejście bez zmiany rozmiaru. – gabr