Comment puis-je accéder aux propriétés de la classe par son nom?


Comment puis-je accéder à des propriétés de classes qui ne sont pas mises en œuvre par les usages de la clause, il suffit de savoir leurs noms?
Vous devez utiliser le TypInfo unité.
propriétés Simples, comme les chaînes et les entier peut être consulté dans le
de la manière suivante:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procédure AlterProp(Anom, APropName, AValue:string)
var i : entier
& ! & ! & ! & ! & nbsp C : TComponent
begin
& ! & ! & ! & nbsp // Courir à travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 à Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = Nom)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(C,APropName, AValue)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Maintenant, il y a également certaines Propriétés comme la Police. Comment puis-je atteindre
& ! & ! & ! & ! & ! & ! & ! & nbsp ceux des sous-propriétés?
Voici une solution:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procédure AlterFontColor(Nom:string AColor:TColor)
var i : integer
& ! & ! & ! & ! & nbsp C : TComponent
& ! & ! & ! & ! & nbsp AObj : TObject
begin
& ! & ! & ! & nbsp // Courir à travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 à Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = Nom)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AObj := GetObjectProp(C,'Police')

& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(AObj,'Color',AColor)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Et enfin, vous avez de nombreuses propriétés indexées comme TStrings
& ! & ! & ! & ! & ! & ! & ! & nbsp ou des trucs.
Maintenant, comment puis-je atteindre ces propriétés indexées?
Tous les propriétés sont stockées dans TCollection-Objets. Donc,
& ! & ! & ! & ! & ! & ! & ! & nbsp vous avez Catalogué comme dans la fonction suivante:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procédure AlterIndexObject(ACompName, APropName:string ACaption: string)
var i : entier
& ! & ! & ! & ! & nbsp C : TComponent
& ! & ! & ! & ! & nbsp ACollection, AObj : TObject
begin
& ! & ! & ! & nbsp // Courir à travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 à Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = ACompName)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AObj:= GetObjectProp(C,APropName)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ACollection := TCollection(AObj).Les éléments[0]
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(ACollection, 'Caption', ACaption)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Il ya beaucoup de possibilités pour cette les fonctions à utiliser dans vos projets.
Principalement, il existe d'utile pour la langue relèves ou de la peau-composants.
Les possibilités sont infinies.
j'espère que mon article était un peu utile pour vous.
je tiens à partager des connaissances avec d'autres développeurs.
garder sur le codage :-)
Jürgen Sommer










Comment puis-je acceder aux proprietes de la classe par son nom?


Comment puis-je acceder aux proprietes de la classe par son nom? : Plusieurs milliers de conseils pour vous faciliter la vie.


Comment puis-je acceder a des proprietes de classes qui ne sont pas mises en œuvre par les usages de la clause, il suffit de savoir leurs noms?
Vous devez utiliser le TypInfo unite.
proprietes Simples, comme les chaînes et les entier peut etre consulte dans le
de la maniere suivante:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procedure AlterProp(Anom, APropName, AValue:string)
var i : entier
& ! & ! & ! & ! & nbsp C : TComponent
begin
& ! & ! & ! & nbsp // Courir a travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 a Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = Nom)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(C,APropName, AValue)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Maintenant, il y a egalement certaines Proprietes comme la Police. Comment puis-je atteindre
& ! & ! & ! & ! & ! & ! & ! & nbsp ceux des sous-proprietes?
Voici une solution:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procedure AlterFontColor(Nom:string AColor:TColor)
var i : integer
& ! & ! & ! & ! & nbsp C : TComponent
& ! & ! & ! & ! & nbsp AObj : TObject
begin
& ! & ! & ! & nbsp // Courir a travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 a Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = Nom)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AObj := GetObjectProp(C,'Police')

& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(AObj,'Color',AColor)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Et enfin, vous avez de nombreuses proprietes indexees comme TStrings
& ! & ! & ! & ! & ! & ! & ! & nbsp ou des trucs.
Maintenant, comment puis-je atteindre ces proprietes indexees?
Tous les proprietes sont stockees dans TCollection-Objets. Donc,
& ! & ! & ! & ! & ! & ! & ! & nbsp vous avez Catalogue comme dans la fonction suivante:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Utilise TypInfo
procedure AlterIndexObject(ACompName, APropName:string ACaption: string)
var i : entier
& ! & ! & ! & ! & nbsp C : TComponent
& ! & ! & ! & ! & nbsp ACollection, AObj : TObject
begin
& ! & ! & ! & nbsp // Courir a travers tous les Composants de trouver le bon Composant
& ! & ! & ! & nbsp for i:=0 a Form1.Componentcount-1 do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp C := Form1.Composants[i]
& ! & ! & ! & ! & ! & ! & ! & nbsp si (C. Nom = ACompName)
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AObj:= GetObjectProp(C,APropName)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ACollection := TCollection(AObj).Les elements[0]
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SetPropValue(ACollection, 'Caption', ACaption)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & -
Il ya beaucoup de possibilites pour cette les fonctions a utiliser dans vos projets.
Principalement, il existe d'utile pour la langue releves ou de la peau-composants.
Les possibilites sont infinies.
j'espere que mon article etait un peu utile pour vous.
je tiens a partager des connaissances avec d'autres developpeurs.
garder sur le codage :-)
Jürgen Sommer



Comment puis-je accéder aux propriétés de la classe par son nom?

Comment puis-je accéder aux propriétés de la classe par son nom? : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation