AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Button überspringt OnKeyDown bei VK_Up / VK_Down
Thema durchsuchen
Ansicht
Themen-Optionen

Button überspringt OnKeyDown bei VK_Up / VK_Down

Ein Thema von Aike · begonnen am 20. Apr 2007 · letzter Beitrag vom 24. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#1

Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 13:04
Hallöchen,

ich musste gerade verwundert feststellen, dass ich meine Buttons zwar durchlaufen kann mit VK_Up und VK_Down, aber wenn ich möchte, dass bei OnKeyDown der Knopf gedrückt werden soll, geht das nicht. Um genauer zu sein:
Ich habe eine Liste von 5 Buttons in der Vertikalen. Wenn ich nun den obersten Knopf gedrückt habe, möchte ich, dass, wenn ich die Pfeiltaste nach unten drücke, der Button darunter gedrückt und fokusiert wird.

Code-Schnipsel:
Delphi-Quellcode:
procedure TForm1.Button1KeyDown(Sender: TObject; ...);
begin
  ShowMessage('');
  if Key=VK_Down then
  begin
    ButtonDarunterAnvisieren;
  end;
end;
Es wird nichtmal die ShowMessage angezeigt, wenn ich die Pfeiltasten benutze. Mit Buchstaben funktioniert es natürlich einwandfrei.

Habt ihr eine Idee, wie ich das abfangen kann?

Liebe Grüße ...
Achim
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 13:15
Die Pfeiltasten gehoeren zu den Dialog-Tasten wie der Tabulator. Sie werden also normalerweise schon vorher abgefangen und bewirken das der Focus auf den naechsten Button wechselt. Mach doch einfach mal eine Form mit ein paar Buttons und probier aus.
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 13:23
Ist im OI Deines Forms
Keypreview := True;
Uwe
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#4

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 14:08
Zitat von Robert Marquardt:
Die Pfeiltasten gehoeren zu den Dialog-Tasten wie der Tabulator. Sie werden also normalerweise schon vorher abgefangen und bewirken das der Focus auf den naechsten Button wechselt. Mach doch einfach mal eine Form mit ein paar Buttons und probier aus.
Das ist ja genau mein Problem, aber wie löse ich es? o.O

KeyPreview:=True ... hilft mir auch nicht weiter.

Die Hilfe sagt:
Zitat:
"Hat KeyPreview den Wert true, erhält das Formular Tastaturereignisse vor dem aktiven Steuerelement (das in der Eigenschaft ActiveControl angegeben ist).
[...] Die Einstellung bezieht sich nicht auf Navigationstasten (TAB, Pfeiltasten usw.), da diese keine Tastaturereignisse auslösen."
Das hat also nichts mit den Steuertasten zu tun :-/
Achim
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 14:15
Ich sehe keinen Sinn in dem was du machen willst. Das Konzept des Fokus und der Standardnavigationstasten fuer den Fokus ist Basis von Windows und damit der VCL. Da ohne Not einzugreifen macht das Programm nur verwirrend.
Warum willst du den Button gleich druecken? Was soll die Programmoberflaeche eigentlich machen? Ich wette die Idee Buttons zu verwenden ist der Aufgabe unangemessen.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 14:38
mich interessiert wie Robert der Beweggrund. Der Windowsnutzer erwartet bei Verwendung der Pfeiltasten das Windowsstandardverhalten.
Ich weiß zwar die Lösung, aber noch bin ich nicht gewillt diese raus zu rücken da ich nicht will das irgend ein Nutzer ein böses erwachen erlebt weil plötzlich etwas passiert das eigentlich nur beim klick auf den Button passieren sollte.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#7

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 15:21
Meine Anforderung scheint ja sehr viel Aufmerksamkeit zu erregen; den Grund verstehe ich aber nicht so genau, da es eigentlich recht trivial ist. Ich habe ja nicht nach Code zu bösartiger Software gefragt.

Hier ein Bild, das meine Oberfläche zeigt:
http://www.files.artherk.de/FastCast_Optionen.jpg

Ihr seht links die fünf Schalter, die durchlaufen werden können. Je nachdem, welcher Schalter gedrückt wurde, wird ein anderes Panel gezeigt mit anderen Einstellungsmöglichkeiten. Ich habe es realisiert, dass man die Buttons mit 1,2,3,4,5 öffnen kann, aber dass man sie mit den Pfeiltasten nicht erreicht, ist mir ein Dorn im Auge.

So, jetzt lasst aber mal hören, wie die Lösung aussieht ;-p

[edit]
Zitat:
Ich wette die Idee Buttons zu verwenden ist der Aufgabe unangemessen.
Die Wette nehm ich an ;-p
[/edit]
Achim
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 15:47
Hi,

Hilft dir die Routine OnEnter weiter?:

Delphi-Quellcode:
procedure TForm1.Button1Enter(Sender: TObject);
begin
  if Sender = Button1 then
    Panel1.Visible := True;
end;
Ansgar
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#9

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 16:02
Ah, super, die OnEnter-Routine funktioniert. Vielen lieben Dank
Achim
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Button überspringt OnKeyDown bei VK_Up / VK_Down

  Alt 20. Apr 2007, 18:06
Ich hatte auch recht. Das mit Buttons zu loesen ist falsch. Fuer diese Organisationsart ist ein TTabControl zustaendig.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz