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.
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) __________
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...
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...
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...
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, te falta un parent. Saludos Alejandro Virelaude DAS Sistemas MSN: aleca73@... From: Pablo Zagni Sent: Wednesday, September 09, 2009 11:15 PM To:...
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ó...
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, 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... 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, 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...
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...
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...
Si.. ya haba probado... buscando en la herencia... pero me da error if (Components[i] is TControl ) and (TControl (Components[i]).Parent.Parent=DBCtrlGrid1)...