AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Entertaste bei Button abfangen?

Ein Thema von Armageddon · begonnen am 24. Mär 2006 · letzter Beitrag vom 1. Apr 2006
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#1

Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 19:41
Hallöchen,

kurze Frage. Möchte durch drücken der Entertaste automatisch zum nächsten Editfeld weiterspringen. Soweit funktionert das auch ganz wie ich es möchte. Nur wenn ich auf einen Button komme welcher nunmal innerhalb der Editfelder auf meinem Form in der TabOrder kommt und ich die Entertaste drücke um zum nächsten Editfeld zu kommen wird der Button gedrückt/ausgelöst. Arrrgs.

Habe es schon im OnKeyDown versucht mit:

If Key = VK_RETURN then Key := 0; aber irgendwie wills nicht so wie ich will. Wie löse ich das am besten?
Mir reicht es schon wenn ich die Leertaste drücke damit der Button gedrückt/ausgelöst wird und das tuts ja schon von Haus aus.

Danke schonmal,
Markus
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:10
Moin Markus,

nur mal so als Idee:
Wenn Du mit der Entertaste von einem Feld zum nächsten springst, wirst Du Dir ja auch eine Reihenfolge überlegt haben, in der die Felder angesprungen werden sollen.
Also könnstest Du einfach bei Enter den Fokus direkt setzen (Editxxx.SetFocus).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#3

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:15
Die Reihenfolge hab ich mir wie Du sagst überlegt. Und wird auch nach und nach richtig abgearbeitet und auch die beiden Button sind in der TabOrder drin weil ich auch dort hin muß. Nur hab ich eben das Problem sobald ich auf nem Button angekommen bin und ich Enter für das nächste DLGCtrl (hoffe ich schreib das jetzt richtig) drücke es so interpretiert wird wie wenn ich mit der Maus auf den Button klicke. Da muß es doch was geben wo dies unterbindet und der Button nur gedrückt wird wenn ich die Leertaste drücke. Brauch das weil es noch einige PC's gibt welche keine Maus haben wo das drauf laufen soll.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:19
Anwender die mit PC's ohne Maus arbeiten arbeiten in aller Regel mit der Tabtaste. Nicht umsonst heißt das Property auch TabStop, weil es eben mit der Tabtaste angesprungen werden kann. Man sollte also die Bedienführung windowsmäßig lassen. So das Enter auführen des Buttons ist und Tab zum springen von einem Control zum nächsten. Du könntest noch vesuchen ob es beim Button ein OnKeyPress oder ähnliches gibt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#5

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:23
Ist mir schon klar das dies von der Standart Windowsdingsbums weit weg ist. Aber die Anwendergruppe auf welche es abzeilt gibt ein paar Zahlen über den Zehnerblock ein und drückt halt nunmal gern die Entertaste auf dem Zehnerblock um zum nächsten Eingabefeld zu kommen. Die Tab-Taste kennen die da zum Großteil nicht weil die das auch von anderer Software so gewöhnt sind. Leider. Im KeyPress passiert genau das gleiche.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:34
Zitat von SirThornberry:
...Man sollte also die Bedienführung windowsmäßig lassen. So das Enter auführen des Buttons ist und Tab zum springen von einem...
...und somit eventuell ein Programm schreiben, was keiner DIN genügt und somit nicht nach ISO??? zertifiziert werden wird ! Das ist jetzt allgemein gemeint wegen Tab zum nächsten Control. Wird eine Tastatureingabe erwartet, z.B. bei Edits, so sollte das auf jeden Fall mit Enter abzuschließen sein, ähnlich wie bei Schreibmaschine oder Taschenrechner. Um allerdings auch dem von M$ gesetzten NICHT Industriestandard zu genügen, hindert einen aber keinen daran, WM_NEXTDLGCTRL nicht nur bei Tab, sondern auch bei Enter auszulösen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#7

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:40
*grins* Genau so seh ich das auch aber wie stell ich das an? Der Button wehrt sich. *lol*
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:41
Ich würde dann einfach vorschlagen keinen Button zu verwenden sondern selbst eine Komponente zu schreiben. Oder im OnClick des Buttons zu prüfen ob die Entertaste gerade gedrückt ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#9

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:42
Zitat:
OnClick
Ah das ne gute Idee. Soweit hab ich noch gar nicht gedacht. Werd ich Morgen gleich mal ausprobieren. Danke
  Mit Zitat antworten Zitat
engine

Registriert seit: 6. Mär 2005
73 Beiträge
 
#10

Re: Wie Entertaste bei Button abfangen?

  Alt 24. Mär 2006, 20:59
Zitat von SirThornberry:
Anwender die mit PC's ohne Maus arbeiten arbeiten in aller Regel mit der Tabtaste. Nicht umsonst heißt das Property auch TabStop, weil es eben mit der Tabtaste angesprungen werden kann. Man sollte also die Bedienführung windowsmäßig lassen. So das Enter auführen des Buttons ist und Tab zum springen von einem Control zum nächsten. Du könntest noch vesuchen ob es beim Button ein OnKeyPress oder ähnliches gibt.
Das kommt ganz auf die Anwendung an. Sicher sollte man sich immer an eine Windowseinheitliche Richtlinie halten, es gibt aber durchaus auch Anwendungsfälle bei denen es effektiver ist einen anderen Weg zu gehen. Als Beispiel möchte ich Berechnungsprogramme für den Maschinenbau heranziehen. Hierbei ist die Reihenfolge der Eingabe meistens vorgegeben. Aus meiner eigenen Erfahrung kann ich sagen, das der Wechsel zwischen den Controls nach einer Eingabe mit einem Return wesentlich angenehmer ist (jedenfalls für Rechtshänder).

Du kannst es im OnKeyPress so lösen.
Delphi-Quellcode:
procedure TForm1.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin
  case Ord(Key) of
    13 : begin //Wenn RETURN [13] gedrückt wurde
           LabeledEdit3.SetFocus; //Den Fokus an das nächste Steuerelement
           key := #0;
         end;
  end;
end;
engine
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:58 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