Dauer EventHandler erstellen?



  • Hallo,

    gibt es eine möglichkeit jedes event was in irgendeiner weise mit einer komponente passiert vorher auf eine bestimmte handler-funktion zu schleifen, und wieder weiterleiten zu lassen an den ursprünglichen handler.

    sprich:

    ein click auf ein textfeld wird (als aller erstes) an eine bestimmte funtkion gesendet, die wird bearbeitet, und wenn fertig, wird der mausclick ausgeführt.

    ich habe leider keinerlei ahnung, wie man so etwas realisiert?

    soll aber auch nur bei eventspassieren, welche eine event-handler-routine haben, als wenn dblclick nicht gebraucht wird, soll da auch nichts abgefangen werden.

    dank im voraus und gruß

    gerd



  • koenntest die WindowProc der komponente ersetzen und auf die windowsbotschaften reagieren.

    TWndMethod OldWndProcKomponente ;
    void __fastcall NewWndProcPageControl(TMessage &Msg);
    
    OldWndProcKomponente   = Komponente->WindowProc;
    Komponente->WindowProc = NewWndProcKomponente;
    
    void __fastcall TForm1::NewWndProcKomponente(TMessage &Msg)
    {
      // Botschaft auswerten
      if (Msg.Msg == WM_xxx)
      {
        // mach was
      }
    
      // Original-Windowprozedur aufrufen
      OldWndProcKomponente(Msg);
    }
    


  • vielen dank, und das ereignis wird danach aber abgehandelt? wäre wichtig. sodass er vorher hier reinspringt?

    gruß gerd


Anmelden zum Antworten