Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-04-2007
pelaorb68 pelaorb68 is offline
Miembro
 
Registrado: oct 2005
Posts: 32
Poder: 0
pelaorb68 Va por buen camino
Ayuda con TColumn

Hola a todos, necesito de vuestras ayudas nuevamente.
Quiero agregar un par de propiedades a un TColumn. Hice lo siguiente pero me da error en RunTime:

Código Delphi [-]
type
  TRBColumn = class(TColumn)
  private
     FField1 : string;
     FField2 : string;
  public
    property Field1: string read FField1 write FField1;
    property Field2: string read FField2 write FField2;
  end;
 
  TfrmMB = class(TForm)
    DBGrilla: TDBGrid;
    .
    .
    .

procedure TfrmMB.CrearColumnas;
var
  Columna : TColumn;
begin
  Columna := DBGrilla.Columns.Add;
  Columna.Title.Caption   := 'xxxx';
  Columna.Alignment := taCenter;
 
  TRBColumn(Columna).Field1 := 'yy'; <--- Error: EAccessViolation
  TRBColumn(Columna).Field2 := 'zz';
end;

Me pueden ayudar please........qué estoy haciendo mal?

Saludos y desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 17-04-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
a simple vista, veo que columna no tiene las propiedades field1 y field2, por mucho cast que le hagas al crear la columna no tiene esas propiedades por lo tanto no se las puedes asignar, prueba lo contrario, crear TRBColumn y asignarlas a TColumn, si no es mucha indiscrecion, que tratas de hacer? a lo mejor hay una manera mas facil
Responder Con Cita
  #3  
Antiguo 17-04-2007
pelaorb68 pelaorb68 is offline
Miembro
 
Registrado: oct 2005
Posts: 32
Poder: 0
pelaorb68 Va por buen camino
gracias por tu tiempo luis......Lo que quiero es poder tener algunas nuevas propiedades por columnas del DBGrid. Por ejemplo, quiero definir si la columna(s) que estoy agregando servirá para hacer sort y/o filtro y/o otra cosa.

Actualmente, no me sirve chequer el Numero de Columna para hacer tal o cual cosa, porque la grilla se puede cargar con difenrentes columnas, dependiendo del query asociado en distinto momento.

No sé si me explico....

Es por eso que me gustaría tener alguna porpiedades adicionales para la columna.....
Responder Con Cita
  #4  
Antiguo 18-04-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
entonces intenta crear tus TRBColumn y asignalas al DBGrid, porque por lo que veo agarras las columnas del grid y las asignas al TRBColumn, algo que tambien te puede servir es que hagas por ejemplo un TList o un TCollection y tu TRBColumn pero donde tu pongas las columnas y aparte tengas las propiedades, algo asi como

Código Delphi [-]
type
  TRBColumn = class(TOBject)
  private
     FField1 : string;
     FField2 : string;
     FColumn: TColumn;
  public
    property Field1: string read FField1 write FField1;
    property Field2: string read FField2 write FField2;
    Property Columna:TColumn read FColumn write FColumn;
  end;

tienes que inicializar la columna y demas, no me acuerdo si en la pagina de delphi.about.com vi como utilizar la propiedad tag para "direccionarla" a un objeto o componente que es algo que tambien te podria servir
Responder Con Cita
  #5  
Antiguo 18-04-2007
pelaorb68 pelaorb68 is offline
Miembro
 
Registrado: oct 2005
Posts: 32
Poder: 0
pelaorb68 Va por buen camino
Gracias por tu ayuda luis, voy a intentar con lo que me dices.....

Mil gracias.
Responder Con Cita
  #6  
Antiguo 18-04-2007
camgom camgom is offline
Registrado
 
Registrado: abr 2007
Posts: 1
Poder: 0
camgom Va por buen camino
Ayuda con TColumn

Existe un en delphi wue permite "engañar" al compilador con una superposicion.

Simplemente en types declara tu clase para TColumn y declara que hereda de la clase original TColumn aclarando la unit de donde proviene la original (en este momento no me acuerdo de cual unit se saca la clase TColumn orignal por lo que la voy a nombrar "unitcl")

type

TColumn=class(unitcl.TColumn)
private
FField1:string;
FField2: string;
public
property Field1:string write FField1 read FField1;
property Field2:string write FField2 read FField2;
end;

Declara esta clase antes de la declaración de clase de la ventana donde necesitas o utilizas el control.

Al momento de trabajar con el objeto simplemente utilizala como cualquier otra clase.

...
dbgrid.column[0].field1:='a';
...
Es de aclarar que esta superposición solo funciona para el código, no para el diseño de la ventana y mucho menos para el inspector de objetos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03
Inicializar objeto TColumn...?? ibarrols OOP 2 30-05-2003 18:00:39


La franja horaria es GMT +2. Ahora son las 02:11:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi