Information RTTI
Les informations de type à l'exécution (RTTI) sont générées pour les membres publiés d'une classe. Elles permettent à une application d'interroger dynamiquement les champs et les propriétés d'un objet et de localiser ses méthodes.
Une classe ne peut avoir de membres publiés que si elle est compilée avec l'état {$M+} ou si elle descend d'une classe compilée avec l'état {$M+}. La plupart des classes contenant des membres publiés dérivent de TPersistent qui est compilée avec l'état {$M+}, il est donc rarement nécessaire d'utiliser la directive $M.
L'unité TypInfo de Delphi contient les fonctions et les méthodes donnant l'accès aux membres publiés, comme la fonction GetPropList.

L'exemple de code ci-dessous permet d'obtenir dans une boîte de liste les noms des membres publiés de la classe TExmpl :

procedure TForm1.Button1Click(Sender: TObject);
var
  PropList: PPropList;
  i: Integer;
begin
  PropList := AllocMem(SizeOf(PropList^));
  i := 0;
  try
    GetPropList(TExmpl.ClassInfo, tkAny, PropList);
    while (PropList^[i] <> nil) and (i < High(PropList^)) do
    begin
      ListBox1.Items.Add(PropList^[i].Name + ':' + PropList^[i].PropType^.Name);
      Inc(i);
    end
  finally
    FreeMem(PropList);
  end;
end;

Début

Copyright © 2003 OBJECT-EVERYWHERE. Tous droits réservés | Bertrand Goetzmann