Entrar
¿Nuevo usuario? Inscribirme
DesarrolloDelphi · Desarrollo de Software en Borland Delphi
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés añadir enlaces a sitios relacionados de tu grupo.

Mensajes

  Mensajes Ayuda
Avanzado
Componente dentro de TDBCtrlGrid   Lista de mensajes  
Responder | Reenviar Mensaje #7289 de 7331 |
Re: [Delphi] Componente dentro de TDBCtrlGrid

Si.. ya había probado... buscando en la herencia... pero me da error

    if (Components[i] is TControl ) and (TControl (Components[i]).Parent.Parent=DBCtrlGrid1) then
      TControl (Components[i]).OnClick := DBCtrlGrid1DblClick;  <- ERROR

"Cannot access protected symbol TControl.OnClick"

Saludos
Z

Maximiliano Podostroiec escribió:
Cambia en tu condición, en lugar de TLabel, poné TControl.
TControl es la clase que introduce la propiedad parent; por lo cual podes evaluar esa condición para cualquier componente heredero de TControl

Saludos


De: Pablo Zagni <fuelsoft@...>
Para: DesarrolloDelphi@...
Enviado: miércoles 16 de septiembre de 2009, 0:53:13
Asunto: Re: [Delphi] Componente dentro de TDBCtrlGrid

 

Bien! ahí anda!

    if (Components[ i] is TLabel) and (TLabel(Components[ i]).Parent. Parent.Name= 'DBCtrlGrid1' ) then
      TLabel(Components[ i]).OnClick := DBCtrlGrid1DblClick ;

Ahora... lo que quiero hacer, es que al hacer doble click en la celda del DBCtrlGrid edite el registro, el tema es que si tengo un TLabel o un TDBText, no tienen asociado el evento. Entonces, se me ocurrió hacer el   for i := 0 to ComponentCount - 1 y asignarle el evento a todos los objetos que están en el DBCtrlGrid.. .. hay alguna forma de hacerlo sin tener que buscar tipo por tipo de cada componente que puedo poner en el DBCtrlGrid ? no encuentro un ancestro en común...

Saludos
Z

Maximiliano Podostroiec escribió:

El que no veas la propiedad Name se dá por como muestra la info el inspector en linea, expandí con el + y vas a ver más propiedades.
Respecto a esa evaluación que estas haciendo, no es necesario evaluar contra Name..
Podes hacer Parent = DBCtrlGrid1, que no es más prolijo pero al menos si le cambias el nombre al control el compilador te va a chillar; en ves de que te encuentres un bug.

Ahora nuevamente te comento lo que encontré la otra ves, no es el propio DBCtrlGrid el Parent de los controles que contiene. Internamente crea un panel dentro suyo, el cual es el que realmente contiene a los controles que le tiras adentro.

Tu condición debería ser:
TLabel(Components[ I]).Parent. Parent = DBCtrlGrid1
o
TLabel(Components[ I]).Parent. Owner = DBCtrlGrid1

Son lo mismo en este caso ya que tanto Parent como Owner del panel es el DBCtrlGrid.

Saludos!

De: Pablo Zagni <fuelsoft@yahoo. com.ar>
Para: DesarrolloDelphi@ gruposyahoo. com.ar
Enviado: lunes 14 de septiembre de 2009, 16:07:16
Asunto: Re: [Delphi] Componente dentro de TDBCtrlGrid

 

Es un DBCtrlgrid

Acá va la estructura


Si vemos el debug... si me paro en TTLabel(Components[ i]).Parent veo:


Y no hay propiedad NAME

Z

Maximiliano Podostroiec escribió:

 
Pablo, una consulta porque ahora me queda la duda dado tus comentarios:
Es un DBCtrlGrid o un DBGrid?

Te fijaste lo que te mandé? Si el Parent del control es el Panel que crea internamente la DBCtrlGrid?

Saludos!

De: Pablo Zagni <fuelsoft@yahoo. com.ar>
Para: DesarrolloDelphi@ gruposyahoo. com.ar
Enviado: lunes 14 de septiembre de 2009, 13:30:25
Asunto: Re: [Delphi] Componente dentro de TDBCtrlGrid

 

Nippur... si... el Grid está dentro de un Panel.

Gracias
Z

Nippur Lagash escribió:

 

Pablo, probaste de poner el grid en un panel u otro contenedor, entonces tal vez sí puedas usar la propiedad parent, creo.

Saludos,

--
Nippur
Mar dePlata
ARgentina



__________ Información de NOD32, revisión 4407 (20090908) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32. com



Encontra las mejores recetas con Yahoo! Cocina.
http://ar.mujer. yahoo.com/ cocina/


__________ Información de NOD32, revisión 4407 (20090908) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32. com



Encontra las mejores recetas con Yahoo! Cocina.
http://ar.mujer. yahoo..com/ cocina/



Encontra las mejores recetas con Yahoo! Cocina.
http://ar.mujer.yahoo.com/cocina/


Vie, 18 de Sep, 2009 5:17 pm

fuelsoft
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #7289 de 7331 |
Desplegar mensajes Autor Ordenar por fecha

Amigos Cmo hago para saber si un componente (TLabel o TDBText) est dentro de un TDBCtrlGrid?? el owner es el form :( Saludos Z...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
9 de Sep, 2009
3:41 pm

Pablo, podes verlo con la propiedad Parent. ... Pablo, podes verlo con la propiedad Parent. Pablo Zagni wrote: Amigos Cmo hago para saber si un componente...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
9 de Sep, 2009
11:16 pm

El parent es el Form... no el DBFrid... ya prob Z Maximiliano Podostroiec escribi: Pablo, podes verlo con la propiedad Parent. Pablo Zagni wrote: Amigos Cmo...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
9 de Sep, 2009
11:43 pm

Es raro eso que decis, normalmente el Parent es el control contenedor sobre el cual se dibuja el control contenido. De hecho, justo estoy laburando con una...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
10 de Sep, 2009
12:00 am

Hago un... for i := 0 to ComponentCount - 1 do begin if (Components[i] is TLabel) then if ((TLabel(Components[i]).Parent) is TDBCtrlGrid) then Y nunca entra......
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
15 de Sep, 2009
9:05 pm

Pablo, te falta un parent. Saludos Alejandro Virelaude DAS Sistemas MSN: aleca73@... From: Pablo Zagni Sent: Wednesday, September 09, 2009 11:15 PM To:...
DAS Sistemas
arvire2004
Sin conexión Enviar correo
16 de Sep, 2009
7:54 pm

Saludos Alejandro Virelaude DAS Sistemas MSN: aleca73@... From: Pablo Zagni Sent: Wednesday, September 09, 2009 11:15 PM To:...
DAS Sistemas
arvire2004
Sin conexión Enviar correo
16 de Sep, 2009
7:55 pm

Perdón que no me expreso bien y no se entiende. La jerarquía de controles cuando usas un TDBCtrlGrid es: TDBCtrlGrid -> TDBCtrlPanel -> Controles que colocó...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
16 de Sep, 2009
7:55 pm

Si Maxi! un capo! te entend re bien. Gracias! Z Maximiliano Podostroiec escribi: Perdn que no me expreso bien y no se entiende. La jerarqua de controles cuando...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
16 de Sep, 2009
9:01 pm

Pablo, probaste de poner el grid en un panel u otro contenedor, entonces tal vez sí puedas usar la propiedad parent, creo. Saludos, -- Nippur Mar dePlata ...
Nippur Lagash
nippur_mdp
Sin conexión Enviar correo
11 de Sep, 2009
1:48 pm

Nippur... si... el Grid est dentro de un Panel. Gracias Z Nippur Lagash escribi: Pablo, probaste de poner el grid en un panel u otro contenedor, entonces tal...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
14 de Sep, 2009
4:31 pm

Pablo, una consulta porque ahora me queda la duda dado tus comentarios: Es un DBCtrlGrid o un DBGrid? Te fijaste lo que te mandé? Si el Parent del control es...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
14 de Sep, 2009
6:23 pm

Es un DBCtrlgrid Ac va la estructura Si vemos el debug... si me paro en TTLabel(Components[i]).Parent veo: Y no hay propiedad NAME Z Maximiliano Podostroiec...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
14 de Sep, 2009
7:08 pm

El que no veas la propiedad Name se dá por como muestra la info el inspector en linea, expandí con el + y vas a ver más propiedades. Respecto a esa...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
14 de Sep, 2009
7:48 pm

Bien! ah anda! if (Components[i] is TLabel) and (TLabel(Components[i]).Parent.Parent.Name='DBCtrlGrid1') then TLabel(Components[i]).OnClick :=...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
16 de Sep, 2009
7:55 pm

Cambia en tu condición, en lugar de TLabel, poné TControl. TControl es la clase que introduce la propiedad parent; por lo cual podes evaluar esa condición...
Maximiliano Podostroiec
podostro
Sin conexión Enviar correo
18 de Sep, 2009
3:56 pm

Si.. ya haba probado... buscando en la herencia... pero me da error if (Components[i] is TControl ) and (TControl (Components[i]).Parent.Parent=DBCtrlGrid1)...
Pablo Zagni
fuelsoft
Sin conexión Enviar correo
22 de Sep, 2009
8:17 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda