AGB  ·  Datenschutz  ·  Impressum  







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

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 2  1 2      
HCB

Registriert seit: 12. Feb 2020
136 Beiträge
 
Delphi 12 Athens
 
#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
354 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
3.685 Beiträge
 
Delphi 11 Alexandria
 
#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

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

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#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
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:32
Danke für verbesserung samt erläuterung!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Alt 12. Feb 2020, 09:34     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

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
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 09:39
admin war schneller, bitte löschen
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
136 Beiträge
 
Delphi 12 Athens
 
#8

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
128 Beiträge
 
Delphi 12 Athens
 
#9

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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: FormClose mit ESC bzw. onKeypress

  Alt 12. Feb 2020, 10:21
Hallo,
in XE klappt alles, XE2 habe ich nicht.

Ich würde trotzdem mal hier die DFM posten,
vielleicht hast du eine murklige IDE-Erweiterung installiert, die querschießt.
Heiko

Geändert von hoika (12. Feb 2020 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:39 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