Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

OnIrgendwas Handler lokal zuweisen --> Typfehler...

  Alt 17. Okt 2007, 10:28
Hallo!


Folgendes Problem:

Delphi-Quellcode:
type
  TMeineKlase = class(TObjekt)
  private
    procedure MachIrgendwas;
    ...
  end;

...

  procedure TMeineKlasse.MachIrgendwas;
  var Obj: TEinObjekt;
      str: string;

      procedure IrgendwasPassiert(Param1: string; Param2: integer);
      begin
        ReagiereIrgendwie();
        str := str + Param1;
      end;
  begin
    Obj := TEinObjekt.Create;
    Obj.OnIrgendwas := IrgendwasPassiert;

    Obj.MachWas;

    Obj.Free:
  end;
In der Methode MachIrgendwas() einer eigenen Klasse wird also ein Objekt erzeugt und ein EventHandler zugewiesen. Beim Compilieren erhalten ich aber immer die Meldung E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'.

Das Ereignis TEinObjekt.OnIrgendwas ist dabei vom Typ TIrgendeinEvent:
Delphi-Quellcode:
...
  TIrgendeinEvent = procedure(Param1: string; Param2: integer) of object;
...
Die Signatur der lokalen Procedure IrgendwasPassiert() passt also zu TIrgendeinEvent und trotzdem erhalte ich die genannte Fehlermeldung.

Was mache ich hier falsch?

Besten Dank für eure Hilfe!
Ares
  Mit Zitat antworten Zitat