Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen?


Wie kann ich zugreifen Eigenschaften von Klassen, die nicht implementiert sind, über die Verwendungen-Klausel, nur zu wissen, ihre Namen?
Du musst die TypInfo Einheit verwenden.
Einfache Eigenschaften, wie Zeichenfolgen und Integer, zugegriffen werden können, der
wie folgt:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterProp (AName, APropName, AValue:string);
Var ich: Ganzzahl;
C: TComponent;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = AName) dann
beginnen
SetPropValue (C, APropName, AValue);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Jetzt gibt es auch einige Eigenschaften wie Schriftart. Wie erreiche ich
Diese Untereigenschaften?
Hier ist eine Lösung dazu:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterFontColor (AName:string; AColor:TColor);
Var ich: Ganzzahl;
C: TComponent;
AObj: TObject;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = AName) dann
beginnen
AObj: = GetObjectProp(C,'Font');

SetPropValue(AObj,'Color',AColor);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Und endlich haben Sie viele indizierte Eigenschaften wie TStrings
oder Sachen.
Jetzt wie erreiche ich die indizierten Eigenschaften?
Alle indizierte Eigenschaften sind in TCollection-Objekten gespeichert. Also
Du musst Typecast wie sie in der folgenden Funktion:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterIndexObject (ACompName, APropName:string; ACaption: string);
Var ich: Ganzzahl;
C: TComponent;
ACollection, AObj: TObject;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = ACompName) dann
beginnen
AObj: = GetObjectProp(C,APropName);
ACollection: = TCollection(AObj). Elemente [0];
SetPropValue (ACollection, 'Caption', ACaption);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Es gibt viele Möglichkeiten für diese Funktionen in Ihren Projekten verwenden.
Vor allem gibt es nützlich für Sprache-Änderungen oder Haut-Komponenten.
Die Möglichkeiten sind endlos.
Ich hoffe, dass mein Artikel etwas für Sie nützlich war.
Ich möchte wissen mit anderen Entwicklern zu teilen.
halten Sie im Codierung :-)
Jürgen Sommer










Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen?


Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen? : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Wie kann ich zugreifen Eigenschaften von Klassen, die nicht implementiert sind, über die Verwendungen-Klausel, nur zu wissen, ihre Namen?
Du musst die TypInfo Einheit verwenden.
Einfache Eigenschaften, wie Zeichenfolgen und Integer, zugegriffen werden können, der
wie folgt:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterProp (AName, APropName, AValue:string);
Var ich: Ganzzahl;
C: TComponent;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = AName) dann
beginnen
SetPropValue (C, APropName, AValue);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Jetzt gibt es auch einige Eigenschaften wie Schriftart. Wie erreiche ich
Diese Untereigenschaften?
Hier ist eine Lösung dazu:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterFontColor (AName:string; AColor:TColor);
Var ich: Ganzzahl;
C: TComponent;
AObj: TObject;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = AName) dann
beginnen
AObj: = GetObjectProp(C,'Font');

SetPropValue(AObj,'Color',AColor);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Und endlich haben Sie viele indizierte Eigenschaften wie TStrings
oder Sachen.
Jetzt wie erreiche ich die indizierten Eigenschaften?
Alle indizierte Eigenschaften sind in TCollection-Objekten gespeichert. Also
Du musst Typecast wie sie in der folgenden Funktion:
-------------------------------------------------------------
TypInfo verwendet;
Prozedur AlterIndexObject (ACompName, APropName:string; ACaption: string);
Var ich: Ganzzahl;
C: TComponent;
ACollection, AObj: TObject;
beginnen
Führen Sie durch alle Komponenten, die richtigen Komponenten zu finden
für i: = 0 to Form1.Componentcount-1
beginnen
C: = Form1.Components[i];
Wenn (C.ID = ACompName) dann
beginnen
AObj: = GetObjectProp(C,APropName);
ACollection: = TCollection(AObj). Elemente [0];
SetPropValue (ACollection, 'Caption', ACaption);
Ende;
Ende;
Ende;
-------------------------------------------------------------
Es gibt viele Möglichkeiten für diese Funktionen in Ihren Projekten verwenden.
Vor allem gibt es nützlich für Sprache-Änderungen oder Haut-Komponenten.
Die Möglichkeiten sind endlos.
Ich hoffe, dass mein Artikel etwas für Sie nützlich war.
Ich möchte wissen mit anderen Entwicklern zu teilen.
halten Sie im Codierung :-)
Jürgen Sommer



Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen?

Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen? : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Wie kann ich die Eigenschaften der Klassen nach Namen zugreifen?
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung