¿Cómo puedo acceder a las propiedades de las clases por el nombre?


¿Cómo puedo acceder a las propiedades de las clases que no son implementadas a través de la utiliza-cláusula, el hecho de saber sus nombres?
Usted tiene que utilizar el TypInfo de la unidad.
propiedades Simples, como las cadenas y enteros, se puede acceder en la
de la siguiente manera:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterProp(Nombre, APropName, AValue:string)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a través de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = Nombre), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(C,APropName, AValue)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Ahora bien, hay también algunas Propiedades como Fuente. ¿Cómo puedo llegar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp esos sub-propiedades?
Aquí es una solución para que:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterFontColor(Nombre:string AColor:TColor)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
& nbsp & nbsp & nbsp & nbsp & nbsp AObj : TObject
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a través de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = Nombre), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AObj := GetObjectProp(C,'Fuente')

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(AObj,'Color',AColor)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Y, finalmente, usted tiene muchas propiedades indizadas como TStrings
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp o cosas.
Ahora bien, ¿cómo hago para llegar a esas propiedades indizadas?
Todas las propiedades indizadas se almacenan en TCollection-Objetos. Por lo que
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp usted tiene que Convertir de ellos, como en el siguiente función:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterIndexObject(ACompName, APropName:string ACaption: string)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
& nbsp & nbsp & nbsp & nbsp & nbsp ACollection, AObj : TObject
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a través de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = ACompName), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AObj:= GetObjectProp(C,APropName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ACollection := TCollection(AObj).Los elementos[0]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(ACollection, 'Título', ACaption)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Existen muchas posibilidades de que esto funciona para utilizar en sus proyectos.
Principalmente no son útiles para la lengua-relaciones de la piel o de los componentes.
Las posibilidades son infinitas.
espero que mi artículo era algo útil para usted.
me gusta compartir el conocimiento con otros desarrolladores.
mantener en la codificación :-)
Jürgen Sommer










¿Como puedo acceder a las propiedades de las clases por el nombre?


¿Como puedo acceder a las propiedades de las clases por el nombre? : Multi-millones de consejos para hacer su vida mas facil.


¿Como puedo acceder a las propiedades de las clases que no son implementadas a traves de la utiliza-clausula, el hecho de saber sus nombres?
Usted tiene que utilizar el TypInfo de la unidad.
propiedades Simples, como las cadenas y enteros, se puede acceder en la
de la siguiente manera:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterProp(Nombre, APropName, AValue:string)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a traves de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = Nombre), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(C,APropName, AValue)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Ahora bien, hay tambien algunas Propiedades como Fuente. ¿Como puedo llegar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp esos sub-propiedades?
Aqui es una solucion para que:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterFontColor(Nombre:string AColor:TColor)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
& nbsp & nbsp & nbsp & nbsp & nbsp AObj : TObject
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a traves de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = Nombre), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AObj := GetObjectProp(C,'Fuente')

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(AObj,'Color',AColor)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Y, finalmente, usted tiene muchas propiedades indizadas como TStrings
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp o cosas.
Ahora bien, ¿como hago para llegar a esas propiedades indizadas?
Todas las propiedades indizadas se almacenan en TCollection-Objetos. Por lo que
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp usted tiene que Convertir de ellos, como en el siguiente funcion:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utiliza TypInfo
procedimiento AlterIndexObject(ACompName, APropName:string ACaption: string)
var i : integer
& nbsp & nbsp & nbsp & nbsp & nbsp C : TComponent
& nbsp & nbsp & nbsp & nbsp & nbsp ACollection, AObj : TObject
begin
& nbsp & nbsp & nbsp & nbsp // Ejecutar a traves de todos los Componentes para encontrar el Componente
& nbsp & nbsp & nbsp & nbsp for i:=0 a Form1.Componentcount-1 hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp C := Form1.Componentes[i]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (C. Nombre = ACompName), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AObj:= GetObjectProp(C,APropName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ACollection := TCollection(AObj).Los elementos[0]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetPropValue(ACollection, 'Titulo', ACaption)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Existen muchas posibilidades de que esto funciona para utilizar en sus proyectos.
Principalmente no son utiles para la lengua-relaciones de la piel o de los componentes.
Las posibilidades son infinitas.
espero que mi articulo era algo util para usted.
me gusta compartir el conocimiento con otros desarrolladores.
mantener en la codificacion :-)
Jürgen Sommer



¿Cómo puedo acceder a las propiedades de las clases por el nombre?

¿Cómo puedo acceder a las propiedades de las clases por el nombre? : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación