![]() |
Scroll-Tastaturereignis in Listbox abfagen
Hallo zusammen!
Ich will eine Item-Tauschen Funktion in eine Listbox implementieren, wenn der User STRG+Pfeiltaste drückt. Dazu überschreibe ich OnKeyUp und fange die Tasten mit VK_UP und VK_DOWN ab. Wie sich herausstellt, ist zu diesem Zeitpunkt jedoch schon der ItemIndex ebenfalls weitergerückt, so dass ich keine Item-Welchsel-Dich Sache einbauen kann.
Delphi-Quellcode:
procedure TAdvListBox.KeyUp(var Key: Word; Shift: TShiftState);
begin case Key of { Item-Position vertauschen } VK_UP: If ssCtrl in Shift then DoMoveItem(ItemIndex+1, -1); VK_DOWN: If ssCtrl in Shift then DoMoveItem(ItemIndex-1, +1); else inherited KeyUp(Key, Shift); end; end; Der Methode DoMoveItem gebe ich aktuelle mit ItemIndex +1 / -1 den vorherigen ItemIndex mit -- aber natürlich funktioniert dass nicht, wenn der ItemIndex am Anfang oder Ende steht. Ich komme also nicht umhin, den echten ItemIndex kurz nach dem Drücken der Pfeiltasten auszulesen, noch bevor der ItemIndex in der Listbox aktualisiert wird. Wisst ihr, wie ich das bewerkstelligen kann? Dank und Gruß Pfoto |
Re: Scroll-Tastaturereignis in Listbox abfagen
Hey,
Versuch mal das OnKeyDown Ereignis. mfG mirage228 |
Re: Scroll-Tastaturereignis in Listbox abfagen
auf diese einfache Lösung bin ich gar nicht gekommen,
aber es funktioniert (und mit OnKeyDown kann ich in diesem Fall gut leben). Danke für den Tipp! Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz