Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#10

Re: Propertys einer Componente für eine Klasse mittels RTTI

  Alt 26. Mär 2009, 22: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat