Más o menos esto:
Código Delphi
[-]
TMiPanel = class (TPanel)
private
FHeight :integer;
procedure SetHeight(value:integer);
protected
procedure DoResizeControls;
published
property Height: integer read FHeight write SetHeight;
end;
procedure TMiPanel.SetHeight(value:integer);
begin
if FHeight <> Value then begin
FHeight:= Value;
DoResizeControls;
Invalidate; end;
end;
Cada vez que el usuario modifique la altura, bien por el inspector de objetos, o bien por código en ejecución, se ejecutará el procedimiento SetHeight, que a su vez llama al encargado de redimiensionar los controles que tiene dentro.
Saludos