Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firemonkey TFrame Align = Scale Bug?

I have a doubt. I have created a Frame in firemonkey and added 2 buttons, then inside MainForm I added this Frame.

Frame.Align = Scale

In the MainForm the Object Frame.Align = Client

When I compile and resize the Form, the Frame does not scale.

Is this a normal question or a bug?

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 481
  ClientWidth = 627
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop]
  DesignerMasterStyle = 0
  inline Frame21: TFrame2
    Align = Scale
    Position.Y = -3.000000000000000000
    Size.Width = 887.000000000000000000
    Size.Height = 653.000000000000000000
    Size.PlatformDefault = False
  end
end

object Frame2: TFrame2
  Align = Scale
  Size.Width = 526.000000000000000000
  Size.Height = 395.000000000000000000
  Size.PlatformDefault = False
  object Button1: TButton
    Position.X = 80.000000000000000000
    Position.Y = 40.000000000000000000
    TabOrder = 0
    Text = 'Button1'
  end
  object Button2: TButton
    Position.X = 144.000000000000000000
    Position.Y = 144.000000000000000000
    TabOrder = 1
    Text = 'Button2'
  end
  object Button3: TButton
    Position.X = 240.000000000000000000
    Position.Y = 256.000000000000000000
    TabOrder = 2
    Text = 'Button3'
  end
end
like image 873
Wesley Bobato Avatar asked Mar 28 '26 07:03

Wesley Bobato


1 Answers

No, there is no bug with Align = Scale in a frame. You seem to have only the frame itself aligned with Scale.

If you want the components on the frame also to scale, you need to assign their Align property as well.

Here's my form

object Form22: TForm22
  Left = 0
  Top = 0
  Caption = 'Form22'
  ClientHeight = 200
  ClientWidth = 350
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop]
  DesignerMasterStyle = 0
  inline Frame221: TFrame22
    Align = Scale
    Position.X = 16.000000000000000000
    Position.Y = 14.000000000000000000
    Size.Width = 320.000000000000000000
    Size.Height = 171.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 1
    inherited Label1: TLabel
      Position.X = 16.000000000000000000
      Position.Y = 24.000000000000000000
    end
    inherited Button1: TButton
      Position.Y = 48.857139587402340000
      Size.Height = 19.193893432617190000
      Size.PlatformDefault = False
    end
    inherited Button2: TButton
      Position.Y = 48.857139587402340000
      Size.Height = 19.193893432617190000
      Size.PlatformDefault = False
    end
    inherited Rectangle1: TRectangle
      Position.Y = 76.775512695312500000
      Size.Height = 77.647918701171880000
    end
  end
end

And the frame

object Frame22: TFrame22
  Align = Scale
  Size.Width = 320.000000000000000000
  Size.Height = 196.000000000000000000
  Size.PlatformDefault = False
  TabOrder = 0
  object Label1: TLabel
    Position.X = 32.000000000000000000
    Position.Y = 32.000000000000000000
    Text = 'Frame here!'
  end
  object Button1: TButton
    Align = Scale
    Position.X = 16.000000000000000000
    Position.Y = 56.000000000000000000
    TabOrder = 1
    Text = 'Button1'
  end
  object Button2: TButton
    Align = Scale
    Position.X = 216.000000000000000000
    Position.Y = 56.000000000000000000
    TabOrder = 2
    Text = 'Button2'
  end
  object Rectangle1: TRectangle
    Align = Scale
    Position.X = 16.000000000000000000
    Position.Y = 88.000000000000000000
    Size.Width = 281.000000000000000000
    Size.Height = 89.000000000000000000
    Size.PlatformDefault = False
  end
end

Note that all components (except the TLabel) have their Align property set to Scale.

like image 139
Tom Brunberg Avatar answered Mar 29 '26 21:03

Tom Brunberg



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!