AGB  ·  Datenschutz  ·  Impressum  







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

OnKeyPress verarbeitet ENTER nicht an

Ein Thema von Sugar · begonnen am 3. Apr 2015 · letzter Beitrag vom 6. Apr 2015
Antwort Antwort
Seite 1 von 3  1 23      
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#1

OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 11:19
Delphi-Version: 7
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...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 11:33
Das kann ich nicht reproduzieren, weder mit Delphi 7 noch mit XE7...

Hast du vielleicht ein kleines Testprojekt, das du hier anhängen kannst?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#3

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 12:21
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 12:56
@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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 13:07
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:

xe7d7keypress.png

// 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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke ( 3. Apr 2015 um 13:23 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 14:06
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;
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#7

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 14:10
// 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...
Ich frage nur an zwei Stellen die Tastatur ab. Einmal in "FORMKEYDOWN" des Formulares. Dort habe ich folgendes eingefügt:
if key = 13 then showmessage('ENTER');

NULL Reaktion. Alle anderen Tasten werden sauber behandelt...
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#8

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 14:12
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;
Auch so gibt es keine Reaktion in der Routine....
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 14:21
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;
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#10

AW: OnKeyPress verarbeitet ENTER nicht an

  Alt 3. Apr 2015, 14:25
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;
Ich weiß, nur komischerweise in diesem einen Projekt nicht!

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.
  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 10:53 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