Ver Mensaje Individual
  #1  
Antiguo 04-05-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Reputación: 20
yapt Va por buen camino
Question VFI - Modificaciones al ancestro.

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.
Responder Con Cita