# How to define a minimum size for a component #79

Question
I have a component (derived from TGraphicControl) and the user should only be able to resize the component to a minimum size or higher. How do I have to implement the SetHeight and SetWidth procedures?

You can override the SetBounds method. Since this method is responsible for setting new coordinates and dimensions for the control. Here's an example:

```TMyGraphicControl = class(TGraphicControl)
public
procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth:
Integer; AHeight: Integer); override;
end;

const
min_Widht = 20;
min_Height = 20;

procedure TMyGraphicControl.SetBounds(ALeft: Integer; ATop: Integer;
AWidth: Integer; AHeight: Integer);
begin
if AWidth < min_Widht then
AWidth := min_Widht;
if AHeight < min_Height then
AHeight := min_Height;
inherited SetBounds(ALeft, ATop, AWidth, AHeight);
end;```

You may also take a look at the CanResize method. It is called automatically when an attempt is made to resize the control, after any autosizing has occurred. You can override it and return false in the result, in case the new height or width is less than the minimum value.

```type
TMyGraphicControl = class(TGraphicControl)
protected
function CanResize(var NewWidth: Integer;
var NewHeight: Integer): Boolean; override;
end;

function TMyGraphicControl.CanResize(var NewWidth: Integer;
var NewHeight: Integer): Boolean;
begin
or (NewHeight < min_Height)) then
Result := false
else
Result := inherited CanResize(NewWidth, NewHeight);
end;```

## Alternative Method

Montor suggests the following solution:

```with MyControl.Constraints do
begin
MaxHeight :=100;
MaxWidth  :=100;
MinHeight :=50;
MinWidth  :=50;
end;```
Original resource: The Delphi Pool Serge Gubenko 2009/08/12 2011/01/16