Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programm Beenden (https://www.delphipraxis.net/190524-programm-beenden.html)

derseitzer 12. Okt 2016 08:14


Programm Beenden
 
Guten Tag ich habe eine Frage,

Ich habe ein Programm geschrieben, das kein Formular benötigt. Somit habe ich es auf "false" gesetzt und mein Programm läuft einwandfrei.
Jetzt möchte ich mein Programm per Tastendruck (durch F7) schließen. Ich habe es mit diesem Code probiert:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = vk_F7 then application.terminate;
end;
Ich habe es auch außerhalb von Delphi probiert, mit F7 zu schließen, aber vergebens. Ich denke das Problem liegt daran, dass mein Programm keinen Fokus hat, da es kein Formular hat, aber sicher bin ich mir nicht. Hat jemand einen Tipp oder Lösungsvorschlag?

Sherlock 12. Okt 2016 08:19

AW: Programm Beenden
 
Äh...wenn Du kein Formular benötigst/hast, woher kommt dann TForm1? Woher soll eigentlich Dein formularloses Programm Dein F7 bekommen? Und wo hast Du wem "False" gesagt? Es gibt nur eine Möglichkeit ein "formularloses" Programm zu erstellen, und zwar als Konsolenanwendung. Ausserdem ist Standard für eine Windows anwendung, daß diese per Alt+F4 geschlossen wird, wozu einen neuen Shortcut erfinden, Anwender schätzen sowas gar nicht?

Sherlock

sakura 12. Okt 2016 08:55

AW: Programm Beenden
 
Erkläre mal, wie Dein Programm funktioniert und was Du machst. Ansonsten kann ich mich Sherlock nur anschließen. Wie es hier steht, ergibt das Ganze nicht viel Sinn... :gruebel:

...:cat:...

Whookie 12. Okt 2016 09:14

AW: Programm Beenden
 
Wenn du deine MainForm nicht anzeigst, dann solltest du vielleicht überlegen ein Tray-Icon mit einem Menü einzubauen. Darüber kann das Program dann beendet werden.

derseitzer 12. Okt 2016 09:44

AW: Programm Beenden
 
Tut mir Leid, das ich eventuell Code verschwiegen habe:)

Ich habe tatsächlich eine Form allerdings habe ich diese eben mit Application.ShowMainForm:= false; unterdrückt.
Mein Programm zeichnet eigentlich nur Linien mit Canvas Befehlen, deshalb benötige ich eben keine Form und ich möchte das Programm eben mit einem Tastendruck beenden können.
Das mit dem Trayicon werde ich mir anschauen, ich bin noch relativ unerfahren im programmieren mit Delphi:) Aber danke erstmal!

sakura 12. Okt 2016 10:26

AW: Programm Beenden
 
Einen Tastendruck kannst Du i.A. nur abfangen, wenn das Programm auch den Fokus hat, sprich, wenn das Programm ein Formular hat und auch dargestellt und aktiv ist. Ansonsten musst Du Dir einen anderen Weg suchen.

...:cat:...

derseitzer 12. Okt 2016 10:45

AW: Programm Beenden
 
ok, das habe ich mir schon gedacht, viele Dank Sakura.
Die Idee mit dem Trayicon ist super und funktioniert, vielen Dank Whookie:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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