Les constantes prédéfinies

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Les constantes prédéfinies

Message par Ollivier »

Salut à tous,

Peut-être que certains vont trouver ça inutile, mais je poste le code des abréviations de constantes que j'inclus presque tout le temps maintenant dans mes programmes.

L'avantage, ben c'est juste un peu moins de temps perdu à écrire et à lire son prog.

Normalement, ça prend rien dans l'EXE. Donc pas d'inconvénient. J'espère ne pas plaggier un post ou code déjà écrit à ce sujet, sinon n'hésitez pas à me le faire savoir. Si ce n'est pas le cas, je remettrais à jour ce post à jour quand je ferai des rajouts dans mon fichier pbi.

(Shorts.PBI)

Code : Tout sélectionner

#Any = #PB_Any

;- OPTIONS WINDOW
#WMenu = #PB_Window_SystemMenu     
; Autorise le menu système sur la barre de titre.
#WMini = #PB_Window_MinimizeGadget 
; Ajoute l'icône 'Réduire' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
#WMaxi = #PB_Window_MaximizeGadget 
; Ajoute l'icône 'Agrandir' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
#WRedim = #PB_Window_SizeGadget
; Ajoute les possibilités de redimensionnement à la fenêtre.
#WInvis = #PB_Window_Invisible
; Crée la fenêtre mais ne l'affiche pas. Non supporté sur AmigaOS.
#WTitle = #PB_Window_TitleBar
; Crée la fenêtre avec une barre de titre.
#WBorderLess = #PB_Window_BorderLess
; Crée une fenêtre sans bordure.
#WScrCtr = #PB_Window_ScreenCentered
; Centre la fenêtre au milieu de l'écran. Les paramètres x,y sont ignorés.
#WWinCtr = #PB_Window_WindowCentered 
; Centre la fenêtre au milieu de la fenêtre mère ('FenetreMereID' doit être spécifié). Les paramètres x,y sont ignorés.
#WMaximize = #PB_Window_Maximize 
; Ouvre la fenêtre en mode maximisé. (Note: sous Linux, certains gestionnaires de fenêtres ne supportent pas cela)
#WMinimize = #PB_Window_Minimize
; Ouvre la fenêtre en mode minimisé.


;- RETOUR EVENEMENT
#EvMenu = #PB_Event_Menu
; Un menu a été sélectionné
#EvGadget = #PB_Event_Gadget
; Un gadget a été cliqué
#EvSysTray = #PB_Event_SysTray
; Une icône dans la zone SysTray a été cliquée 
#EvCloseWin = #PB_Event_CloseWindow
; L'icône de fermeture de fenêtre a été cliquée
#EvRepaint = #PB_Event_Repaint
; Tout ou partie du contenu de la fenêtre a été détruit et doit être reconstitué (Utile pour les applications en graphique 2D)
#EvMoveWin = #PB_Event_MoveWindow
; La fenêtre a été déplacée
#EvSizeWin = #PB_Event_SizeWindow
; La fenêtre a été redimensionnée
#EvActiveWin = #PB_Event_ActivateWindow
; La fenêtre a été activée (gain du focus)
#EvWinDrop = #PB_Event_WindowDrop
; Une opération 'Glisser & Déposer' s'est terminée sur une fenêtre
#EvGadgetDrop = #PB_Event_GadgetDrop
; Une opération 'Glisser & Déposer' s'est terminée sur un gadget

;- REQUETE MESSAGE
#MessReqYesNo = #PB_MessageRequester_YesNo
; Pour afficher les boutons 'Oui' et 'Non'
#MessReqYesNoCancel = #PB_MessageRequester_YesNoCancel
; Pour afficher les boutons 'Oui', 'Non' et 'Annuler' 
#MessReqOk = #PB_MessageRequester_Ok
; Pour afficher seulement le bouton 'OK'

;(RETOUR)
#MessReqYes = #PB_MessageRequester_Yes
; Le bouton 'Oui' a été pressé
#MessReqNo = #PB_MessageRequester_No
; Le bouton 'Non' a été pressé
#MessReqCancel = #PB_MessageRequester_Cancel
; Le bouton 'Annuler' a été pressé



;- OPTIONS LIST-ICON GADGET
#LI_CheckBox = #PB_ListIcon_CheckBoxes
; Affiche une Case à cocher dans la première colonne.
#LI_MultiSelect = #PB_ListIcon_MultiSelect
; Active le mode 'sélection multiple'.
#LI_Grid = #PB_ListIcon_GridLines
; Affiche des lignes de séparation.
#LI_FullLine = #PB_ListIcon_FullRowSelect
; La sélection s'étend à toute la ligne au lieu de la première colonne.
#LI_DragDrop = #PB_ListIcon_HeaderDragDrop
; L'ordre des colonnes peut être changé avec un glisser/déposer (drag'n'drop).
#LI_EverSelect = #PB_ListIcon_AlwaysShowSelection
; Affiche la selection même quand le gadget n'est plus actif.


;- TYPES DE GADGET
#GT_Button = #PB_GadgetType_Button               ; ButtonGadget()
#GT_ButtonImage = #PB_GadgetType_ButtonImage     ; ButtonImageGadget() 
#GT_Calendar = #PB_GadgetType_Calendar           ; CalendarGadget() 
#GT_CheckBox = #PB_GadgetType_CheckBox           ; CheckBoxGadget() 
#GT_ComboBox = #PB_GadgetType_ComboBox           ; ComboBoxGadget() 
#GT_Container = #PB_GadgetType_Container         ; ContainerGadget() 
#GT_Date = #PB_GadgetType_Date                   ; DateGadget() 
#GT_Editor = #PB_GadgetType_Editor               ; EditorGadget() 
#GT_ExplorerCombo = #PB_GadgetType_ExplorerCombo ; ExplorerComboGadget() 
#GT_ExplorerList = #PB_GadgetType_ExplorerList   ; ExplorerListGadget() 
#GT_ExplorerTree = #PB_GadgetType_ExplorerTree   ; ExplorerTreeGadget() 
#GT_Frame3D = #PB_GadgetType_Frame3D             ; Frame3DGadget() 
#GT_HyperLink = #PB_GadgetType_HyperLink         ; HyperLinkGadget() 
#GT_Image = #PB_GadgetType_Image                 ; ImageGadget() 
#GT_IPAddress = #PB_GadgetType_IPAddress         ; IPAddressGadget() 
#GT_ListIcon = #PB_GadgetType_ListIcon           ; ListIconGadget() 
#GT_ListView = #PB_GadgetType_ListView           ; ListViewGadget() 
#GT_MDI = #PB_GadgetType_MDI                     ; MDIGadget() 
#GT_Option = #PB_GadgetType_Option               ; OptionGadget() 
#GT_Panel = #PB_GadgetType_Panel                 ; PanelGadget() 
#GT_ProgressBar = #PB_GadgetType_ProgressBar     ; ProgressBarGadget() 
;#GT_Scintilla = #PB_GadgetType_Scintilla         ; ScintillaGadget()
#GT_ScrollArea = #PB_GadgetType_ScrollArea       ; ScrollAreaGadget() 
#GT_ScrollBar = #PB_GadgetType_ScrollBar         ; ScrollBarGadget() 
#GT_Spin = #PB_GadgetType_Spin                   ; SpinGadget() 
#GT_Splitter = #PB_GadgetType_Splitter           ; SplitterGadget() 
#GT_String = #PB_GadgetType_String               ; StringGadget() 
#GT_Text = #PB_GadgetType_Text                   ; TextGadget() 
#GT_TrackBar = #PB_GadgetType_TrackBar           ; TrackBarGadget() 
#GT_Tree = #PB_GadgetType_Tree                   ; TreeGadget() 
#GT_Web = #PB_GadgetType_Web                     ; WebGadget() 
#GT_Unknown = #PB_GadgetType_Unknown             ; Type inconnu, problablement pas un gadget PureBasic.


;- ICONES DE LA BARRE D'OUTIL
#TBI_New = #PB_ToolBarIcon_New                   ;(Nouveau fichier)
#TBI_Open = #PB_ToolBarIcon_Open                 ;(Ouvre Fichier)
#TBI_Save = #PB_ToolBarIcon_Save                 ;(Enregistre Fichier)
#TBI_Print = #PB_ToolBarIcon_Print               ;(Imprime)
#TBI_PrintPreview = #PB_ToolBarIcon_PrintPreview ;(Aperçu avant impression)
#TBI_Find = #PB_ToolBarIcon_Find                 ;(Cherche une occurence)
#TBI_Replace = #PB_ToolBarIcon_Replace           ;(Remplace une occurence)

#TBI_Cut = #PB_ToolBarIcon_Cut                   ;(Couper)
#TBI_Copy = #PB_ToolBarIcon_Copy                 ;(Copier)
#TBI_Paste = #PB_ToolBarIcon_Paste               ;(Coller)
#TBI_Undo = #PB_ToolBarIcon_Undo                 ;(Annule l'action)
#TBI_Redo = #PB_ToolBarIcon_Redo                 ;(Repète l'action)

#TBI_Delete = #PB_ToolBarIcon_Delete             ;(Efface)
#TBI_Properties = #PB_ToolBarIcon_Properties     ;(Propriétés)
#TBI_Help = #PB_ToolBarIcon_Help                 ;(Aide)


;- OPTIONS POLICE
#FBold = #PB_Font_Bold               ; La police de caractère sera en gras
#FItalic = #PB_Font_Italic           ; La police de caractère sera en italique
#FUnderline = #PB_Font_Underline     ; La police de caractère sera soulignée
#FStrikeOut = #PB_Font_StrikeOut     ; La police de caractère sera barrée
#FHighQuality = #PB_Font_HighQuality ; La police de caractère sera en qualité supérieure (plus lent)

;- RETOUR CLAVIER
#KeyAll = #PB_Key_All   ; Toutes les touches sont testées.
#Key1 = #PB_Key_1
#Key2 = #PB_Key_2
#Key3 = #PB_Key_3
#Key4 = #PB_Key_4
#Key5 = #PB_Key_5
#Key6 = #PB_Key_6
#Key7 = #PB_Key_7
#Key8 = #PB_Key_8
#Key9 = #PB_Key_9
#Key0 = #PB_Key_0
#KeyA = #PB_Key_A
#KeyB = #PB_Key_B
#KeyC = #PB_Key_C
#KeyD = #PB_Key_D
#KeyE = #PB_Key_E
#KeyF = #PB_Key_F
#KeyG = #PB_Key_G
#KeyH = #PB_Key_H
#KeyI = #PB_Key_I
#KeyJ = #PB_Key_J
#KeyK = #PB_Key_K
#KeyL = #PB_Key_L
#KeyM = #PB_Key_M
#KeyN = #PB_Key_N
#KeyO = #PB_Key_O
#KeyP = #PB_Key_P
#KeyQ = #PB_Key_Q
#KeyR = #PB_Key_R
#KeyS = #PB_Key_S
#KeyT = #PB_Key_T
#KeyU = #PB_Key_U
#KeyV = #PB_Key_V
#KeyW = #PB_Key_W
#KeyX = #PB_Key_X
#KeyY = #PB_Key_Y
#KeyZ = #PB_Key_Z
#KeyEscape = #PB_Key_Escape
#KeyMinus = #PB_Key_Minus
#KeyEquals = #PB_Key_Equals
#KeyBack = #PB_Key_Back
#KeyTab = #PB_Key_Tab
#KeyLeftBracket = #PB_Key_LeftBracket
#KeyRightBracket = #PB_Key_RightBracket
#KeyReturn = #PB_Key_Return
#KeyLeftControl = #PB_Key_LeftControl
#KeySemiColon = #PB_Key_SemiColon
#KeyApostrophe = #PB_Key_Apostrophe
#KeyGrave = #PB_Key_Grave
#KeyLeftShift = #PB_Key_LeftShift
#KeyBackSlash = #PB_Key_BackSlash
#KeyComma = #PB_Key_Comma
#KeyPeriod = #PB_Key_Period
#KeySlash = #PB_Key_Slash
#KeyRightShift = #PB_Key_RightShift
#KeyMultiply = #PB_Key_Multiply
#KeyLeftAlt = #PB_Key_LeftAlt
#KeySpace = #PB_Key_Space
#KeyCapital = #PB_Key_Capital
#KeyF1 = #PB_Key_F1
#KeyF2 = #PB_Key_F2
#KeyF3 = #PB_Key_F3
#KeyF4 = #PB_Key_F4
#KeyF5 = #PB_Key_F5
#KeyF6 = #PB_Key_F6
#KeyF7 = #PB_Key_F7
#KeyF8 = #PB_Key_F8
#KeyF9 = #PB_Key_F9
#KeyF10 = #PB_Key_F10
#KeyF11 = #PB_Key_F11
#KeyF12 = #PB_Key_F12
#KeyNumLock = #PB_Key_NumLock
#KeyScroll = #PB_Key_Scroll
#KeyPad0 = #PB_Key_Pad0
#KeyPad1 = #PB_Key_Pad1
#KeyPad2 = #PB_Key_Pad2
#KeyPad3 = #PB_Key_Pad3
#KeyPad4 = #PB_Key_Pad4
#KeyPad5 = #PB_Key_Pad5
#KeyPad6 = #PB_Key_Pad6
#KeyPad7 = #PB_Key_Pad7
#KeyPad8 = #PB_Key_Pad8
#KeyPad9 = #PB_Key_Pad9
#KeyAdd = #PB_Key_Add
#KeySubtract = #PB_Key_Subtract
#KeyDecimal = #PB_Key_Decimal
#KeyPadEnter = #PB_Key_PadEnter
#KeyRightControl = #PB_Key_RightControl
#KeyPadComma = #PB_Key_PadComma
#KeyDivide = #PB_Key_Divide
#KeyRightAlt = #PB_Key_RightAlt
#KeyPause = #PB_Key_Pause
#KeyHome = #PB_Key_Home
#KeyUp = #PB_Key_Up
#KeyDown = #PB_Key_Down
#KeyLeft = #PB_Key_Left
#KeyRight = #PB_Key_Right
#KeyEnd = #PB_Key_End
#KeyPageUp = #PB_Key_PageUp
#KeyPageDown = #PB_Key_PageDown
#KeyInsert = #PB_Key_Insert
#KeyDelete = #PB_Key_Delete

Code 1 : Ajouter et supprimer des fenêtres
Taille des fenêtres modifiables : ListIconGadget redimensionné automatiquement

Code : Tout sélectionner

XIncludeFile "Shorts.pbi"
;- -------------------------------
;- Structure des corps
Structure Cp
  Win.l      ; Numéro de la fenêtre
  Gdg.l      ; Numéro du gadget
  GdgFlag.l  ; Drapeaux d'état du gadget
EndStructure

Global NewList Dt.Cp()
;- -------------------------------


;- -------------------------------
;- Paramètre système
Global Breaking
;- -------------------------------


;- -------------------------------
;- Paramètre Fenêtre système
Global WinSys0
Global GdgSys0
;- -------------------------------
Declare IniSystem()
Declare EventSystem()
Declare CreateTable()
Declare.l GWinPos()
Declare SearchWin(n)

Procedure IniSystem()
  WinSys0 = OpenWindow(#Any, 10, 10, 200, 100, "Base de données")
  CreateGadgetList(WindowID(WinSys0) )
  GdgSys0 = ButtonGadget(#Any, 0, 0, 200, 30, "Nouvelle fenêtre")
EndProcedure


Procedure EventSystem() 
  Repeat  
    Result = WaitWindowEvent()
    Win = EventWindow()
    Gdg = 0
    If Result = #EvGadget
      Gdg = EventGadget()
    EndIf
    If Win = WinSys0      
      If Gdg = GdgSys0        
        CreateTable()
      EndIf
    EndIf
    If Result = #PB_Event_CloseWindow
      If Win = WinSys0      
        Breaking = 1
      Else
        CloseWindow(Win)
      EndIf
    EndIf
    
    If Result = #PB_Event_SizeWindow
      If Win <> WinSys0
        dx = WindowWidth(Win)
        dy = WindowHeight(Win)
        If SearchWin(Win)
          CreateGadgetList(WindowID(Win) )        
          Dt()\Gdg = ListIconGadget(#Any, 0, 0, dx, dy, "", 0, #LI_Grid|#LI_FullLine|#LI_DragDrop)
        EndIf
      EndIf
    EndIf
  Until Breaking = 1
EndProcedure

Procedure CreateTable()
  AddElement(Dt() )
  Pos = GWinPos()
  Dt()\Win = OpenWindow(#Any, 200 + Pos, Pos, 200, 100, "Fenêtre "+Str(29), #WMenu|#WRedim|#WMini|#WMaxi)
  If CreateGadgetList(WindowID(Dt()\Win) ) = 0
    
  EndIf
EndProcedure

Procedure.l GWinPos()
;Génère une position correcte pour les nouvelles fenêtres
  Static x
  x + 32
  If x > 255
    x = 0
  EndIf
  ProcedureReturn x
EndProcedure

Procedure SearchWin(n)
  Reste = -1
  If CountList(Dt() ) > 0
    *Ancien_Element = @Dt()   ; On mémorise l'adresse de l'élément courant
  
    ResetList(Dt())           ; Effectue une recherche de tous les éléments nommés
    While NextElement(Dt()) And Reste
      If Dt()\Win = n
        Reste = 0
      EndIf 
    Wend     
    ChangeCurrentElement(Dt(), *Ancien_Element) ; Restitue l'ancien élément courant (mémorisé avant la recherche)
  EndIf
  ProcedureReturn (-1-Reste)
EndProcedure

  
  



Global Dim Opt(15)
Global Dim Itm$(15, 99)

IniSystem()

EventSystem()

End
Code 2 : Editer TreeExplorerGadget à l'initiative de Droopy

Code : Tout sélectionner

#Gad_Tree = 0 
#Menu_TreeEdit = 0 
#ItemIns_Enfant = 0 
#ItemIns_Frere = 1 
#ItemSuppr = 2 
#ItemProper = 3 

  If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    CreateGadgetList(WindowID(0) )    
    TreeGadget(#Gad_Tree, 10, 10, 340, 160)    
    AddGadgetItem(#Gad_Tree, 0, "Root", 0, 0)    
    ;Boucle principale    
    CreatePopupMenu(#Menu_TreeEdit) 
    OpenSubMenu("Ajouter") 
      MenuItem(#ItemIns_Enfant, "Enfant") 
      MenuItem(#ItemIns_Frere, "Frere")    
    CloseSubMenu() 
    MenuItem(#ItemSuppr, "Enlever") 
    MenuItem(#ItemProper, "Propriétés") 
  Else 
  
    End 
    
  EndIf 
  
  Repeat 
    Select WaitWindowEvent()    
    Case #PB_Event_CloseWindow 
      End    
    Case #WM_RBUTTONDOWN 
      DisplayPopupMenu(0,WindowID(0)) 
    Case #PB_Event_Menu 
      Select EventMenu()      
      Case #ItemIns_Enfant 
        ; On vérif qu'il y a une sélection /!\ Important : Merci Flype :) 
        If GetGadgetState(#Gad_Tree) <> -1 
          ; On récup la sélection 
          Item = GetGadgetState(#Gad_Tree) 
          ; On récup alors le niveau de la sélection 
          ItemNiveau = GetGadgetItemAttribute(#Gad_Tree, Item, #PB_Tree_SubLevel) 
          ; On mémorise le total: à 2 fois ça servira 
          ExitFor = CountGadgetItems(#Gad_Tree) 
          ; On va rechercher l'enfant cadet 
          For i = Item + 1 To ExitFor 
            TestNiveau = GetGadgetItemAttribute(#Gad_Tree, i, #PB_Tree_SubLevel) 
            ; Dès qu'on trouve un frère, un tonton ou autre... 
            If TestNiveau <= ItemNiveau 
              ; On signale que le cadet était juste avant 
              Item = i - 1 
              ; Et on arrête de chercher 
              i = ExitFor 
            EndIf 
          Next i 
          ; On rajoute le bébé! 
          AddGadgetItem(#Gad_Tree, Item + 1, "Root"+ Str(n), 0, ItemNiveau + 1) 
          ; Et on ouvre la famille 
          SetGadgetItemState(#Gad_Tree, Item, #PB_Tree_Expanded) 
          n + 1 ; ça ça sert pas à grand chose, juste pour écrire "Root n" 
        EndIf 
      Case #ItemIns_Frere 
        ; On vérif qu'il y a une sélection 
        If GetGadgetState(#Gad_Tree) <> -1 
          ; On récup la sélection 
          Item = GetGadgetState(#Gad_Tree) 
          ; On récup alors le niveau de la sélection 
          ItemNiveau = GetGadgetItemAttribute(#Gad_Tree, Item, #PB_Tree_SubLevel) 
          ; On mémorise le total: à 2 fois ça servira 
          ExitFor = CountGadgetItems(#Gad_Tree) 
          ; On va rechercher le dernier des descendants, neveux compris 
          For i = Item + 1 To ExitFor 
            TestNiveau = GetGadgetItemAttribute(#Gad_Tree, i, #PB_Tree_SubLevel) 
            ;Si c'est un frère, un fils, un neveu... 
            If TestNiveau => ItemNiveau 
              ; On le mémorise au cas où ce soit le dernier 
              Item = i 
            EndIf 
            ;Si c'est un tonton ou autre parent germain, recherche achevée 
            If TestNiveau < ItemNiveau            
              i = ExitFor 
            EndIf 
          Next i 
          ; On insère le nouveau frère cadet 
          AddGadgetItem(#Gad_Tree, Item + 1, "Root"+Str(n), 0, ItemNiveau) 
          n + 1 ; ça ça sert pas à grand chose, juste pour écrire "Root n" 
        EndIf 
      Case #ItemSuppr 
        If GetGadgetState(#Gad_Tree) <> -1 
          ; On récup la sélection 
          Item = GetGadgetState(#Gad_Tree) 
          ; On lui pete la gueule 
          RemoveGadgetItem(#Gad_Tree, Item) 
          n + 1 ; ça ça sert pas à grand chose, juste pour écrire "Root n" 
        EndIf 
      Case #ItemProper 
        MessageRequester("Heplà...", "A 4h du mat, faut pô me demander la lune!", 0) 
      EndSelect 
    EndSelect 
  ForEver
XLC XLCP