[Lazarus] Custom control with stepwise size adjustment

gabor gabor at poczta.onet.pl
Thu Sep 20 13:33:43 CEST 2018


Thanks for the hint but I found a solution. I've moved code to 
ChangeBounds method and it looks like it works correctly with Anchors. 
There is still a problem with form designer, but I can live with it - I 
simply use object inspector instead of using a mouse.

Regards, Michał.


W dniu 2018-09-19 o 15:17, Vojtěch Čihák via Lazarus pisze:
> Try set Constraints - set MinHeight=MaxHeight=your calculated height, 
> and the same for Width.
> 
> But it will maybe fool Lazarus autosizing mechanism.
> 
> V.
> 
> ______________________________________________________________
>  > Od: "gabor via Lazarus" <lazarus at lists.lazarus-ide.org>
>  > Komu: lazarus at lists.lazarus-ide.org
>  > Datum: 19.09.2018 14:29
>  > Předmět: [Lazarus] Custom control with stepwise size adjustment
>  >
> 
> Hi.
> How to properly create a control with step-size adjustment? I mean a
> control whose width is a multiple of, eg. 16 (16,32,48...).
> In delphi, I simply override TCustomControl.SetBounds method.
> 
> procedure TMyControl.SetBounds(aTop, aLeft, aWidth, aHeight: Integer);
> begin
>    aWidth := (aWidth div 16) * 16;
>    if aWidth = 0 then
>      aWidth := 16;
>    aHeight := (aHeight div 16) * 16;
>    if aHeight = 0 then
>      aHeight := 16;
>    inherited SetBounds(aTop, aLeft, aWidth, aHeight);
> end;
> 
> Unfortunately, the same does not work well with LCL. Especially in
> connection with Anchors or in form designer.
> So how to deal with it?
> 
> Regards, Michał.
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
> 
> 


More information about the Lazarus mailing list