PureBasic

Forums PureBasic
Nous sommes le Ven 04/Déc/2020 0:23

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Programmation automatique (Outils PB) le lanceur
MessagePosté: Lun 02/Déc/2019 14:59 
Hors ligne

Inscription: Jeu 05/Fév/2009 17:58
Messages: 985
Bonjour a tous
Dans mes élucubrations de code automatique, j'ai repensé profondément mon logiciel de placement des gadgets.(Autogad). Ceci suite a une utilisation assez intense de la bête.
J'ai aussi tenu compte des remarques de Ar-s.(Merci a toi).
J'ai aussi repensé mon constructeur de fenêtres "Winconstructeur". (Kernadec va être content.) Ce logiciel fonctionne maintenant en symbiose avec le précédent pour cela il suffit d'enregistré les dimensions de la fenêtre.
Pour le fun j'ai programmé un petit lanceur pour les deux logiciels.
Vous compilez les trois programmes dans le même répertoire, et vous épinglez le lanceur dans la barre de tâche de windows.
Noubliez pas de lire attentivement les aides.
Indiquez mois les éventuels bugs, ou les améliorations possibles.
Merci par avance et bon courage a tous.

Michel
Code:
;******************************************************
;*OutilsPB MLD 1/12/2019 Compilation PB 5.71 LTS     *
;* ATTENTION NE PAS COCHER  le DPI DANS le COMPILATEUR*
;******************************************************
;¤¤¤¤ Assignation des gadgets ¤¤¤¤
#Outils = 1:#bt_Winconstructeur = 2:#bt_AUTOGAD = 3:#bt_stop = 4
;¤¤¤¤¤¤¤¤

#Ldef = 1920:#Hdef = 1080

Global typH.b,L.d
Global definecrht.d = GetSystemMetrics_(#SM_CYSCREEN):Global definecrlarg.d = GetSystemMetrics_(#SM_CXSCREEN)

Procedure Hw(Dh.d,typH.b)
SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)
htTaskbarwin.d = definecrht.d - DesktopWorkArea\Bottom
If opt1.l = #PB_Window_BorderLess
   OpenWindow(2000,0,0,200,200,"",#PB_Window_BorderLess|#PB_Window_Invisible)
Else
   OpenWindow(2000,0,0,200,200,"",#PB_Window_SystemMenu|#PB_Window_Invisible)
EndIf
EPframeL.d = WindowX(2000, #PB_Window_InnerCoordinate)
Httitre.d = WindowY(2000, #PB_Window_InnerCoordinate)
CloseWindow(2000)
Select typH.b
  Case 1 ;fen avec titre et haut max
   Hwq.d = definecrht - Httitre.d
  Case 2 ;fen avec titre et barre de tache win visible
   Hwq.d = definecrht - (htTaskbarwin  + Httitre.d  + EPframeH)
  Case 3 ;fen sans titre et hauteur max
   Hwq.d = definecrht
  Case 4 ;fen sans titre et barre de tache win visible
   Hwq.d = definecrht - htTaskbarwin
  Default ;fen quelconque
   Hwq.d =  Dh * (definecrht /#Hdef)
EndSelect
ProcedureReturn Hwq.d
EndProcedure

Procedure Lw(dL.d)
L.d = dL * (definecrlarg /#Ldef)
ProcedureReturn L.d
EndProcedure

Procedure Ywp(y.d)
ProcedureReturn y.d *(definecrht.d /#Hdef)
EndProcedure

Procedure XWp(lp.d)
ProcedureReturn lp.d * (definecrlarg /#Ldef)
EndProcedure

Procedure MLD_openfen(ng.d,x.d,y.d,Lf.d,H.d,titre$,opt1.l,opt2.l,opt3.l,opt4.l,typH.b)
If typH.b <> 0 : y.d = 0:EndIf
OpenWindow(ng.d,Xwp(x.d),Ywp(y.d),Lw(Lf.d),Hw(H.d,typH.b),titre$,opt1.l|opt2.l|opt3.l|opt4.l)
EndProcedure

Procedure X(lg.d)
  ProcedureReturn lg *(definecrlarg.d/#Ldef)
EndProcedure

Procedure y(h.d)
  ProcedureReturn h *(definecrht.d /#Hdef)
EndProcedure

FontID3 = LoadFont(10,"Tahoma",X(16),0|0|0|0|0)
FontID4 = LoadFont(11,"Tahoma",X(16),256|0|0|0|0)

MLD_openfen(1,720,75,550,250,"Outils",#PB_Window_BorderLess,#NUL,#NUL,#PB_Window_ScreenCentered,0)
StickyWindow(1,1)
SetWindowColor(1,$D5F0E1)
SetWindowLongPtr_(WindowID(1), #GWL_STYLE, GetWindowLongPtr_(WindowID(1), #GWL_STYLE) | #WS_DLGFRAME)
SetWindowPos_(WindowID(1), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
;
ButtonGadget(2,X(147),Y(80),X(250),Y(32),"WINCONSTRUCTEUR")
SetGadgetFont(2,FontID3)
ButtonGadget(3,X(147),Y(140),X(250),Y(32),"AUTOGAD")
SetGadgetFont(3,FontID3)
ButtonGadget(4,X(470),Y(205),X(70),Y(32),"STOP")
SetGadgetFont(4,FontID3)
TextGadget(5,X(0),Y(0),X(550),Y(35),"OUTILS PB",#PB_Text_Center|#PB_Text_Border)
SetGadgetFont(5,FontID3)
SetGadgetColor(5,#PB_Gadget_BackColor,$99D299)
SetGadgetColor(5,#PB_Gadget_FrontColor,$860181)
TextGadget(6,X(0),Y(33),X(550),Y(1),"")
SetGadgetColor(6,#PB_Gadget_BackColor,$0)
;
Repeat
  Event = WaitWindowEvent()
  If Event = #WM_LBUTTONDOWN
    SendMessage_(WindowID(1), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
  EndIf
   If Event = #PB_Event_Gadget
    Select EventGadget()
      Case 2;bt Winconstructeur
        RunProgram("Winconstructeur5")
        Break
      Case 3;bt AUTOGAD
        RunProgram("AUTOGAD_V4")
        Break
      Case 4;bt stop
        Break
    EndSelect
  EndIf
ForEver
End


Dimensions automatique a mes yeux veut dire fonctionnant sur tous les écrans. La précision dans certains cas rare sera de 1 ou 2 pixels.


Dernière édition par MLD le Mer 04/Déc/2019 17:58, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programmation automatique (Outils PB) le lanceur
MessagePosté: Lun 02/Déc/2019 15:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2325
Localisation: 50200 Coutances
Merci beaucoup MLD pour le partage de cette suite que je trouve absolument géniale, j'ai fait de nombreux essais tous très concluants. Merci encore.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.72 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programmation automatique (Outils PB) le lanceur
MessagePosté: Mer 04/Déc/2019 17:53 
Hors ligne

Inscription: Jeu 05/Fév/2009 17:58
Messages: 985
Avec un peu de retard, Merci Micoute
Vu le nombre de réponse tous le monde doit être content, il n'y a pas de bug. :lol:
Ou alors vu la vague de froid en ce moment les doigts sont collés au clavier :?: :oops:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programmation automatique (Outils PB) le lanceur
MessagePosté: Jeu 05/Déc/2019 15:19 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2325
Localisation: 50200 Coutances
Moi, ça va, je tape mes listings avec des gants de boxe.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.72 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye