AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Eine Methode zum schließen der Formulare mit der ESC-Taste
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Methode zum schließen der Formulare mit der ESC-Taste

Ein Thema von Christian18 · begonnen am 10. Jun 2007 · letzter Beitrag vom 12. Jun 2007
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Eine Methode zum schließen der Formulare mit der ESC-Taste

  Alt 10. Jun 2007, 20:41
Hallo DPler,

erst mal Glückwunsch zum 5. Geburtstag!!! Ich bin mal wieder auf den Trip meine Quellcodes zu verschönern. So ich habe folgendes anliegen. Immer wenn ich eine Formular (Form) habe, gebe ich dem User die Möglichkeit dieses Fenster mit der ESC-Taste zu schließen. Hat was mit Benutzerfreundlichkeit zu tun. Aber das ist eine andere Geschichte. Dadurch, dass ich diese Funktion bei jeder Form habe, habe ich natürlich in jeder Unit die gleiche procedure. Ich würde es gerne schaffen, dass ich das nur einmal habe. Also eine procedure die alle Fenster im gesamten Programm mit der ESC-Taste schließen lässt. Wie kann ich das realisieren? Ich würde mir sehr viel arbeit sparen und die Programm währen um einiges übersichtlicher. Bezüglich anzahl der Methoden in einer klasse.

Hier nochmal ein bisschen Code wie ich das mit den Fenstern schließen mache. Leider habe ich diese Methode in jeder Klasse.
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if shift=[] then
    begin
      case key of
        27 : Close;
      end;
    end;
end;
Vielen Dank schon mal im vorraus!

MFG Christian18
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 10. Jun 2007, 20:48
Dazu musst du nur eine leere Form nehmen, den Code reinsetzen und das ganze dann in die Objektablage tun - aber nicht vergessen, dann später auch immer die Form aus der Ablage zu nutzen
  Mit Zitat antworten Zitat
hoika

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

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 10. Jun 2007, 20:59
Hallom

oder "übersetzt"

Benutze Formular-Vererbung.


Heiko
Heiko
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#4

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 00:23
Zitat von Christian18:
Immer wenn ich eine Formular (Form) habe, gebe ich dem User die Möglichkeit dieses Fenster mit der ESC-Taste zu schließen. Hat was mit Benutzerfreundlichkeit zu tun.
Gibst Du Deinen Anwendern denn einen "Schließen"-Button? Oder "Abbrechen" oder "Close" oder "Cancel"? Wenn ja, reicht es völlig, dort die Eigenschaft "Cancel" auf "True" zu setzen und schon reagiert dieser Button auf Escape. Wenn Du keinen solchen Button hast, solltest Du den aus Gründen der Benutzerfreundlichkeit überall hinzufügen

Gruß,
SirTwist
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 08:22
Wie SirTwist schon geschrieben hat, gehört auf jedes Formular ein Abbrechen/Schliessen-Button.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 09:01
Ich möchte da widersprechen.

Nur secondary windows benötigen diese prominenten Aktionsschalter (OK, Cancel) - und auch nur dann, wenn eine Aktion damit verknüpft ist. Die beiden Eigenschaften Default und Cancel sind bequem, aber kein hinreichender Grund für den Einsatz dieser Buttons. Zum bloßen Schließen eines Fensters kann auch der CloseButton aus der Titelleiste verwendet werden. Modale Dialoge ohne Aktionsschalter möchte ich mit der Esc-Taste schließen können, bei nicht-modalen Fenstern bevorzuge ich die Tastenkombination Strg+F4. Wichtig ist vor allem Konsistenz - wenn nicht systemweit, dann wenigestens in der eigenen Anwendung.

Freundliche Grüße
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#7

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 10:59
Okay, wir sind uns also einig: Dialoge, die man per Tastaturbefehl "Escape" schließen kann, müssen zwingend auch einen Button "Close" / "Schließen" / sonstwas haben. Okay? Dann kann ich auch die Eigenschaft "Cancel" benutzen und brauch nicht dediziert auf irgendwelche Key-Events zu reagieren.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 11:01
und wenn der Fragesteller es doch so will wie beschrieben dann kann er TApplicaitonEvents nutzen. Dort einfach die Key-Message abfragen und wenn es Escape ist dann einfach das aktive Formular schließen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 11. Jun 2007, 11:18
Hallo,

Zitat von SirTwist:
... Dann kann ich auch die Eigenschaft "Cancel" benutzen und brauch nicht dediziert auf irgendwelche Key-Events zu reagieren. ...
da hast du mich aber gründlich missverstanden. Du meinst die TButton-Komponente, wenn du von einem Button und seiner Cancel-Eigenschaft schreibst. Ich hingegen meine den CloseButton, den der Window-Manager in die Titelleiste eines Fensters malt. Einen extra Button in der ClientArea meiner Form, nur damit ich seine Cancel-Eigenschaft nutzen kann? Dafür wäre mir der Platz auf dem Bildschirm zu wertvoll.

Der Vorschlag von Dax in Beitrag #2 scheint mir ideal zu sein.

Freundliche Grüße
  Mit Zitat antworten Zitat
Hansa

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

Re: Eine Methode zum schließen der Formulare mit der ESC-Tas

  Alt 12. Jun 2007, 00:38
In Beitrag #2 bzw. #3 wurde alles wichtige gesagt. Allerdings etwas zu knapp. Rest ist Geplänkel am Rande. Wird eine zentrale Stelle benötigt (wer braucht bei diversen Forms zum schließen 10 verschiedene Tasten ? ), um programmweit eine Eigenschaft zu ändern, dann müssen die Forms auch als inherited aus der Objektablage genommen werden ! Glaube da steht auf deutsch "vererben". Wer hingeht und benutzt "verwenden" oder "kopieren", der verfielfältigt zwar leicht Source-Teile und spart Arbeit, aber er verliert auch den Vorteil einer zentralen Anlaufstelle bei eventuellen Änderungen (die ja dann vererbt werden). Und nicht vergessen : da kann ja auch noch viel mehr reingepackt werden : Farben, Schriftarten, Mouse/Tastatur Events usw. Will einer bei mir unbedingt gelbe Forms haben, dann ist das eine Sache von einer Zeile und projektweit haben alle Forms dann die Gelbsucht.
Gruß
Hansa
  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 05:41 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