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...
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.
精彩评论