I've got a single row GridPanel full of buttons in a frame which I wan't to scale proportionally when either the height or width gets changed.

Before posting I set the alignment to alClient to use the parent's full size, but I don't know what to do about scaling.
What would you suggest?
Within the
GridPanelyou have aColumCollectionwith four (acc. your image)TColumnItems.For each
TColumnItem, set theSizeStyleproperty tossPercent(the default) and theValueproperty to 25.Because the other columns sizes are adjusted automatically when you edit one column, it is easier to edit these values when changing the form (or frame in your case) view to text. Right-click on the frame and select
View as Text.It looks as follows when edited.
Your response:
I assume the ratio 1:1 applies to each button, so 4:1 for the whole frame.
Because the user may resize either the height or the width (or both) of the form, and we only have the common
OnResizeevent to lean on, I suggest the following:Declare two private variables in the form
and the
OnResizeevent of the form:Finally, for future questions of yours: Please explain what you have already tried to solve the problem, and why those attempts failed.