[英]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.