Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Überprüfen ob Komponente bestimmte Eigenschaft hat


elundril - Fr 04.09.09 11:44
Titel: Überprüfen ob Komponente bestimmte Eigenschaft hat
Hallo,

ja der Titel sagt eigentlich eh schon alles. Ich will überprüfen ob eine Komponente eine bestimmte Eigenschaft hat. In meinem speziellen Fall ob bei der Komponente die Eigenschaft Caption vorhanden ist. Ich hab mir zuerst gedacht, ich überprüf einfach ob die Komponente ein Nachfahre der Klasse ist, bei der das implementiert wurde. Jedoch haben die alle keinen gemeinsamen vorfahren der die eigenschaft als erstes implementiert hat.

lg elundril


Delete - Fr 04.09.09 11:47


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
uses TypInfo;

function CompHasCaption(AClass : TObject; out sResult: string): Boolean;
const sProp = 'Caption';
var
  MyPropInfo: PPropInfo;
begin
  sResult := '';
  MyPropInfo := GetPropInfo(AClass.ClassInfo, sProp);
  Result := Assigned(MyPropInfo);
  if Result then
    sResult := GetPropValue(AClass, sProp);
end;


elundril - Fr 04.09.09 11:53

Wow, das ging fix und funktioniert prächtigst!!! Dank dir vielmals!!

lg elundril


Delete - Fr 04.09.09 12:00

Das hatte ich in der DP schon einmal geschrieben und musste daher nur kopieren ;)