Einzelnen Beitrag anzeigen

Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Prüfen, ob eine Method überschriben wurde

  Alt 12. Sep 2014, 21:47
Idee:

Delphi-Quellcode:
interface

type
  TBaseClass = class
  public
    procedure DoSomething; virtual; abstract;
    constructor Create;
  end;

type
  TWorkClass = class(TBaseClass)
  public
    procedure DoSomething; override;
  end;

implementation

constructor TBaseClass.Create;
var
  Impl: procedure of object;
  Base: procedure of object;
  varClass: TClass;
begin

  Impl := DoSomething;

  varClass := self.ClassType;

  while (varClass <> nil) AND (varClass <> TBaseClass) do
    varClass := varClass.ClassParent;

  if (varClass <> nil) then
    begin
     
      Base := TBaseClass(@varClass).DoSomething;

      if TMethod(Impl).Code <> TMethod(Base).Code then
        begin
          DoSomething;
        end;

    end;

end;

Geändert von Martin W (12. Sep 2014 um 22:12 Uhr)
  Mit Zitat antworten Zitat