![]() |
AW: OnKeyPress verarbeitet ENTER nicht an
Du hast nicht zufällig noch irgendwo irgendetwas eingebaut, was die Enter-Taste in eine Tab-Taste umwandelt, damit der Focus auf das nächste Element gesetzt wird.
Ansonsten können wir Dir nur weiterhelfen, wenn Du das Projekt einmal komplett in den Anhang packst. |
AW: OnKeyPress verarbeitet ENTER nicht an
Was soll die Enter-Taste denn machen? Soll sie zum nächsten Element springen? Das macht sie nicht. Das ist nicht ihre Aufgabe. Die Enter-Taste ist zuerst nur eine Taste, mehr nicht.
Wenn du willst, dass sie etwas macht, dann musst du es schon selbst machen. |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
Sorry, BadenPower, hatte nicht gesehen, daß du das auch bereits vorgeschlagen hast. Sieh meinen Kommentar einfach als Bekräftigung des deinigen :-D |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
|
AW: OnKeyPress verarbeitet ENTER nicht an
Ich kann das Projekt nicht so ohne Weiteres anhängen, denn ich habe diverse Zukaufkomponenten drin. Ich werde aber mal das Problem nachstellen.
Ich bin auch schon etwas weiter gekommen: Das Eingabefeld dient als Eingabefeld einer Kasse, also quasi als Eingabe wie bei einem Taschenrechner - die Entertaste soll also das Summieren einleiten Neben diesem Eingabefeld gibt es nocht zwei Grids auf dem Formular und 40 Button. Ichhabe jetzt heraus bekommen, dass das drücken von Enter das OnClick Ereignis des "ersten" Buttons auslöst obwohl dieser keinen Tabstob hat, mein Enter auch nicht das Eingabefeld verlässt oder verlassen soll. |
AW: OnKeyPress verarbeitet ENTER nicht an
Steht dessen Eigenschaft Default vielleicht auf True?
|
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
Die Komponenten benötigt keiner um eine QuellCode-Analyse vorzunehmen. |
AW: OnKeyPress verarbeitet ENTER nicht an
Du programmierst zwar einen richtigen Taschenrechner mit Tasten, aber hier mein alter Ein-Prozedur-Taschenrechner (beachten nicht Punkt vor Strichrechnung). Vielleicht beantwortet es dir zum Teil deine Frage:
Delphi-Quellcode:
{ --== Ein-Prozedur Taschenrechner ==-- }
{ Hinweis: befolgt nicht die Punkt vor Strich Regel } var Mem1, Mem2: Extended; LastOpKey: Char; {Mögliche Tasten: "0123456789" und ",", dann "+-*/", "c", "=", alternativ Enter} procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var Edit: TEdit; begin {Dies und das} if not (Sender is TEdit) then begin Windows.Beep(300, 200); Exit; end else Edit := TEdit(Sender); if Key = #13 then Key := '='; {Clear} if Key = 'c' then begin Edit.Text := FloatToStr(0); Edit.SelStart := Length(Edit.Text); //setzt Cursor an Editfeld Ende Mem2 := 0; LastOpKey := #0; Key := #0; Exit; end; {Rechnen} if Key in ['+', '-', '*', '/', '='] then begin {Änderung des Operators (Operatorkorrektur)} if not Edit.Modified then begin LastOpKey := Key; Key := #0; Exit; end; {bedeutet, daß Opperator eigegeben wurde und vor der nächsten Zahleeingabe Edit-Feld gelöscht werden muß. Wird auch für Operatorkorrektur genutzt} Edit.Modified := False; {altuelle Zahl aus Editfeld holen} Mem1 := StrToFloat(Edit.Text); case LastOpKey of '+': Mem1 := Mem2 + Mem1; '-': Mem1 := Mem2 - Mem1; '*': Mem1 := Mem2 * Mem1; '/': Mem1 := Mem2 / Mem1; else Mem2 := Mem1; LastOpKey := Key; Key := #0; Exit; end; {Ergebnis und Zwischenergebns in Editfeld zurückschreiben} Edit.Text := FloatToStr(Mem1); Edit.SelStart := Length(Edit.Text); {auf nächste Zahlen-Eingabe verbreiten} Mem2 := Mem1; if Key <> '=' then LastOpKey := Key else LastOpKey := #0; Key := #0; Exit; end; {Zahlen Filtern} if not (Key in [#8, '0'..'9', ',']) then begin Windows.Beep(300, 200); Key := #0; end; {Löscht Editinhalt nach Operatoreingabe, bei neuen Zahleingabe} if not Edit.Modified then Edit.Text := ''; end; {Popov} |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
Ich habe diese Eigenschaft bisher noch nie betrachtet. Danke, Problem gelöst. |
AW: OnKeyPress verarbeitet ENTER nicht an
Soeine Eigenschaft gibt es auch nochmal für Escape.
Wobei du bei Default=True das doch eigentlich sehen solltest? Default-Buttons werden ja anders dargestellt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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