>M@steR< hat folgendes geschrieben : |
Mach dir doch mal ein Backup von deinem Projekt und lösch dann testweise komponente für komponente raus bis es geht. So könntest du dem Übeltäter auf die Schliche kommen. |
Hallo,
Problem erkannt. Um die Fehlerursache hier kurz zu beschreiben muss ich vorausschicken, dass es sich bei meiner Anwendung um ein Grafikprogramm handelt, bei dem der Benutzer seine gezeichneten Objekte mit der Tastatur oder Maus bewegen kann.
Das problematische Listview ist in einem untergeordneten Dialog.
Ich habe das betreffende Dialogformular mit der Listview komplett kopiert und eine eigene kleine Applikation gemacht, die das Dialogformular aufruft. Ich konnte es nicht glauben: Trotz unveränderten Formular-Quelltextes reagierte die Listview jetzt korrekt auf die Cursortasten.
Nach zwei geschlagenen Stunden Fehleranalyse ist mir dann eingefallen, dass das Hauptformular meiner Anwendung Actions (TAction) beinhaltet, die mit Tastatur-Shortcurs auf die Cursortasten <Up> <Down> <Left> und <right> reagieren. Mir war bisher nicht klar, dass diese Shortcuts auch ausgeführt werden, wenn das Hauptformular gerade nicht aktiviert ist (z.B. weil das Dialogformular gerade den Fokus hat). Ich habe es dann auch nur durch Zufall gesehen, dass der Versuch, die Listview in dem Dialog zu steuern, in wirklichkeit im Hintergrund ein gezeichnetes Gafikbild verschoben hat. Bei meinen bisherigen Tests war kein Grafikbild vorhanden... *mit den Augen roll*
Ende gut, alles gut:
Mit meiner Listview und dem Dialogform war also alles in Ordnung. Jetzt muss ich rausfinden, ob ich die Shortcut-Actions überhaupt in meinem Programm drin lassen kann. Wenn die solche Auswirkungen haben, sind die keine gute Wahl. Werde wohl beser die KeyDown-Ereignisse des Hauptformulars verwenden. So ist es ja auch empfohlen.
Vielen Dank Euch allen - ihr habt mir sehr geholfen!!!