AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Prism Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

Ein Thema von eddie11 · begonnen am 5. Dez 2005 · letzter Beitrag vom 6. Dez 2005
Antwort Antwort
eddie11

Registriert seit: 8. Nov 2005
Ort: Zossen bei Berlin
236 Beiträge
 
Delphi XE8 Professional
 
#1

Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 5. Dez 2005, 14:33
Hi allerseits,

ich möchte mein Formular mit Escape zusätzlich zu Alt+F4 schliessen können. Das bereitet mir kein Problem, ich habe KeyPreview des Formulars auf True gesetzt und frage beim OnKeyDown des Formulars auf 27 ab, dann Self.Close. Soweit so gut.
Falls allerdings zuvor etwas in ein Eingabefeld eingegeben wurde, dann möchte ich den Wert des Eingabefeldes beim Betätigen von ESC zurücksetzen und erst beim nächsten ESC das Fenster schliessen. Das ESC kommt bei dem Eingabefeld allerdings nicht an, da es ja zuvor vom OnKeyDown des Formulars abgearbeitet wird. Wie kann ich dieses gewünschte Verhalten erzwingen?

Danke
Edgar Leifeld
Liebe Grüße aus Zossen bei Berlin

Die Kontramedüse ist verdrupelt!!!
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 5. Dez 2005, 14:38
Du kannst ja onformkeydown das machen:

Delphi-Quellcode:
if key=27 then
  if edit1.text='then
    close
  else
    edit1.text:='';
Dann machst du noch dass er beim Editkeydown auch das form1keydown aufruft und bei allen anderen Kompos auch noch.

Allerdings würde ich dir es auf keinen Fall empfehlen so was einzuprogrammieren, weil wenn der (dumme) User jetzt versehentlich 2mal auf ESC kommt oder zu lange draufbleibt oder versehentlich draufkommt oder was auch immer...

Die ESC-Taste würde ich nicht mit einer close-Funktion belegen.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#3

Re: Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 5. Dez 2005, 14:38
würde sagen du führst ein flag ein.

das setz du zunächst auf false.

im onchange des edits setzt du es auf true.

dann beim onkeydown der form überprüfst du folgendes:
Delphi-Quellcode:
  if key = VK_ESCAPE then
    if flag = false then
      Close;
und beim onkeydown des edits machst du folgendes:
Delphi-Quellcode:
  if key = VK_ESCAPE then
  begin
    Zuruecksetzen;
    flag := false;
  end;
  Mit Zitat antworten Zitat
eddie11

Registriert seit: 8. Nov 2005
Ort: Zossen bei Berlin
236 Beiträge
 
Delphi XE8 Professional
 
#4

Re: Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 5. Dez 2005, 16:35
Danke, funzt!!
Fenster mit Escape schliessen halte ich im Sinne ergonomischer Programmierung für eine gute Idee, braucht man doch nicht zwei Tasten (Alt+F4) gleichzeitig zu drücken. Natürlich muss bei kritischen Dingen eine Abfrage erfolgen ("Wirklich schliessen?"), aber die muss man bei Alt+F4 ohnehin machen.
Edgar Leifeld
Liebe Grüße aus Zossen bei Berlin

Die Kontramedüse ist verdrupelt!!!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 5. Dez 2005, 18:12
Und wenn Du jetzt noch so schlau bist, die Tab-Taste durch Enter zu ersetzen (besser ergänzen), dann ist das Programm nicht nur lediglich "Windows-Standard" von Mickysofts Segen, sondern es nähert sich einer richtigen Industrienorm zumindest an. ISO88??
Gruß
Hansa
  Mit Zitat antworten Zitat
eddie11

Registriert seit: 8. Nov 2005
Ort: Zossen bei Berlin
236 Beiträge
 
Delphi XE8 Professional
 
#6

Re: Mit Escape Fenster schliessen bzw. Eingabe zurücksetzen

  Alt 6. Dez 2005, 07:35
ja, hab ich gemacht, Enter reagiert wie Tab, die Pfeiltasten rauf und runter ebenfalls. Ich denke dass es ganz wichtig ist, eine Bedieneroberfläche intuitiv und vor allem auch ohne Einsatz der Maus bzw. Klammeraffengriff mit 12 Fingern bedienen zu können. Schade nur dass Delphi (und nicht zuletzt Windoof) da so wenig Möglichkeiten von sich aus bietet.

Allen Delphinisten wünsche ich schöne Nikolausgeschenke und einen vollen Stiefel!
Edgar Leifeld
Liebe Grüße aus Zossen bei Berlin

Die Kontramedüse ist verdrupelt!!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:23 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