Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
Delphi 12 Athens
|
Re: Propertys einer Componente für eine Klasse mittels RTTI
26. Mär 2009, 23:24
Delphi-Quellcode:
Uses Types, TypInfo;
Function GetClassPropList(C: TClass): TStringDynArray;
Var L, L2: PPropList;
i, i2, i3, i4: Integer;
Begin
L := nil;
L2 := nil;
i := 0;
i2 := 0;
Try
If Assigned(C) Then Begin
i := GetPropList(C.ClassInfo, L);
C := C.ClassParent;
If Assigned(C) Then i2 := GetPropList(C.ClassInfo, L2);
End;
For i3 := 0 to i - 1 do
For i4 := 0 to i2 - 1 do
If Assigned(L[i3]) and (L[i3].Name = L2[i4].Name) Then L[i3] := nil;
i4 := 0;
For i3 := 0 to i - 1 do
If Assigned(L[i3]) Then Inc(i4);
SetLength(Result, i4);
i4 := 0;
For i3 := 0 to i - 1 do
If Assigned(L[i3]) Then Begin
Result[i4] := L[i3].Name;
Inc(i4);
End;
Finally
If Assigned(L) Then FreeMem(L);
If Assigned(L2) Then FreeMem(L2);
End;
End;
Var C: TClass;
R: TStringDynArray;
i: Integer;
Begin
C := TScrollingWinControl; //C := GetClass('TScrollingWinControl');
R := GetClassPropList(C);
For i := 0 to High(R) do Memo1.Lines.Add(R[i]);
End;
getestet und läuft ... nur GetClass findet die Klasse nicht
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|
|
Zitat
|