Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉSACTIVER LE BOUTON FERMER / X DE VOS FORMS EN QUELQUES LIGNES !!


Information sur la source

Catégorie :Trucs & Astuces Niveau : Initié Date de création : 02/09/2003 Date de mise à jour : 02/09/2003 18:42:02 Vu : 3 680

Note :
Aucune note

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Et bien voila comment désactiver le très désagréable bouton fermer (le X) de vos forms simplement !!!

Vive la programmation !!!!
 

Source

  • //Code de VB retranscris en delphi parmoi, crazy joke :-)
  • //--------------------------------------------------------------
  • procedure DesactiverX(Handle : HWND);
  • var
  • Tmp00: Cardinal;
  • Tmp01:HMENU;
  • begin
  • Tmp01 := GetSystemMenu(Handle,False);
  • Tmp00 := GetMenuItemCount(Tmp01);
  • RemoveMenu(Tmp01,Tmp00 - 1,1024);
  • RemoveMenu(Tmp01,Tmp00 - 2,1024);
  • RemoveMenu(Tmp01,Tmp00 - 3,1024);
  • RemoveMenu(Tmp01,Tmp00 - 4,1024);
  • end;
//Code de VB retranscris en delphi parmoi, crazy joke :-)
//--------------------------------------------------------------

procedure DesactiverX(Handle : HWND);
var
  Tmp00: Cardinal;
  Tmp01:HMENU;
begin
  Tmp01 := GetSystemMenu(Handle,False);
  Tmp00 := GetMenuItemCount(Tmp01);

  RemoveMenu(Tmp01,Tmp00 - 1,1024);
  RemoveMenu(Tmp01,Tmp00 - 2,1024);
  RemoveMenu(Tmp01,Tmp00 - 3,1024);
  RemoveMenu(Tmp01,Tmp00 - 4,1024);

end;

Conclusion

Et voila commentez si cela vous chante...
 

Commentaires et avis

signaler à un administrateur
Commentaire de Gotrek le 02/09/2003 22:59:06

Ou bien dans l'OnClose de ta form, Action := caNone;

signaler à un administrateur
Commentaire de Pascail le 03/09/2003 06:56:59

Et puis ossi dans l'event CloseQuery, Canclose := Fasle;
Comme quoi, y'a plein de façon d'empécher de fermer une form, soit metre du chuwing gome sur le bouton, soit couper les fils qui en partent ;).

signaler à un administrateur
Commentaire de crazyjoke le 03/09/2003 08:30:36

Oui, merci pour vos commentaires mais le but de cet exemple est de "griser" le bouton en fait, et donc de désactiver son action!

@++

Cj

signaler à un administrateur
Commentaire de supermig le 03/09/2003 10:13:41

Salut, pour faire cette manipu, il y a moins long :

procedure TaForm.FormCreate(Sender: TObject);
var hMenuHandle : HMENU;
begin
  hMenuHandle := GetSystemMenu(Handle, FALSE);
  if (hMenuHandle <> 0) then
    DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
End;

signaler à un administrateur
Commentaire de crazyjoke le 03/09/2003 10:45:41

supermig>> Merci pour ton code je n'y avais pas pensé, tu devrai le proposer aussi sur VBFrance car, en fait, je me suis contenté de passer une source de ce dernier site en delphi.

Merci à vous tous et bonne prog!

signaler à un administrateur
Commentaire de Glorkonline le 07/09/2003 11:40:20

On peut faire çà très facilement !
procedure DesactiveX;
begin
TaForm.BorderIcons.biSystemMenu := False;
end;

signaler à un administrateur
Commentaire de Yoann le 07/09/2003 15:08:00

Il y a encore plus simple :

Griser le bouton "Fermer" d'une form :
EnableMenuItem(GetSystemMenu(Handle,FALSE),SC_CLOSE, MF_GRAYED);

Dégriser le bouton "Fermer" d'une form :
EnableMenuItem(GetSystemMenu(Handle,FALSE),SC_CLOSE, MF_ENABLED);  

signaler à un administrateur
Commentaire de piep14 le 03/06/2005 21:01:53

Par exemple ce code :
EnableMenuItem(GetSystemMenu(Handle,FALSE),SC_CLOSE, MF_GRAYED);

Je le met ou dans mon code ???

Merci

Expliquer vous un peu plus pour les débutants !!! Merci

signaler à un administrateur
Commentaire de mickaelmediaprod le 28/12/2005 13:24:45

N'importe ou dans une procédure..

signaler à un administrateur
Commentaire de mike255 le 26/05/2007 14:14:07

Le mieux est de le mettre dans l'évènement OnCreate de la Form non?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.