Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi "X" Knopf in der Titel-Leiste deaktivieren (https://www.delphipraxis.net/62944-x-knopf-der-titel-leiste-deaktivieren.html)

LoRd-MuldeR 11. Feb 2006 19:34


"X" Knopf in der Titel-Leiste deaktivieren
 
Hallo.

Ich würde gerne den "X" Knopf in der Titel-Leiste meines Fenster deaktivieren, so dass er grau dargstellt wird und der Benutzer weiß, dass diese Funktion jetzt nicht verfügbar ist. Natürlich kann ich den Knopf indirekt deaktivieren indem ich das Schließen des Fensterns im OnCloseQuerry Event abfange. Aber dann sieht es eher so aus, also ob der Knopf nich das tut, was er eigentlich soll. Wenn ich dagegen TForm.BorderIcons.biSystemMenu auf FALSE setzte, is der "X" Knopf ganz verschwunden. Das wäre soweit kein Problem, wenn damit nich auch das Fenster-Symbol verschwunden wäre. Ich bin mir sicher das sich schon mal ein Programm gesehen habe, wo der "X" knopf zwar da war, aber grau, so dass er sich gar nicht erst drücken ließ. Wäre nett wenn mir jemand sagen könnte, wie man das macht...

Danke schon mal! :-D

SirThornberry 11. Feb 2006 19:35

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
hast du die Suche schon bemüht? Die Frage gab es nicht erst einmal.

[Edit]
Ich hatte recht, hier mein Beitrag von damals: http://www.delphipraxis.net/internal...=485085#485085

und hier der directe Source:
Delphi-Quellcode:
DeleteMenu(GetSystemMenu(Handle, False), SC_CLOSE, MF_BYCOMMAND);
DrawMenuBar(Handle);
Man muss also das schließen aus dem Systemmenü entfernen und somit ist auch das Schließenkreuz deaktiviert.
[/Edit]

LoRd-MuldeR 11. Feb 2006 19:49

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Sorry, aber ich habe die Suchfunktion benutzt und leider nix passendes gefunden. Vllt hab ich einfach die falschen Suchwörter benutzt oder nich lange genug rumgesucht...

Also vielen Danke für deine Antwort !!!

AirJordan 22. Feb 2006 08:22

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Hat zwar nichts mit dem gesuchten Quellcode zu tun, aber wie handle ihr das im Allgemeinen?
Es führen viele Wege nach Rom, aber ich sehe das so, das man in einem Programm einen Button
oder ein Menüpunkt hat, der das Programm beendet. Das "X" ist eigentlich nicht die richtige
Funktion zum Beenden eines Programms, oder?

Zumal wenn man Datenbanken hat, können ja zb vor dem Schließen Routinen aufgerufen werden,
die das korrekte Schließen der Datenbank veranlassen und wenn dann der User auf das "X"
drückt, werden diese Routinen nicht korrekt ausgeführt.

Wie seht ihr das, "X" eine korrekte Beendenroutine eines Programms? Wozu dann noch andere
"Exit" Menüpunkte oder "Beenden" Button einbauen? Danke für eure Meinungen.

Luckie 22. Feb 2006 08:32

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Ich beende fast alle programme so oder mit Alt+F4. Ich glöaube, ich habe noch nie den Beenden-Menüpunkt oder so benutzt.

Zitat:

Zitat von AirJordan
Zumal wenn man Datenbanken hat, können ja zb vor dem Schließen Routinen aufgerufen werden,
die das korrekte Schließen der Datenbank veranlassen und wenn dann der User auf das "X"
drückt, werden diese Routinen nicht korrekt ausgeführt.

Und warum nicht? Das Ereignis OnClose der Form wird nur nicht mehr aufgerufen, wenn der Prozess abgeschossen wird oder Application.Terminate aufgerufen wird.

Zitat:

Wie seht ihr das, "X" eine korrekte Beendenroutine eines Programms? Wozu dann noch andere
"Exit" Menüpunkte oder "Beenden" Button einbauen? Danke für eure Meinungen.
Absolut korrekt. Warum sollte es nicht korrekt sein?

SirThornberry 22. Feb 2006 08:37

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Das "X" ist in der Windowswelt zum Beenden der Programme gedacht. Durch das vorhanden sein des "X" an immer der selben Stelle braucht kein User erst Stundenlang zu suchen wie er ein Programm beenden kann (außer es weicht vom Standarddesign ab). Demnach ist das Beenden des Programmes mit "X" der korrekte weg. Schließlich wird dabei die message zum schließen des Fensters ans Programm gesendet und auf die Kann man ohne Probleme (zum Beispiel wie das OnClose des Forms) reagieren.

AirJordan 22. Feb 2006 16:39

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Ok, habt ihr auch Recht. Trotzdem wird ja ab und zu noch nach dem "Abklemmen" des
"X" Buttons gefragt. Naja, ich werde meine Programme dann mal anpassen. :roll:

SirThornberry 22. Feb 2006 17:16

Re: "X" Knopf in der Titel-Leiste deaktivieren
 
Das "Abklemmen" des "X"-buttons ist zum Beispiel dann sinnvoll wenn man einen Dialog mit einer Frage hat wo es nur "ja" oder "nein" gibt. Denn mit klick auf "X" wäre unklar wie zu handeln ist. Wenn man den Nutzer also zu etwas zwingen/nötigen will ist das "abklemmen" eine variante.


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