Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scroll-Tastaturereignis in Listbox abfagen (https://www.delphipraxis.net/109944-scroll-tastaturereignis-listbox-abfagen.html)

Pfoto 10. Mär 2008 14:53


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

mirage228 10. Mär 2008 14:56

Re: Scroll-Tastaturereignis in Listbox abfagen
 
Hey,

Versuch mal das OnKeyDown Ereignis.

mfG
mirage228

Pfoto 10. Mär 2008 15:30

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