Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Systemmenu abschalten (https://www.delphipraxis.net/153831-systemmenu-abschalten.html)

Codewalker 17. Aug 2010 17:14

Systemmenu abschalten
 
Mit diesem Code wird das Systemmenu geleert. Wenn man mit SC_CLOSE den "Schließen"-Eintrag entfernt, wird gleichzeitig das "X" zum Schließen des Fensters inaktiviert (bleibt aber sichtbar). Damit kann man ein nicht schließbares Fenster erzeugen (was mit
Delphi-Quellcode:
BorderIcons = []
auch geht), aber gleichzeitig das Icon für das Fenster behalten (Was mit BorderIcons nicht geht).
Natürlich kann man mit diesem Code auch nur einzelne Elemente entfernen.

Delphi-Quellcode:
procedure TWorkerMainframe.FormCreate(Sender: TObject);
var
  hWnd: THandle;
begin
  hWnd := GetSystemMenu(Self.Handle, False);
  RemoveMenu(hWnd, SC_SIZE, MF_BYCOMMAND);
  RemoveMenu(hWnd, SC_MOVE, MF_BYCOMMAND);
  RemoveMenu(hWnd, SC_MINIMIZE, MF_BYCOMMAND);
  RemoveMenu(hWnd, SC_MAXIMIZE, MF_BYCOMMAND);
  RemoveMenu(hWnd, SC_RESTORE, MF_BYCOMMAND);
  RemoveMenu(hWnd, SC_CLOSE, MF_BYCOMMAND);
  DeleteMenu(hWnd, 0, MF_BYCOMMAND); // Der letzte Separator im Menu kommt auch noch weg
end;


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