Friday, 11 September 2009

Jugando con la RTTI en Delphi 2010

Ya he empezado a manejar la nueva RTTI que ofrece Delphi 2010 y me he quedado asombrado. Utilizando unos métodos muy simples podemos obtener la información de todas nuestras clases de una manera muy elegante. Increíble!, os recomiendo pasar por el fichero rtti.pas y ver las tripas de la bestia, ya que podemos ver bastante información ahí sobre las nuevas clases implementadas. Mediante un simple programa, puedo obtener la lista de métodos y propiedades de mis clases e incluso hacer la llamada a éstas. La verdad es que con ésta versión estoy notando mucho cambio. Entre las versiones 2007 y 2009 el cambio era menor y la verdad que migrar de un lado para otro era bastante fácil y rápido. Ahora el concepto cambia totalmente y tenemos un editor muy potente.

Aquí os dejo un trozo de código, para mostrar todos los métodos y propiedades que tiene mi clase TBox, ya veréis que la llamada es muy fácil:


uses
TypInfo, Rtti;

procedure List();
var
context: TRttiContext;
method: TRttiMethod;
properties: TRttiProperty;
begin
context := TRttiContext.Create;
Memo1.Clear;
Memo1.Lines.Add('Properties');
for properties in context.GetType(TBox).GetProperties do
Memo1.Lines.Add(properties.ToString);
Memo1.Lines.Add('Methods');
for method in context.GetType(TBox).GetMethods do
Memo1.Lines.Add(method.ToString);
context.Free;
end;


Y el resultado, aún mejor:



  • Enlaces de interés:
Enum Information using RTTI.
RTTI Basics Delphi 2010.

0 comments:

Post a Comment