Forma preferida de mantener el control centrado en cambiar el tamaño
Pregunta
¿Cuál es su forma preferida de mantener los controles centrados en su padre cuando el padre cambia el ancho o la altura?
Solución
Si por 'centrado' quiere decir 'ya estaba en el medio y desea mantenerlo allí sin cambiar su tamaño', elimine todos los anclajes. Si se debe cambiar el tamaño, la solución de gabr es con :)
Otros consejos
Establezca la propiedad Anchors del control en [akLeft, akTop, akRight, akBottom].
Si quiere decir una especie de "actualización", espere ... " tipo de cosa, lo muevo manualmente en el evento OnResize del formulario. Esto me permite mantener un panel alejado durante el diseño y ocultarlo normalmente, pero puedo hacerlo visible cuando sea necesario.
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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow