TComboBox mit mehreren Ereignissen steuern



  • Hallo zusammen,

    ich möchte eine ComboBox folgendermaßen benutzen.
    Wenn ich mit der Maus ein Item ausgewählt habe, soll dieses in ein StringGrid eingetragen werden. Ich möchte aber auch noch realisieren, dass ich ohne auswählen der Maus einen begriff eingeben kann der dann über autocomplete = true gefunden wird. Nun möchte ich entweder den gefundenen Wert über drücken der ENTER Taste in das StringGrid schreiben, oder nochmal mit der Maus die ComboBoxListe durchgehen und einen anderen Wert in das StringGrid schreiben können. Das Problem ist nun, dass das OnSelect und OnClick- Ereignis immer ausgelöst wird nachdem man eine beliebige Taste gedrückt hat.

    Kann mir einer einen Tip geben wie ich das umsetzten kann?

    Vielen Dank für die Antworten
    Gruß



  • Du musst dann in den Ereignissen auf die Enter-Taste prüfen. Relevant ist das ber eigentlich nur im KeyPress der Combobox.



  • Ergänzend ist noch das Problem zu erwähnen, dass die Eigenschaft "AutoComplete"
    mehrere gleich anfangende Einträge nicht unterscheidet.

    Wenn ich z.B. folgende Elemente in der ComboBox habe:

    1 - Begin
    2 - Ende
    3 - Mache was
    1.1 - Das ist ein Test
    1.3 - Test
    ...

    dann kann ich nur die 1 - Begin über das manuelle Eintragen erreichen, die

    1.1 und 1.3 können damit nicht mehr ausgewählt werden. Das beste wäre, wenn ich manuelle in die ComboBox die 1 eingeben könnte so das er mir die 1- Begin als auswahl anzeigt. Dennoch sollte ich danach den Punkt eingeben können, so dass er mir in der Liste das 1.1 Item anzeigt usw.



  • Dann musst du eine eigene Komponente entwickeln, die deine Anforderungen erfüllt



  • @Christian411:

    Wie ich die ENTER Taste abfange kann weiß ich jetzt

    if( Key == VK_RETURN )
    {
    
    }
    

    doch kann ich eigentlich auch die linke Maustaste abfangen??



  • Dazu müsstest du OnMouseDown in die Combobox bringen, d.h. ein eigenes Ereignis implementieren



  • Hmmm und weißt du wie das geht?

    Hab nämlich keine Ahnung!




Log in to reply