我需要使用以下结构:
TGdPanel内部的TGdPaPanel内的TEdit
换句话说,存在一个TGridPanel并且在其中一个单元格中我需要插入其他TGridPanel。
在这个内部TGridPanel中需要插入两个TLabel和两个TEdits,如下所示:
______________________
| TLabel1 | TLabel 2 |
______________________
| TEdit 1 | TEdit 2 |
______________________
当我调整外部TGridPanel的大小时,内部的一个也会调整大小,因为内部的TGridPanel对齐是设置alClient,当发生这种情况时,我想要调整Label的大小和编辑,如果它们是左右锚定,但它没有当它们在TGridPanel内部并且如果我将此内部组件的对齐设置为alClient时,它们会被扭曲。
我不能用其他方式,因为我在代码中移动非常稳定并且无权更改它。
可以请有人帮助我吗?
谢谢。
答案 0 :(得分:3)
截图确保这是你想要的......没有代码,只是设计...
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
答案 1 :(得分:1)
使用内部TGridPanel的OnResize事件来调整其子控件的大小。如果您希望它们填充整个区域,请使用内部TGridPanel的ClientWidth / ClientHeight来帮助计算尺寸。