Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Solution ultime pour bloquer la croix rouge ! Lun 3 Jan 2011 - 19:13 | |
| J'ai trouvé l'arme fatale contre la fermeture d'une form par la croix rouge ! Voir sur le fil de discussion concernant mon site: https://panoramic.1fr1.net/t1356-nouvelle-dll-setwindowbuttonsC'est sur mon site dans la distribution des DLL's divers. En prime, j'ai donné la possibilité d'enlever ou remettre les boutons Réduire et Agrandir d'une fenêtre ! | |
|
Invité Invité
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Lun 3 Jan 2011 - 19:21 | |
| Bravo!
Je sais que je suis parfois un peu lourd, donc par respect, je retire.
Mais je reconnais que tu as la classe.
Cordialement
Dernière édition par cosmos70 le Mar 4 Jan 2011 - 0:30, édité 1 fois |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Lun 3 Jan 2011 - 23:13 | |
| Non, pas vraiment. En fait, la maîtrise de la croix rouge est une hantise pour moi depuis longtemps. J'ai essayé de multiples solutions, avec les moyens de Panoramic. Témoin en est mon IDE en français où j'ai tenté de maîtriser cela en Panoramic seul - avec la perte de la possibilité de redimensionner les fenêtres et un aspect visuel plus frustre. Depuis plusieurs mois, je cherche une solution par Delphi, mais sans véritable succès. Puis, on_close m'a donné des ailes, mais ce n'était pas non plus la solution. Puis, le déclic est venu aujourd'hui, je suis sincèrement ravi d'avoir réussi cela et j'étais impatient de partager cela avec vous tous. On peut maintenant, à volonté: - désactiver ou réactiver la croix rouge sur n'importe quelle form - escamoter ou réafficher les boutons de réduction/agrandissement sur n'importe quelle form et ceci séparément pour chaque form ! Ce n'est pas un outil "massue" qui bloque tout ou autorise tout ! Et le plus beau dans l'affaire, c'est qu'il ne s'agit que de quelques lignes en Delphi, je je mets d'ailleurs en ligne ci-dessous, pour ceux qui s'y intéressent. Si Jack trouve cela utile, je pense qu'il est facile d'intégrer cela sous forme de petites commandes Panoramic, genre: FORM_CLOSE_ON n FORM_CLOSE_OFF n FORM_SIZE_ON n FORM_SIZE_OFF navec n étant le numéro de la form. Ce serait élégant, non ? Voici le code de la dll: - Code:
-
library SetWindowButtons;
uses Windows ;
procedure RepaintWindow(const hWnd: integer); begin // InvalidateRect (hWnd, nil, false); // UpdateWindow (hWnd); SetWindowPos(hWnd,0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_NOACTIVATE or SWP_DRAWFRAME); end;
function SetMinimizeMaximize(const hnd,mode: integer): integer; stdcall; export var l: DWord; begin if mode>0 then begin l := GetWindowLong(hnd, GWL_STYLE); l := l or (WS_MINIMIZEBOX); l := l or (WS_MAXIMIZEBOX); l := SetWindowLong(hnd, GWL_STYLE, l); end else begin l := GetWindowLong(hnd, GWL_STYLE); l := l and not (WS_MINIMIZEBOX); l := l and not (WS_MAXIMIZEBOX); l := SetWindowLong(hnd, GWL_STYLE, l); end; RepaintWindow(hnd); result := 0; end;
function SetCloseBox(const hnd,mode: integer): integer; stdcall; export var h: THandle; begin if mode>0 then begin h := GetSystemMenu(hnd, true); DeleteMenu(h, 6, 1024); end else begin h := GetSystemMenu(hnd, false); DeleteMenu(h, 6, 1024); end; RepaintWindow(hnd); result := 0; end;
exports SetMinimizeMaximize ,SetCloseBox ;
begin
end.
| |
|
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Mar 4 Jan 2011 - 0:21 | |
| Bravo | |
|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Mer 5 Jan 2011 - 21:56 | |
| Super Klaus ! T'es un chef !! | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Jeu 6 Jan 2011 - 0:33 | |
| Et bien, la suite vient ! Dans la même DLL, j'ai rajouté une fonction pour gérer le degré de transparence de n'importe quelle form ! Effet stupéfiant garanti ! On peut ainsi faire des form évanescentes ou doucement apparaissantes, en appelant cette fonction avec un timer pour varier le degré de transparence de 255 à 0 ou inversement... | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! Jeu 6 Jan 2011 - 13:10 | |
| Voilà qui ouvre des horizons insoupçonnés ! ça devient psychédélique ! | |
|
Contenu sponsorisé
| Sujet: Re: Solution ultime pour bloquer la croix rouge ! | |
| |
|