![]() |
Delphi-Version: 7
OnKeyPress verarbeitet ENTER nicht an
Hallo,
ich habe wieder mal was wundersames... Ich reagiere auf die Tastatureingaben in einm TEditFeld. Im OnKeyPress-ereignis habe ich folgendes eingetragen um nur die gewünschten Tasten zur Eingabe zuzulassen. procedure THauptForm.CalcEdit1KeyPress(Sender: TObject; var Key: Char); Begin If Not (Key IN ['0'..'9',',','-','+','*','/',#8,#27,#13]) then begin Key := #0; end; . . . End; Die ENTER-Taste behandele in etwas später im Code dieses Ereignisprozedur. Besser ich würde gern.... Denn betätige ich in dem Eingabefeld die Enter Taste, dann tritt dieses Ereignis gar nicht ein. Es gibt keine weiteren Ereignisse die ich von dem Feldverarbeite, KeyPreview der Form ist auf True (aufgrund dessen, dass ich dort auch auf andere Tastatureingaben reagiere).. Ich stehe vor einem Rätsel... |
AW: OnKeyPress verarbeitet ENTER nicht an
Das kann ich nicht reproduzieren, weder mit Delphi 7 noch mit XE7...
Hast du vielleicht ein kleines Testprojekt, das du hier anhängen kannst? |
AW: OnKeyPress verarbeitet ENTER nicht an
OnKeyDown/OnKeyUp ?
PS: Rechtsklick und Einfügen, oder Strg+V und schon kann man alles einfügen, was mann will. Es gibt hier aber auch massig Threads, wo erklärt wird, wie Andere das machen. |
AW: OnKeyPress verarbeitet ENTER nicht an
@Sugar
Ist schon länger her wo ich das selbst genutzt habe, ist aber soweit ich mich erinnern kann normal. Eines von beiden, OnKeyPress oder OnKeyDown reagierte nicht auf Enter. Ich hab es damals genauer untersucht, es war normal. Ich weiß aber nicht mehr warum. |
AW: OnKeyPress verarbeitet ENTER nicht an
Liste der Anhänge anzeigen (Anzahl: 1)
Also bei mir funktioniert OnKeyPress problemlos, genau wie OnKeyDown und OnKeyUp, sowohl mit Delphi 7 als auch XE7...
// EDIT: Hier ein Screenshot, falls es jemand nicht glauben möchte: Anhang 42844 // EDIT2: Ach, ich weiß warum es nicht geht vermute ich... Ich rate einmal, dass du Key in der Ereignisbehandlung im Formular auch auf das Nullzeichen setzt, oder? Wenn du das tust, kommt der Tastendruck logischerweise auch nicht mehr im Editfeld an, du brichst ihn ja ab... |
AW: OnKeyPress verarbeitet ENTER nicht an
Stimmt, kann ich bestätigen. Ist aber, wie oben erwähnt, schon etwas länger her. Muss was anderes gewesen sein.
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if Key = VK_RETURN then ShowMessage('Schöne Grüße von OnKeyDown'); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = Chr(VK_RETURN) then ShowMessage('Schöne Grüße von OnKeyPress'); end; |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
if key = 13 then showmessage('ENTER'); NULL Reaktion. Alle anderen Tasten werden sauber behandelt... |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
|
AW: OnKeyPress verarbeitet ENTER nicht an
Das funktioniert aber:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin If Not (Key IN ['0'..'9',',','-','+','*','/',#8,#27,#13]) then begin Key := #0; end; if Key = Chr(VK_RETURN) then begin Key := #0; ShowMessage('Schöne Grüße von OnKeyPress'); end; end; |
AW: OnKeyPress verarbeitet ENTER nicht an
Zitat:
Ich habe jetzt alles rausgeschmissen was nicht nativ Delphi 7 ist. Immer noch das gleiche Ergbebnis. Die Enter-Tase wird weder von den Komponenten noch von der Form ausgewertet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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