AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

FormClose mit ESC bzw. onKeypress

Ein Thema von HCB · begonnen am 12. Feb 2020 · letzter Beitrag vom 13. Feb 2020
Antwort Antwort
Seite 1 von 3  1 23   
HCB

Registriert seit: 12. Feb 2020
10 Beiträge
 
#1

FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:15
Hallo und HILFE!!!

Ich verzweifle mittlerweilen: Ich habe Delphi XE2 und habe das Problem, dass die Ereignisse onKeypress, onKeyDown und onKeyup nicht stattfinden, sprich die werden erst gar nicht angesprochen. In meiner alten Delphi Version 6 auf einem anderen Rechner funktioniert es problemlos.

KeyPreview ist natürlich auf true gesetzt und unter Form1.keypress ist folgendes eingetragen: if key = #27 then close;
Eigentlich total simpel und funktioniert auch in Delphi 6.

Was zum Henker ist da falsch, wenn ich das selbe unter XE2 versuche. Ich habe mal bei onKeypress, onKeyDown und onKeyup ein ShowMessage eingebaut aber bei keinem Tastendruck wird die Message angezeigt.

Weiß nicht mehr weiter, vielleicht liegt es an XE2? Hat jemand XE2 und kan mal testen ob das bei ihm funktioniert?
Für alle Tipps und Hinweise wäre ich sehr dankbar.

Harry
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
350 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:18
Moin,

dem Form auch die Eventhandler zugewiesen?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.368 Beiträge
 
Delphi 2010 Professional
 
#3

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:19
So sollte es eigentlich universell für alle Delphi's funktionieren.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.KeyPreview := True;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if key = #27 then
// oder if key = chr(27) then
    Close;
end;
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...

Geändert von KodeZwerg (12. Feb 2020 um 09:24 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.256 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:26
Form1.KeyPreview := True; Das knallt furchtbar, wenn Du die Instanz des Formulares jemals an etwas anderes bindest als an die Variable Form1. In diesem Kontext - im FormCreate - reicht es, wenn Du nur "KeyPreview := True;" schreibst. Und an sich spricht auch nichts dagegen, diesen Wert gleich im Objekt-Inspektor zu setzen.
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.368 Beiträge
 
Delphi 2010 Professional
 
#5

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:32
Danke für verbesserung samt erläuterung!
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
Frühlingsrolle

Registriert seit: 31. Aug 2019
233 Beiträge
 
#6

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:34
Es könnte auch am #27 scheitern.
Dieser Wert läuft auf VK_RIGHT hinaus, und man möchte bestimmt mit VK_ESCAPE (#1B bzw. 27) arbeiten?!
Wieso hier nicht mit den Konstanten gearbeitet wird, versteh' ich nicht.
Politicians are put there to give you the idea you have freedom of choice. You don't. You have no choice. You have owners. They own you. They own everything. They don't want well informed, well educated people capable of critical thinking. (George Denis Patrick Carlin)
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.256 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:36
Nö.
Im FormKeyPress bekommst Du einen Character - und das ist im Falle von ESC die #27. KeyUp bzw. KeyDown nutzen die numerischen Konstanten, die Du nennst.
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.368 Beiträge
 
Delphi 2010 Professional
 
#8

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:39
admin war schneller, bitte löschen
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
10 Beiträge
 
#9

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:46
Wow, so schnelle Reaktion hätte ich jetzt nicht erwartet. Danke!

1. Erzeuge neue Anwendung (Form1).
2. Setze Eigenschaft KeyPreview auf true
3. Trage im Ereignis onKeypress folgendes ein: if key = #27 then close;
4. Starte das programm und drücke ESC: Das programm wird beendet.

Wie gesagt, easy und funktioniert unter Delphi 6 ABER EBEN NICHT UNTER MEINEM XE2!!!
Deswegen war die Frage, ob jemand wenn er XE2 hat, das ausprobiert um sicher zu gehen ob es an dieser Version liegt oder woanders.

Alles sehr kurios.
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
85 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 10:19
Hallo,

ich habe das gerade mal mit XE2 ausprobiert. Funktioniert einwandfrei.
Die Anwendung muss aber den Focus haben, sonst gehts nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf