开发者

How to Resize a TEdit inside a TGridPanel without use the alClient align

I need to work with the folow structure:

TEdit inside TGdridPanel inside TGridPanel

In others words, exist a TGridPanel an开发者_运维问答d in one of the cells I need to insert other TGridPanel.

In this internal TGridPanel a need to insert two TLabels and two TEdits, like this:

______________________

| TLabel1 | TLabel 2 |

______________________

| TEdit 1 | TEdit 2 |

______________________

When I resize the external TGridPanel, the internal one resize too, because the internal TGridPanel align is setup alClient, and when this happend I want resize the Label's and the Edit's like if them was anchored on left and right, but it doesn't when they are inside the TGridPanel and if I set the align of the this internals components as alClient, they are distorted.

I can't use other way, because I'm moving in a code very stable and do not have permission to change it.

Could please somebody help me?

Thank you.


The screenshots to be sure this is what you want... no code, just design...

How to Resize a TEdit inside a TGridPanel without use the alClient align

How to Resize a TEdit inside a TGridPanel without use the alClient align

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 337
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object grdpnl1: TGridPanel
    Left = 0
    Top = 0
    Width = 635
    Height = 337
    Align = alClient
    Caption = 'grdpnlOutside'
    ColumnCollection = <
      item
        Value = 33.333333333333340000
      end
      item
        Value = 33.333333333333340000
      end
      item
        Value = 33.333333333333340000
      end>
    ControlCollection = <
      item
        Column = 0
        Control = lbl1
        Row = 0
      end
      item
        Column = 1
        Control = lbl2
        Row = 0
      end
      item
        Column = 2
        Control = lbl3
        Row = 0
      end
      item
        Column = 0
        Control = lbl4
        Row = 1
      end
      item
        Column = 1
        Control = grdpnlInside
        Row = 1
      end
      item
        Column = 2
        Control = lbl5
        Row = 1
      end
      item
        Column = 0
        Control = lbl6
        Row = 2
      end
      item
        Column = 1
        Control = lbl7
        Row = 2
      end
      item
        Column = 2
        Control = lbl8
        Row = 2
      end>
    RowCollection = <
      item
        Value = 33.333333333333340000
      end
      item
        Value = 33.333333333333340000
      end
      item
        Value = 33.333333333333340000
      end>
    ShowCaption = False
    TabOrder = 0
    ExplicitLeft = 144
    ExplicitTop = 64
    ExplicitWidth = 273
    ExplicitHeight = 105
    object lbl1: TLabel
      Left = 1
      Top = 1
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'lbl1'
      ExplicitLeft = 91
      ExplicitTop = 50
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl2: TLabel
      Left = 212
      Top = 1
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl3: TLabel
      Left = 423
      Top = 1
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl4: TLabel
      Left = 1
      Top = 112
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object grdpnlInside: TGridPanel
      Left = 212
      Top = 112
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'grdpnlInside'
      ColumnCollection = <
        item
          Value = 50.000000000000000000
        end
        item
          Value = 50.000000000000000000
        end>
      ControlCollection = <
        item
          Column = 1
          Control = pnlBottomRight
          Row = 1
        end
        item
          Column = 0
          Control = pnlBottomLeft
          Row = 1
        end
        item
          Column = 0
          Control = pnlTopLeft
          Row = 0
        end
        item
          Column = 1
          Control = pnlTopRight
          Row = 0
        end>
      RowCollection = <
        item
          Value = 50.000000000000000000
        end
        item
          Value = 50.000000000000000000
        end>
      ShowCaption = False
      TabOrder = 0
      ExplicitLeft = 312
      ExplicitTop = 168
      ExplicitWidth = 185
      ExplicitHeight = 41
      object pnlBottomRight: TPanel
        Left = 105
        Top = 55
        Width = 105
        Height = 55
        Align = alClient
        BevelOuter = bvNone
        Caption = 'pnlBottomRight'
        ShowCaption = False
        TabOrder = 0
        ExplicitLeft = 136
        ExplicitTop = 72
        ExplicitWidth = 185
        ExplicitHeight = 41
        DesignSize = (
          105
          55)
        object edtRight: TEdit
          Left = 0
          Top = 17
          Width = 105
          Height = 21
          Alignment = taRightJustify
          Anchors = [akLeft, akRight]
          TabOrder = 0
          Text = 'edtRight'
          ExplicitTop = 10
        end
      end
      object pnlBottomLeft: TPanel
        Left = 1
        Top = 55
        Width = 104
        Height = 55
        Align = alClient
        BevelOuter = bvNone
        Caption = 'pnlBottomRight'
        ShowCaption = False
        TabOrder = 1
        ExplicitLeft = 136
        ExplicitTop = 72
        ExplicitWidth = 185
        ExplicitHeight = 41
        DesignSize = (
          104
          55)
        object edtLeft: TEdit
          Left = 0
          Top = 17
          Width = 105
          Height = 21
          Anchors = [akLeft, akRight]
          TabOrder = 0
          Text = 'edtLeft'
        end
      end
      object pnlTopLeft: TPanel
        Left = 1
        Top = 1
        Width = 104
        Height = 54
        Align = alClient
        BevelOuter = bvNone
        Caption = 'pnlBottomRight'
        ShowCaption = False
        TabOrder = 2
        ExplicitLeft = 136
        ExplicitTop = 72
        ExplicitWidth = 185
        ExplicitHeight = 41
        DesignSize = (
          104
          54)
        object lblLeft: TLabel
          Left = 0
          Top = 20
          Width = 105
          Height = 13
          Anchors = [akLeft, akRight]
          AutoSize = False
          Caption = 'lblLeft'
        end
      end
      object pnlTopRight: TPanel
        Left = 105
        Top = 1
        Width = 105
        Height = 54
        Align = alClient
        BevelOuter = bvNone
        Caption = 'pnlBottomRight'
        ShowCaption = False
        TabOrder = 3
        ExplicitLeft = 136
        ExplicitTop = 72
        ExplicitWidth = 185
        ExplicitHeight = 41
        DesignSize = (
          105
          54)
        object lblRight: TLabel
          Left = 0
          Top = 20
          Width = 105
          Height = 13
          Alignment = taRightJustify
          Anchors = [akLeft, akRight]
          AutoSize = False
          Caption = 'lblRight'
        end
      end
    end
    object lbl5: TLabel
      Left = 423
      Top = 112
      Width = 211
      Height = 111
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl6: TLabel
      Left = 1
      Top = 223
      Width = 211
      Height = 113
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl7: TLabel
      Left = 212
      Top = 223
      Width = 211
      Height = 113
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
    object lbl8: TLabel
      Left = 423
      Top = 223
      Width = 211
      Height = 113
      Align = alClient
      Caption = 'lbl1'
      ExplicitWidth = 16
      ExplicitHeight = 13
    end
  end
end


Use the OnResize event of the inner TGridPanel to resize its child controls however you like. Use the inner TGridPanel's ClientWidth/ClientHeight to help calculate the sizes if you want them to fill the entire area.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜