简体   繁体   English

如何在不使用alClient对齐的情况下在TGridPanel中调整TEdit的大小

[英]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 TEdit在TGridPanel内的TGdridPanel内

In others words, exist a TGridPanel and in one of the cells I need to insert other TGridPanel. 换句话说,存在一个TGridPanel,并且在其中一个单元格中需要插入其他TGridPanel。

In this internal TGridPanel a need to insert two TLabels and two TEdits, like this: 在此内部TGridPanel中,需要插入两个TLabel和两个TEdit,如下所示:

______________________

| 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. 当我调整外部TGridPanel的大小时,内部的TGridPanel也会调整大小,因为内部TGridPanel的对齐方式是设置alClient,当发生这种情况时,我想调整Label和Edit的大小,就像它们左右锚定了一样,但是当它们位于TGridPanel内部,如果我将此内部组件的对齐方式设置为alClient,则它们将变形。

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... 屏幕截图可确保这就是您想要的...没有代码,只需设计...

在此处输入图片说明

在此处输入图片说明

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. 使用内部TGridPanel的OnResize事件可以根据需要调整其子控件的大小。 Use the inner TGridPanel's ClientWidth/ClientHeight to help calculate the sizes if you want them to fill the entire area. 如果希望它们填充整个区域,请使用内部TGridPanel的ClientWidth / ClientHeight来帮助计算尺寸。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM