Hola a todos,
tengo un "problema" o mejor dicho un "comportamiento" que creo que ha sido así toda la vida y que así se quedará, pero tenia que preguntarlo. Ahi va....
Utilizo el siguiente formulario (simple), dos paneles y un DbGrid (lo pongo aquí por comodidad por si alguien puede contestar):
Código Delphi
[-]object Form1: TForm1
Left = 498
Top = 375
Caption = 'Form1'
ClientHeight = 227
ClientWidth = 326
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
AlignWithMargins = True
Left = 3
Top = 3
Width = 320
Height = 41
Align = alTop
Caption = 'Panel1'
TabOrder = 0
ExplicitLeft = 80
ExplicitTop = 48
ExplicitWidth = 185
end
object Panel2: TPanel
AlignWithMargins = True
Left = 3
Top = 183
Width = 320
Height = 41
Align = alBottom
Caption = 'Panel2'
TabOrder = 1
ExplicitLeft = 104
ExplicitTop = 160
ExplicitWidth = 185
end
object DBGrid1: TDBGrid
AlignWithMargins = True
Left = 3
Top = 50
Width = 320
Height = 127
Align = alClient
TabOrder = 2
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
end
end
Ahora creo un nuevo formulario heredado de este. Pero a este nuevo formulario le pongo DOS columnas de datos (vease que el primero no tiene columnas):
Código Delphi
[-]inherited Form2: TForm2
Left = 1687
Top = 250
Caption = 'Form2'
ExplicitLeft = 1687
ExplicitTop = 250
PixelsPerInch = 96
TextHeight = 13
inherited DBGrid1: TDBGrid
Columns = <
item
Expanded = False
Title.Caption = 'UNA'
Visible = True
end
item
Expanded = False
Title.Caption = 'DOS'
Visible = True
end>
end
end
Ahora, por un momento, imaginad que tenemos 40 formularios (como el segundo), heredados del primero y que, mirate tú, queremos hacer un pequeño cambio en el primer form (el padre del invento).
El cambio es simple. Añadimos un nuevo panel que (para los que hayan visto el formulario) ocupa el lugar del grid. El grid pasa a estar dentro del nuevo panel. Hago esto desde la ventana "Structure", creando el panel y arrastrando el DbGrid dentro del nuevo panel.
Perfecto, todos los formularios hijo, heredan este cambio, pero acabo de perder TODAS las definiciones de TODAS las columnas (y definición de DataSource, etc.. etc..) de dentro de TODOS los grids de todos los formularios hijos. Es decir, en el ejemplo, 40 formularios a la porra.
Y ya no sé si es que es Delphi2010 el que tiene el problema, o ha sido siempre así. Estoy un poco despistado.
Alguien puede darme su opinión ?
Gracias y un saludo.