Bei OnKeypress Event Fkt aufrufen



  • Hi,

    kann mir einer sagen wie ich bei einem OnKeyPress eine Fkt aufrufen und am besten noch den "Key" übergeben kann?
    Hab das ganze bisher so versucht aber es will nicht:

    1  feld = new TEdit(parent);
    2  feld->OnKeyPress = fkt1(Key);
    

    p.s. die Felder werden dynamisch erstellt also kann ich nicht einfach mit dem Objektinspektor arbeiten 😕



  • Hallo,

    dein Ansatz stimmt schon, aber übergeben musst du gar nix :)!

    void __fastcall TForm1::OwnKeyPress(TObject *Sender, char &Key)
    {
       //DoSomething();
    }
    //------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       // feld erzeugen
       feld->OnKeyPress = OwnKeyPress;
    }
    //------------------------------------------------------------------
    

    mfg, Micha!



  • öhmn also bei mir spuckt er dann das aus:

    [C++ Fehler] Column.cpp(55): E2034 Konvertierung von 'void (* (_closure )())()' nach 'TKeyPressEvent' nicht möglich

    edit:

    die methode ist in der selben klasse richtig definiert und deklariert. Tut aber dennoch nicht.



  • Hallo

    Die Fehlermeldung besagt das deine Methode OwnKeyPress parameterlos ist, obwohl dort die ganzen Parameter sein sollten wie es der TKeyPressEvent verlangt.

    bis bald
    akari



  • selbes Spiel mit eingefügten Parametern:

    [C++ Fehler] Column.cpp(59): E2034 Konvertierung von 'void (* (_closure )(TObject *,char &))(TObject *,char &)' nach 'TKeyPressEvent' nicht möglich

    Ich glaub ich mach irgendwas grundlegend falsch.
    Also biser siehts so aus: ("wert" ist ein Edit Feld)

    //Methode zum aufrufen
    void Column::write(TObject *Sender, char &Key){// was tun usw}
    
    // Zuweisung
    wert->OnKeyPress = write;
    


  • ok, "__fastcall" hat das problem gelöst

    Vielen Dank!


Anmelden zum Antworten