Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 05-02-2009
poyo poyo is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
poyo Va por buen camino
Bueno, actualicé eso que veníamos hablando en el otro hilo de las VMT y actualicé el RTTIUtils.pas y lo subí al FTP (en Delphi-Win32/Recursos):

http://www.terawiki.clubdelphi.com/a.../RttiUtils.zip

Bueno, además de lo que estaba, le agregué una función que salió de esta conversación. Es la siguiente:

function IsOverrideMethod(AClass, Ancestor: TClass; MethodIndex: Integer ): boolean;

Adentro se chequea que los argumentos sean válidos y luego Itera por la jerarquía de herencias...
mmmm..... ahora que lo pienso a lo mejor está de más eso...
no sé... bué... ya está, luego veremos.

Ejemplo de Uso:

Código Delphi [-]
TPadre = class (TObject)
   procedure a; virtual; abstract;
   procedure b; virtual;
 end;

 THijoA = class (TPadre)
   procedure a; override;
 end;

 THijoB = class (TPadre)
   procedure b; override;
 end;

 THijoC = class (THijoB)
   procedure a; override;
   procedure b; override;
 end;

 THijoD = class (THijoC)
 end;

 THijoE = class (TPadre)
 end;

 THijoF = class (THijoD)
   procedure a; override;
 end;

 THijoG = class (THijoE)
 end;

 THijoH = class (THijoG)
 end;

implementation

uses 
  rttiutils;

procedure TPadre.b;
begin
end;

procedure THijoA.a;
begin
end;

procedure THijoB.b;
begin
end;

procedure THijoC.a;
begin
end;

procedure THijoC.b;
begin
end;

procedure THijoF.a;
begin
end;

procedure check(AClass: TClass);
begin
  if IsOverrideMethod(AClass,TPadre,0) then
    Showmessage(Aclass.ClassName + ': Index 0 = Override!');
  if IsOverrideMethod(AClass,TPadre,1) then
    Showmessage(Aclass.ClassName + ': Index 1 = Override!');
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Check(THijoA);
  Check(THijoB);
  Check(THijoC);
  Check(THijoD);
  Check(THijoE);
  Check(THijoF);
  Check(THijoG);
  Check(THijoH);
end;

Se escuchan comentarios, sugerencias y derivadas
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber que aplicacion tiene el foco Omega Varios 3 13-07-2008 17:36:01
Sobreescribir método Paint y saber coordenadas a refrescar Lord Delfos Gráficos 3 05-03-2008 13:48:28
saber si un field tiene el foco salvanano Conexión con bases de datos 0 08-05-2007 16:22:48
Como saber los dias que tiene un mes?? alfredosg19 Varios 3 06-03-2005 12:56:12
Saber si la Variable tiene letras cmgenny Varios 1 11-05-2004 08:00:59


La franja horaria es GMT +2. Ahora son las 10:54:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi