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 Schließenbutton deaktivieren (https://www.delphipraxis.net/24243-schliessenbutton-deaktivieren.html)

MisterNiceGuy 18. Jun 2004 11:03


Schließenbutton deaktivieren
 
Hi,
wie kann ich den Minimieren-,Maximieren- und den Schließenbutton deaktivieren?
(Oben rechts)

Sharky 18. Jun 2004 11:06

Re: Schließenbutton deaktivieren
 
Zitat:

Zitat von MisterNiceGuy
Hi,
wie kann ich den Minimieren-,Maximieren- und den Schließenbutton deaktivieren?
(Oben rechts)

Schaue dir mal die Eigenschaft BorderIcons deiner TForm an.

MisterNiceGuy 18. Jun 2004 11:12

Re: Schließenbutton deaktivieren
 
Jups, danke aber ich wollte die eigentlich so enablen (Auch den Schließenbutton), hast du dafür auch eine Lösung?

Mario 18. Jun 2004 11:20

Re: Schließenbutton deaktivieren
 
Deaktivieren kannst Du diesen mit normalen Mitteln nicht, aber unbrauchbar machen. Im OnClose die Action einfach auf caNone setzen.

MisterNiceGuy 18. Jun 2004 11:26

Re: Schließenbutton deaktivieren
 
kannst du mir sagen wie man das macht? Einfach im Prozedurkopf ändern?

Edit:
Danke habs schon!

Steve 18. Jun 2004 11:28

Re: Schließenbutton deaktivieren
 
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
end;
Aber vorsicht - dann lässt sich das Fenster auf normalem Weg gar nicht mehr schließen :!:

Gruß
Stephan

alcaeus 18. Jun 2004 11:33

Re: Schließenbutton deaktivieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Mario
Deaktivieren kannst Du diesen mit normalen Mitteln nicht

Schon mal Nero beim Brennen gesehen?
Irgendwie kann man die disablen. Siehe dazu auch Anhang!

Greetz
alcaeus

MisterNiceGuy 18. Jun 2004 11:34

Re: Schließenbutton deaktivieren
 
Jap und genau das will ich :)

LCS 18. Jun 2004 12:10

Re: Schließenbutton deaktivieren
 
Hi
wenn mans weiss, eigentlich ganz einfach :mrgreen:

Code:
...
var
   hMen : HMENU;
...
   //Ausschalten
   hMen   := GetSystemMenu(Self.Handle, LongBool(0));
   EnableMenuItem(hMen, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);

   //Einschalten
   hMen   := GetSystemMenu(Self.Handle, LongBool(0));
   EnableMenuItem(hMen, SC_CLOSE, MF_BYCOMMAND and not MF_GRAYED);
Gruss Lothar

stonimahoni 12. Okt 2004 09:48

Re: Schließenbutton deaktivieren
 
hi leute

bin noch ein kleiner delphi anfänger - sprich so feinheiten kenn ich noch net alle.
daher ne frage : wie binde ich den quelltext von dir ein LCS ?
weil ich bekomm ne fehlermeldung : [Fehler] : Undefinierter Bezeichner: 'Self' und [Fehler] : 'END' erwartet, aber ',' gefunden

was soll ich damit anfangen ?
bei dem fehler mit dem self geht er auf das erste self ein und bei dem zweiten fehler meint er das komma nach dem handle :(

plz help me :(



grüsse

stoni

Sharky 12. Okt 2004 10:26

Re: Schließenbutton deaktivieren
 
Hai stonimahoni,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Die Fehler kommen weil du den Code in eine Methode deines Formulares einbinden musst. Das geht z.B. so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   hMen : HMENU;
Begin
   //Ausschalten
   hMen  := GetSystemMenu(Self.Handle, LongBool(0));
   EnableMenuItem(hMen, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
   hMen : HMENU;
begin
   //Einschalten
   hMen  := GetSystemMenu(Self.Handle, LongBool(0));
   EnableMenuItem(hMen, SC_CLOSE, MF_BYCOMMAND and not MF_GRAYED);
end;
Also einfach 2 Buttons auf deine Form und jeweils den Code in das .OnClick Ereigniss der Buttons setzen.

himitsu 12. Okt 2004 10:43

Re: Schließenbutton deaktivieren
 
Du kannst den Code natürlich auch in's onCreate-Ereignis des Form's reinmachen.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var hMen: HMENU;
Begin
   //Ausschalten
   hMen  := GetSystemMenu(Self.Handle, LongBool(0));
   EnableMenuItem(hMen, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
end;
PS: mit Alt+F4 läßt sich dein Programm auch noch beenden ;)

stonimahoni 12. Okt 2004 11:00

Re: Schließenbutton deaktivieren
 
hi

danke für das herzliche willkommen hier :)

und danke für eure antworten Sharky und himitsu.

eigentlich könnt ich mir grad in den a**** beissen, dass ich mit dem in eine methode ienbinden nicht selber drauf gekommen bin *grummel* ich hornochse - man man man

@ himitsu
das mit dem "Alt+F4 läßt sich dein Programm auch noch beenden" hab ich in den griff bekommen ;)
aber danke für den hinweis.

danke nochmals für eure hilfe

werd mich sicher nochmal melden beim nächsten problem *gg*


bis dahin

grüsse

stoni

FAlter 12. Okt 2004 11:21

Re: Schließenbutton deaktivieren
 
Warum soll ich es mir einfach machen?

Die einfachste Lösung wurde zuerst genannt.

Zitat:

Zitat von Sharky
Schaue dir mal die Eigenschaft BorderIcons deiner TForm an.

Dort darf nämlich kein biSystemMenu vorkommen, und schon ist der Button deaktiviert.

alcaeus 12. Okt 2004 11:36

Re: Schließenbutton deaktivieren
 
Hi Felix,

Zitat:

Zitat von FAlter
Die einfachste Lösung wurde zuerst genannt.
Zitat:

Zitat von Sharky
Schaue dir mal die Eigenschaft BorderIcons deiner TForm an.

Dort darf nämlich kein biSystemMenu vorkommen, und schon ist der Button deaktiviert.

das stimmt nicht so ganz. Schaltest du biSystemMenu ab, so wird der Button nicht deaktiviert, sondern nicht angezeigt. Dies ist ein kleiner, aber feiner Unterschied.

Greetz
alcaeus

himitsu 12. Okt 2004 11:38

Re: Schließenbutton deaktivieren
 
@FAlter
dann ist aber auch das Programmícon (linke Ecke) auch mit weg :(

FAlter 12. Okt 2004 11:40

Re: Schließenbutton deaktivieren
 
Ups, habe ich mit dem Minimieren-Button verwechselt. Der wird nur deaktiviert. Sorry.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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 by Thomas Breitkreuz