Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alt + F4 blocken (https://www.delphipraxis.net/13406-alt-f4-blocken.html)

TheBluescreen 17. Dez 2003 19:16


Alt + F4 blocken
 
Hi!

Ich habe das Problem, dass Delphi sagt "Incompatible types". Der code sieht so aus:

Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=ssAlt
   then begin
        if key=VK_F4 then begin
                          Form1.Create(Sender);
                          end;
        end;
end;
wenn ich nur VK_MENU mache, funktioniert das auch nicht

Alexander 17. Dez 2003 19:20

Re: Alt + F4 blocken
 
Mach mal ORD(VK_F4) oder benutze die entsprechende Nummer...

Flogo 17. Dez 2003 19:31

Re: Alt + F4 blocken
 
Zitat:

Zitat von TheBluescreen
Code:
if key=ssAlt

müsste das nicht so
Code:
if ssAlt in Shift
aussehen?

TheBluescreen 17. Dez 2003 19:36

Re: Alt + F4 blocken
 
ok...

danke Flogo! So funktionert es! Aber wie sag ich dem PC dass er nichts machen soll, wenn die Tasten gedrückt sind? FormCreate funktioniert nicht...

MathiasSimmack 17. Dez 2003 20:04

Re: Alt + F4 blocken
 
Zitat:

Zitat von TheBluescreen
Aber wie sag ich dem PC dass er nichts machen soll, wenn die Tasten gedrückt sind?

Warum sollte das den PC interessieren? Abgesehen ist dein Ansatz falsch. Ich halte zwar nicht viel davon, Alt+F4 zu blockieren (eben weil´s Standard ist, Programme so zu beenden, und weil Programme, die sich nicht daran halten, auf meiner Platte nicht alt werden), aber schau dir mal das "OnClose"-Ereignis genauer an.

Mehr sage ich dazu nicht.

Stanlay Hanks 17. Dez 2003 20:22

Re: Alt + F4 blocken
 
Oder OnCloseQuery...
Es gibt auch noch eine Variable: CanClose.

Wenn du die auf False setzt, wird dein Prog nicht beenden, wenn es beendet werden soll.
Aber nicht vergessen, eine Möglichkeit einzubauen, das Prog wirklich beenden zu können.
Aber wie Matthias schon richtigt sagte: Solche Progs, die sich nicht an die grundlegenden Standards halten sind (zumindest auch bei mir) nicht beliebt. Außerdem beendet der Taskmanager eh jedes Prog :wink:

Man liest sich, Stanlay :hi:

nailor 17. Dez 2003 20:35

Re: Alt + F4 blocken
 
Erstmal würde ich auch die CloseQuery empfehlen. Des Weiteren noch dies hier: Die key Variable im onKeyDown ist nicht readOnly!

TheBluescreen 17. Dez 2003 20:57

Re: Alt + F4 blocken
 
Ich schreibe das Programm ja nur, um mich was in Delphi einzuarbeiten.. und da ist mir die Idee gekommen...

nailor 17. Dez 2003 21:01

Re: Alt + F4 blocken
 
Häh? :gruebel: Willst du dich jetzt für irgendwas entschuldigen? Wofür? :wiejetzt:

axelf98 17. Dez 2003 21:49

Re: Alt + F4 blocken
 
Bei mir klappt das so:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ssAlt in Shift then abort;
end;
Aber ich weiss nicht, ob das so elegant ist.. :roll:

So gehts auch:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ssAlt in Shift then key:=ORD(#0);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Seite 1 von 2  1 2      

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