![]() |
Problem mit der Tastensteuerung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
hab folgendes Problem: hab auf einer Form eine TrackBar und ComboBox. Die muss ich mit den Richtungstasten steuern, und zwar wie folgt: Links- u. Rechtstaste verschieben den Slider der TrackBar nach links und rechts. Hoch- u. Runtertaste zeigen den nächsten bzw. letzten String auf einer Label. Hab schon stundenlang daran "geschraubt" und folgenden Code zusammen gebastelt.... aber irgendwie funktioniert das nicht. Das Problem liegt irgendwo in der Selektierung. Möchte es aber so haben, dass man kein Objekt extra selektieren muss, die Tasten müssen ihre Funktion sofort erledigen. Also wie gesagt, kriege es nicht hin. Das Projekt liegt bei.
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var l, h: Integer; begin if (Key=VK_Left) then begin l:=TrackBar1.Position; Dec(l); TrackBar1.Position:=l; end else if (Key=VK_Right) then begin l:=TrackBar1.Position; Inc(l); TrackBar1.Position:=l; end else if (Key=VK_Up) then begin h:=ComboBox1.ItemIndex; Dec(h); ComboBox1.ItemIndex:=h; ComboBox1Click(Sender); end else if (Key=VK_Down) then begin h:=ComboBox1.ItemIndex; Inc(h); ComboBox1.ItemIndex:=h; ComboBox1Click(Sender); end; end; |
Re: Problem mit der Tastensteuerung
Kann mir denn keiner helfen? :pale:
|
Re: Problem mit der Tastensteuerung
Pushen ist erst nach 24 Stunden erlaubt. :!:
|
Re: Problem mit der Tastensteuerung
Ich verstehe nicht so wirklich was du erreichen willst.
Aber wenn du auf Änderungen in einer TComboBox reagieren willst, benutze das OnChane-Ereignis. Und hier hab ich den Code im FormKeyDown() mal aufgeräumt, bestimmt kommst du so schneller drauf.
Delphi-Quellcode:
Um ein TWinControl nicht anwählbar zu machen musst du die Eigenschaft TabStop auf false setzen.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin case Key of VK_Left: TrackBar1.Position := TrackBar1.Position - 1; VK_Right: TrackBar1.Position := TrackBar1.Position + 1; VK_Up: begin ComboBox1.ItemIndex := ComboBox1.ItemIndex - 1; ComboBox1Change(Sender); end; VK_Down: begin ComboBox1.ItemIndex := ComboBox1.ItemIndex + 1; ComboBox1Change(Sender); end; end; end; |
Re: Problem mit der Tastensteuerung
Also, ich verstehe das Problem noch nicht ganz.
Probleme kann es jedoch geben wenn du die beiden Komponenten im onChange Event verknüpfst. Die Formatierung mit vielen If Then finde ich auch sehr unübersichtlich, besser fände ich dabei schonmal
Delphi-Quellcode:
case Key of
VK_Right : begin end; VK_Up : begin end; VK_Down : begin end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 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