Ereignis manuell einer Methode zuweisen



  • Hallo!

    Bei einem bestimmte Ereignis soll eine Methode ausgeführt werden. Bei dem OnClick-Event klappt das wunderbar.

    pMonthCalendar->OnClick = MonthCalendarClick;
    pMonthCalendar->OnGetMonthInfo = MonthCalendarGetMonthInfo;
    

    Beim OnGetMonthInfo bekomm ich beim kompilieren folgende Fehlermeldung:

    [C++ Fehler] dgo_ee.cpp(443): E2034 Konvertierung von 'void (_fastcall * (_closure )(TObject *,unsigned long,unsigned long &))(TObject *,unsigned long,unsigned long &)' nach 'void (_fastcall * (_closure )(TObject *,unsigned int,unsigned int &))(TObject *,unsigned int,unsigned int &)' nicht möglich
    

    In der Header-Datei habe ich unter private folgendes

    void __fastcall MonthCalendarGetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo);
    


  • Enrico Stahn schrieb:

    [C++ Fehler] dgo_ee.cpp(443): E2034 Konvertierung von 
    'void (_fastcall * (_closure )(TObject *,unsigned long,unsigned long &))(TObject *,unsigned long,unsigned long &)'
    nach
    'void (_fastcall * (_closure )(TObject *,unsigned int,unsigned int &))(TObject *,unsigned int,unsigned int &)'
    nicht möglich
    

    Hast du bei den Parametern versehentlich unsigned long statt unsigned int genommen?



  • void __fastcall Tdgoee::MonthCalendarGetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo)
    {
        // ...
    }
    

    Meine Methode in der CPP-Datei sieht so aus, oder was meinst Du?



  • Probier mal

    void __fastcall Tdgoee::MonthCalendarGetMonthInfo(TObject *Sender, unsigned int Month, unsigned int &MonthBoldInfo)
    {
        // ...
    }
    

    EDIT: int vergessen.



  • Super, funktioniert. Danke.
    Bleibt nur noch die Frage warum die IDE Methoden mit DWORD erstellt und das dann auch funktioniert?

    Enrico


Anmelden zum Antworten