![]() |
Den "X"-Button in der Form deaktivieren
Hallo,
hab mal wieder eine Frage. Ich möchte bei einer Form in meinem Programm dem Benutzer die Möglichkeit nehmen, ein selbst programmiertes Hilfe-Fenster mit dem "X"-Button oben rechts zu schließen. Er soll in diesem Fenster dazu gezwungen werden über 3 Buttons eine Entscheidung zu fällen. Da ist es schlecht, wenn man diese mit dem "X"-Button umgehen kann. Danke für eure Hilfe im Voraus BAMatze |
Re: Den "X"-Button in der Form deaktivieren
Schau Dir mal das Ereignis OnCanClose von deinem Form an - das sollte dir weiterhelfen. Der var-Parameter "CanClose" gibt an, ob das Form geschlossen wird oder nicht.
|
Re: Den "X"-Button in der Form deaktivieren
Oder so versuchen:
Delphi-Quellcode:
EnableMenuItem(GetSystemMenu(Handle,false),SC_CLOSE,MF_BYCOMMAND or MF_GRAYED or MF_DISABLED);
|
Re: Den "X"-Button in der Form deaktivieren
Oder deaktiviere einfach alle BorderIcons im OI.
|
Re: Den "X"-Button in der Form deaktivieren
OT und ich mache dann das fenster mit alt+f4 zu :mrgreen: |
Re: Den "X"-Button in der Form deaktivieren
Weg bekommt man ih nicht, wenn man die anderen beiden Schaltflächen behalten möchte. Aber man kan nihn deaktivieren, in dem man den entsprechenden Menüpunkt aus dem Systemmenü entfernt:
Delphi-Quellcode:
Aber sinnvoller wäre es wahrscheinlich wirklich mit dem Ereignis der Form OnCloseQuery zu arbeiten.
procedure TForm1.Button1Click(Sender: TObject);
var hMenu: THandle; begin hMenu := GetSystemMenu(Handle, false); if hMenu <> 0 then begin if DeleteMenu(hMenu, 6, MF_BYPOSITION) then DrawMenuBar(Handle) else ShowMessage(SysErrorMessage(GetLastError)); end else ShowMessage(SysErrorMessage(GetLastError)); end; |
Re: Den "X"-Button in der Form deaktivieren
Zitat:
Bei mir ist der obere von Larsi SW_HIDE. // Edit: war bis zur Löschung. :stupid: |
Re: Den "X"-Button in der Form deaktivieren
Hm, ich habe da eben einen leeren Beitrag von Larsi gelöscht. Was war das jetzt?
aber zum Thema, wo steht, dass er die anderen beiden Schaltflächen zum Maximieren und Minimieren auch nicht haben will? |
Re: Den "X"-Button in der Form deaktivieren
Vielliecht hilft das ?
Delphi-Quellcode:
[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]
procedure DisableCaptionCloseButton(const FormHandle: THandle);
var hMnu: THandle; begin hMnu := GetSystemMenu(FormHandle, FALSE); EnableMenuItem(hMnu, SC_CLOSE, SC_CLOSE or MF_GRAYED); end; procedure EnableCaptionCloseButton(const FormHandle: THandle); var hMnu: THandle; begin hMnu := GetSystemMenu(FormHandle, FALSE); EnableMenuItem(hMnu, SC_CLOSE, SC_CLOSE or MF_ENABLED); end; |
Re: Den "X"-Button in der Form deaktivieren
Mal ne ganz andere Heransgehensweise...
Lass das X stehen und definiere dafür einen Standardwert. zb. Formular hat drei Buttons MacheAktion1 MacheAktion2 Abbrechen ...in diesem Fall wäre X = Abbrechen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz