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 04-05-2006
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Poder: 19
Punzo Va por buen camino
Ayuda con el procedimiento Notification de Tcomponent

Quiero crear un derivado de cxGrid (Developer Express), pero no encuentro una funcion o procedimiento virtual, que se llame cuando se genere una nueva vista del cxGrid aparte del Notification de TComponent; Existe alguna funcion o procedimiento que se llame al crear la vista ademas de Notification? de antemano gracias
Responder Con Cita
  #2  
Antiguo 04-05-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Punzo
Quiero crear un derivado de cxGrid (Developer Express), pero no encuentro una funcion o procedimiento virtual, que se llame cuando se genere una nueva vista del cxGrid aparte del Notification de TComponent; Existe alguna funcion o procedimiento que se llame al crear la vista ademas de Notification? de antemano gracias
¿Podrías aclarar un poco que es lo que quieres?... ¿¿quieres que el contenedor se entere cuando se le agrega un componente??
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 09-05-2006
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Poder: 19
Punzo Va por buen camino
Cita:
Empezado por delphi.com.ar
¿Podrías aclarar un poco que es lo que quieres?... ¿¿quieres que el contenedor se entere cuando se le agrega un componente??
Cada que se genere una vista, quiero ponerle propiedades diferentes, por eso quiero saber si existe un metodo dentro del cxgrid que pueda redefinir, que sea virtual. Y podria decirse que precisamente es lo que quiero que el contenedor se entere cuando se le agrega una vista.
Responder Con Cita
  #4  
Antiguo 11-05-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Conozco a Iván Punzo en persona y sé a grandes rasgos lo que está buscando. Desea crear un componente derivado de TcxGrid, que intercepte el momento en que otro tipo de componente, de clase TcxGridDBTableView, es agregado a la forma. El escenario general es este:

Los componentes rejilla TcxGrid suelen contener (visualmente) en su interior a otros componentes llamados "vistas" (normalmente de tipo TcxGridDBTableView). Tanto la rejilla TcxGrid como las vistas TcxGridDBTableView son componentes que la forma contenedora adueña. En tiempo de diseño, el programador puede agregar a la rejilla TcxGrid tantas vistas TcxGridDBTableView como desee (es como cuando se agrega un nuevo elemento a una colección, o un nuevo campo persistente a una tabla).

Iván desea interceptar el momento en que una nueva vista es agregada a la rejilla para asignarle cierto valor predeterminado a una de sus propiedades; algo así como «Bienvenido nuevo objeto vista, póngase este abrigo porque aquí hace frío». Como no parece haber un método virtual que específicamente esté relacionado con esa acción, le sugerí redefinir el método Notification. Sabemos que una alternativa es redefinir la clase TcxGridDBTableView en lugar de la clase TcxGrid, pero ese camino está descartado por razones particulares del caso en cuestión.

Lo que Iván necesita es comprender cómo debe utilizar el método redefinido Notification para ponerle su abrigo a cada nueva vista que es creada en la rejilla. Cabe recordar que la rejilla TcxGrid no es el dueño (Owner) de las vistas que contiene, el dueño de éstas es la forma misma donde está la rejilla (así como una forma puede adueñar a un TTable y también a sus campos persistentes).

Un abrazo visto.

Al González.
Responder Con Cita
  #5  
Antiguo 11-05-2006
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Poder: 19
Punzo Va por buen camino
Cita:
Empezado por Al González
¡Hola a todos!

Conozco a Iván Punzo en persona y sé a grandes rasgos lo que está buscando. Desea crear un componente derivado de TcxGrid, que intercepte el momento en que otro tipo de componente, de clase TcxGridDBTableView, es agregado a la forma. El escenario general es este:

Los componentes rejilla TcxGrid suelen contener (visualmente) en su interior a otros componentes llamados "vistas" (normalmente de tipo TcxGridDBTableView). Tanto la rejilla TcxGrid como las vistas TcxGridDBTableView son componentes que la forma contenedora adueña. En tiempo de diseño, el programador puede agregar a la rejilla TcxGrid tantas vistas TcxGridDBTableView como desee (es como cuando se agrega un nuevo elemento a una colección, o un nuevo campo persistente a una tabla).

Iván desea interceptar el momento en que una nueva vista es agregada a la rejilla para asignarle cierto valor predeterminado a una de sus propiedades; algo así como «Bienvenido nuevo objeto vista, póngase este abrigo porque aquí hace frío». Como no parece haber un método virtual que específicamente esté relacionado con esa acción, le sugerí redefinir el método Notification. Sabemos que una alternativa es redefinir la clase TcxGridDBTableView en lugar de la clase TcxGrid, pero ese camino está descartado por razones particulares del caso en cuestión.

Lo que Iván necesita es comprender cómo debe utilizar el método redefinido Notification para ponerle su abrigo a cada nueva vista que es creada en la rejilla. Cabe recordar que la rejilla TcxGrid no es el dueño (Owner) de las vistas que contiene, el dueño de éstas es la forma misma donde está la rejilla (así como una forma puede adueñar a un TTable y también a sus campos persistentes).

Un abrazo visto.

Al González.
Basicamente es eso, crear un componente derivado de Cxgrid que cada vez que se agregue una vista cambie el valor de la propiedad StyleSheet, por el valor de una nueva propiedad llamada DefaultStyleSheet (que previamente se creo).
Responder Con Cita
  #6  
Antiguo 11-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y exactamente ¿cuál es el problema? Si realmente se llama a Notification al momento de insertar la "vista" pues bastaría algo como:

Código Delphi [-]
procedure TMicxGrid.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited;

  if (Operation = opInsert) and (AComponent is TcxGridDBTableView) then
  begin
    TcxGridDBTableView(AComponent).PonteElSaco;
  end;
end;

// Saludos
Responder Con Cita
  #7  
Antiguo 11-05-2006
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Poder: 19
Punzo Va por buen camino
Muchas gracias Roman, creo que falta una tercera condicion en caso de que se encuentren 2 micxgrid, esto es para que en caso de que cambie cierta propiedad a micxgrid1, esta propiedad no sea cambiada en micxgrid2. Me podrias echar la mano como puede ser la otra condicion?. De antemano gracias
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
Casting de TComponent en TEdit jamonete2 Varios 2 12-06-2005 15:56:19
Ayuda, como llamar a un procedimiento desde otro procedimiento? Ariatna Varios 1 01-02-2005 04:05:35
Notification Icon en Delphi 7 El_Perrito Varios 2 07-11-2004 15:44:32
Rave 5 y problema de Notification ifarias Impresión 0 08-09-2004 22:08:59
WM_DEVICECHANGE en un TComponent NeWNeO API de Windows 5 28-05-2004 16:12:07


La franja horaria es GMT +2. Ahora son las 22:44:05.


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