Exemple de code

Partagez votre expérience de PureBasic avec les autres utilisateurs.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Exemple de code

Message par dayvid »

J'ai commencer a faire ceci, sa va me facilité la tache que de toujours rechercher les codes dans mes dossier :)

Code : Tout sélectionner

TEMPLATES:1.0

Directory: Gestion du clavier et de la souris
  Template: Renvoyer touche clavier appuiyer
    Comment: Renvoie la touche du clavier qui est présser
    Code: \n;{Aide\n;-----------------------------------------------------------Pour le clavier:---------------------------------------------------------------------------------------------------------\n\n; Le Mode peut être entre 1 et 5, sinon si différent de 1, 2, 3, 4 ou 5,  le mode 1 sera appliquer par défaut\n;\n; 1 = Renvoie uniquement le nom de la touche presser (Mode par défaut)\n; 2 = Renvoie le nom ainsi que le code de la touche presser\n; 3 = Renvoie le nom ainsi que le code de la touche presser sous la forme Hexa\n; 4 = Renvoie uniquement le code de la touche presser\n; 5 = Renvoie uniquement le code de la touche presser mais sous la forme Hexa\n\n; Syntaxe:  Touche_presser$ = GetKeyboardKeyPressed(Mode)\n\n; La commande doit être placer a l'intérieur d'une boucle quelconque pour fonctionner correctement\n; ou sinon celle-ci sera exécuter qu'une seule fois et ne renverra rien sauf si une touche est déjà enfoncer\n\n; Normalement, toutes les touches du clavier son gérer !\n\n;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n;}\n\nProcedure.s GetKeyboardKeyPressed(Mode)\n  \n  Buffer$ = ""\n  \n  For Touche = 0 To 254\n    Cle_Touche = GetAsyncKeyState_(Touche)\n    \n    If Cle_Touche = - 32767\n      \n      Buffer$ + Str(Touche) + "|"\n      \n      \n      If Touche > 64 And Touche < 91 ; de A à Z\n        Touche$ = Chr(Touche)\n        \n        \n      ElseIf Touche = 27\n        Touche$ = "Echap"\n        \n        \n      ElseIf Touche = 32\n        Touche$ = "Espace"\n        \n        \n      ElseIf Touche > 111 And Touche < 124 ; de F1 a F12\n        Touche$ = "F" + Str(Touche - 111)\n        \n        \n      ElseIf Touche = 44\n        Touche$ = "Impr écran"\n        \n        \n      ElseIf Touche = 45\n        Touche$ = "Inser"\n        \n        \n      ElseIf Touche = 46\n        Touche$ = "Suppr"\n        \n        \n      ElseIf Touche = 36\n        Touche$ = "Flèche diagonnale haut gauche"\n        \n        \n      ElseIf Touche = 35\n        Touche$ = "Fin"\n        \n        \n      ElseIf Touche = 19\n        Touche$ = "Pause-Attn"\n        \n        \n      ElseIf Touche = 145\n        Touche$ = "Arrêt Défil"\n        \n        \n      ElseIf Touche > 47 And Touche < 58 ; de 0 à 9\n        Touche$ = Str(Touche - 48)\n        \n        \n      ElseIf Touche > 95 And Touche < 106 ; pad numérique de 0 à 9\n        Touche$ = "Pad " + Str(Touche - 96)\n        \n        \n      ElseIf Touche = 222\n        Touche$ = "²"\n        \n        \n      ElseIf Touche = 219\n        Touche$ = ")"\n        \n        \n      ElseIf Touche = 187\n        Touche$ = "="\n        \n        \n      ElseIf Touche = 8\n        Touche$ = "Retour arrière"\n        \n        \n      ElseIf Touche = 9\n        Touche$ = "Tabulation Horizontal"\n        \n        \n      ElseIf Touche = 20\n        Touche$ = "Majuscule Cadena"\n        \n        \n      ElseIf Touche = 160\n        Touche$ = "Majuscule flèche gauche"\n        \n        \n      ElseIf Touche = 162\n        Touche$ = "Ctrl gauche"\n        \n      ElseIf Touche = 91\n        Touche$ = "Appel du menue de windows"\n        \n        \n      ElseIf Touche = 93\n        Touche$ = "Appel du menue de la souris"\n        \n        \n      ElseIf Touche = 164\n        Touche$ = "Alt"\n        \n        \n      ElseIf Touche = 226\n        Touche$ = ">"\n        \n        \n      ElseIf Touche = 221\n        Touche$ = "¨"\n        \n        \n      ElseIf Touche = 186\n        Touche$ = "$"\n        \n        \n      ElseIf Touche = 192\n        Touche$ = "ù"\n        \n        \n      ElseIf Touche = 220\n        Touche$ = "*"\n        \n        \n      ElseIf Touche = 188\n        Touche$ = ","\n        \n        \n      ElseIf Touche = 190\n        Touche$ = ";"\n        \n        \n      ElseIf Touche = 191\n        Touche$ = ":"\n        \n        \n      ElseIf Touche = 223\n        Touche$ = "!"\n        \n        \n      ElseIf Touche = 161\n        Touche$ = "Majuscule flèche droite"\n        \n        \n      ElseIf Touche = 33\n        Touche$ = "Flèche arrètte haut"\n        \n        \n      ElseIf Touche = 34\n        Touche$ = "Flèche arrètte bas"\n        \n        \n      ElseIf Touche = 163\n        Touche$ = "Ctrl droite"\n        \n        \n      ElseIf Touche = 165\n        Touche$ = "Alt Gr"\n        \n      ElseIf Touche = 37\n        Touche$ = "Flèche gauche"\n        \n      ElseIf Touche = 38\n        Touche$ = "Flèche haut"\n        \n      ElseIf Touche = 39\n        Touche$ = "Flèche droite"\n        \n      ElseIf Touche = 40\n        Touche$ = "Flèche bas"\n        \n      ElseIf Touche = 110\n        Touche$ = "Pad Suppr"\n        \n      ElseIf Touche = 13\n        Touche$ = "Entrer"\n        \n      ElseIf Touche = 106\n        Touche$ = "Pad Multiplication"\n        \n      ElseIf Touche = 107\n        Touche$ = "Pad Addition"\n        \n      ElseIf Touche = 109\n        Touche$ = "Pad soustraction"\n        \n      ElseIf Touche = 111\n        Touche$ = "Pad Division"\n        \n      ElseIf Touche = 144\n        Touche$ = "Verr num"\n        \n      ElseIf Touche = 172\n        Touche$ = "Internet"\n        \n      ElseIf Touche = 180\n        Touche$ = "Mail"\n        \n      ElseIf Touche = 174\n        \n        \n        Touche$ = "Sons -"\n        \n      ElseIf Touche = 175\n        Touche$ = "Sons +"\n        \n      ElseIf Touche = 177\n        Touche$ = "Lecture reculer"\n        \n      ElseIf Touche = 178\n        Touche$ = "Lecture stop"\n        \n      ElseIf Touche = 179\n        Touche$ = "Lecture / pause"\n        \n      ElseIf Touche = 176\n        Touche$ = "Lecture avencer"\n        \n        \n      EndIf\n      \n      If Touche <> 16 And Touche <> 17 And Touche <> 18 And Touche <> 1 And Touche <> 2 And Touche <> 4        \n        If Buffer$ <> "17|18|162|"\n          If Mode = 1\n            Touche_presser$ = Touche$\n          ElseIf Mode = 2\n            Touche_presser$ =  Touche$ + " | " + Str(Touche)\n          ElseIf Mode = 3\n            Touche_presser$ =  Touche$ + " | " + "$" + RSet(Hex(Touche), 2, "0")\n          ElseIf Mode = 4\n            Touche_presser$ =  Str(Touche)\n          ElseIf Mode = 5\n            Touche_presser$ = "$" + RSet(Hex(Touche), 2, "0")\n          Else\n            Touche_presser$ = Touche$\n          EndIf\n        ElseIf Buffer$ = "17|18|162|"\n          If Mode = 1\n            Touche_presser$ = "Alt Gr"\n          ElseIf Mode = 2\n            Touche_presser$ =  "Alt Gr" + " | " + Str(165)\n          ElseIf Mode = 3\n            Touche_presser$ =  "Alt Gr" + " | " + "$" + RSet(Hex(165), 2, "0")\n          ElseIf Mode = 4\n            Touche_presser$ =  Str(165)\n          ElseIf Mode = 5\n            Touche_presser$ = "$" + RSet(Hex(165), 2, "0")\n          Else\n            Touche_presser$ = "Alt Gr"\n          EndIf\n        EndIf\n      EndIf\n      \n    EndIf\n    \n  Next Touche\n  \n  \n  ProcedureReturn Touche_presser$\nEndProcedure\n
  Template: Renvoie touche souris appuiyer
    Comment: Renvoie le clique de la souris qui est présser
    Code: ;{ Aide\n;---------------------------------------------------------------Pour la souris:-----------------------------------------------------------------------------------------------------\n\n; Le Mode peut être entre 1 et 5, sinon si différent de 1, 2, 3, 4 ou 5,  le mode 1 sera appliquer par défaut\n;\n; 1 = Renvoie uniquement le nom du clique presser (Mode par défaut)\n; 2 = Renvoie le nom ainsi que le code du clique presser\n; 3 = Renvoie le nom ainsi que le code du clique presser sous la forme Hexa\n; 4 = Renvoie uniquement le code du clique presser\n; 5 = Renvoie uniquement le code du clique presser mais sous la forme Hexa\n\n; Syntaxe:  Clique_Souris$ = GetMouseKeyPressed(Mode)\n\n; La commande doit être placer a l'intérieur d'une boucle quelconque pour fonctionner correctement\n; ou sinon celle-ci sera exécuter qu'une seule fois et ne renverra rien sauf si un clique est déjà enfoncer\n\n; Normalement, la plupart des cliques de la souris son gérer, mais pas tous !\n\n;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n;}\n\nProcedure.s GetMouseKeyPressed(Mode)\n  \n  For Clique = 0 To 10\n    Cle_Clique = GetAsyncKeyState_(Clique)\n    \n    If Cle_Clique = - 32767\n      \n      If Clique = 1\n        Clique$ = "Clique droit"\n        \n      ElseIf Clique = 2\n        Clique$ = "Clique gauche"\n        \n      ElseIf Clique = 4\n        Clique$ = "Clique centre"\n        \n      ElseIf Clique = 5\n        Clique$ = "Clique Précédent"\n        \n      ElseIf Clique = 6\n        Clique$ = "Clique Suivent"\n        \n      EndIf\n      \n      If Mode = 1\n        Clique_Souris$ = Clique$\n        \n      ElseIf Mode = 2\n        Clique_Souris$ = Clique$ + " | " + Str(Clique)\n        \n      ElseIf Mode = 3\n        Clique_Souris$ = Clique$ + " | " + "$" + RSet(Hex(Clique), 2, "0")\n        \n      ElseIf Mode = 4\n        Clique_Souris$ = Str(Clique)\n        \n      ElseIf Mode = 5\n        Clique_Souris$ = "$" + RSet(Hex(Clique), 2, "0")\n        \n      Else\n        Clique_Souris$ = Clique$\n      EndIf\n      \n    EndIf\n    \n  Next\n  \n  ProcedureReturn Clique_Souris$\nEndProcedure\n
CloseDirectory
Directory: Convertion
Expanded
  Directory: Nombre positif ou négatif
    Template: Convertion nombre en positif
      Comment: Permet de convertie un nombre négatif en positif
      Code: \nProcedure.l convertion_positif(nombre)\n  convertion_nombre = nombre - nombre - nombre\n  ProcedureReturn convertion_nombre\nEndProcedure\n
    Template: Convertion nombre en négatif
      Comment: Permet de convertire un nombre positif en négatif
      Code: \nProcedure.l convertion_negatif(nombre)\n  convertion_nombre = nombre - nombre - nombre\n  ProcedureReturn convertion_nombre\nEndProcedure\n
  CloseDirectory
  Directory: Convertion chaine caractère
    Template: Convertion chaine caractère en code
      Comment: Cette procedure permet de convertire une chaine de caractère en code directement compilable\n\nSa permet de facilité le travail d'affichage\ndes caractère notament dans une console
      Code: \n    ; crée par dieppedalle david le 16 mars 2010\n    ; vous pouvez crée une procedure comme la\n    ; ou alors vous prenez la chaine dans un fichier:\n        \n    ;     If ReadFile(1, "chaine.txt")  ; Si le fichier peut être lu , on continue...\n    ;     While Eof(1) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') \n    ;       chaine$ = ReadString(1)      ; Affiche ligne par ligne le contenu du fichier\n    ;     Wend\n    ;     CloseFile(1)               ; Ferme le fichier précédemment ouvert\n    ;   Else\n    ;     MessageRequester("Information","Impossible d'ouvrir le fichier !")\n    ;   EndIf\n        \n    ; l'aventage de prendre la chaine directement dans un fichier\n    ; c'est que ont peut convertire aussie les guillemet \n    ; ce qui ne peut pas ce faire avec une procedure\n    ; car l'on ne peut pas mêtre de guillemet\n    ; pure dans une chaine de caractère\n    \n    ; il y as deux mode, 0 et 1\n    ; le mode 0 est pour les caractères ascii standard qui ne sont pas compatible avec la console\n    ; et le mode 1 est pour les caractères ascii en mode console\n    \n    \n    Procedure Convertion_caractere(Chaine$, Mode)\n\n    If mode = 0\n    \n    For converssion = 1 To Len(chaine$)    \n    \n    caractere$ = Mid(chaine$, converssion, 1)\n    \n    If caractere$ = Chr(34) Or caractere$ = "à" Or caractere$ = "â" Or caractere$ = "ä" Or caractere$ = "é" Or caractere$ = "è" Or caractere$ = "ê" Or caractere$ = "ë" Or caractere$ = "î" Or caractere$ = "ï" Or caractere$ = "ô"Or caractere$ = "ö" Or caractere$ = "û" Or caractere$ = "ü" Or caractere$ = "ÿ" Or caractere$ = "ç"\n    ; si un caractères est accentuer ou que c'est un guillemet, ont le convertit\n    convertisseur = 1\n    Else\n    convertisseur = 0\n    EndIf\n    \n    If converssion = 1 And convertisseur = 0 ; si c'est le premier caractère de la chaine et que et que ya pas de lèttre a convertire\n    caractere_convertis$ = Chr(34) + caractere$ ; je debute la chaine de caractère par un guillemet\n    \n    ElseIf converssion = 1 And convertisseur = 1 ; sinon si c'est le premier caractère de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = "Chr(" + Str(Asc(caractere$)) + ") + " + Chr(34) ; ; je debute la chaine de caractère par un chr(identifiant caractère) plus un guillemet\n    \n    ElseIf converssion = Len(chaine$) And convertisseur = 0 ; sinon si c'est le dernier caractère de la chaine et que ya pas de lèttre a convertire\n    caractere_convertis$ = caractere$ + Chr(34) ; je tèrmine la chaine de caractère par un guillemet\n    \n    ElseIf converssion = Len(chaine$) And convertisseur = 1 ; sinon si c'est le dernier caractère de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = Chr(34) + " + Chr(" + Str(Asc(caractere$)) + ")" ; je tèrmine la chaine de caractère par un + chr(identifiant caractère)\n    \n    ElseIf converssion < Len(chaine$) And convertisseur = 0 ; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya pas de lèttre a convertire\n    caractere_convertis$ = caractere$ ; j'enregistrer le caractere\n    \n    ElseIf converssion < Len(chaine$) And convertisseur = 1; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = Chr(34) + " + Chr(" + Str(Asc(caractere$)) + ") + " + Chr(34) ; je met un guillemet + chr(identifiant caractère) + ") + " + un autre guillemet\n    \n    EndIf\n    \n    caractere_convertis_precedent$ = caractere_convertis$\n    converssion_chaine$ = converssion_chaine$ + caractere_convertis$\n    \n    Next\n    \n    ElseIf mode = 1\n    \n    For converssion = 1 To Len(chaine$)    \n    \n    caractere$ = Mid(chaine$, converssion, 1)\n    \n    Select caractere$\n    ; si un caractères est accentuer ou que c'est un guillemet, ont le convertit\n    \n    Case Chr(34)\n    convertisseur = 1\n    ascii_caractere = 34\n    \n    Case "à"\n    convertisseur = 1\n    ascii_caractere = 133\n    \n    Case "â"\n    convertisseur = 1\n    ascii_caractere = 134\n    \n    Case "ä"\n    convertisseur = 1\n    ascii_caractere = 132\n    \n    Case "é"\n    convertisseur = 1\n    ascii_caractere = 130\n    \n    Case "è"\n    convertisseur = 1\n    ascii_caractere = 138\n    \n    Case "ê"\n    convertisseur = 1\n    ascii_caractere = 136\n    \n    Case "ë"\n    convertisseur = 1\n    ascii_caractere = 137\n    \n    Case "î"\n    convertisseur = 1\n    ascii_caractere = 140\n    \n    Case "ï"\n    convertisseur = 1\n    ascii_caractere = 139\n    \n    Case "ô"\n    convertisseur = 1\n    ascii_caractere = 147\n    \n    Case "ö"\n    convertisseur = 1\n    ascii_caractere = 153\n    \n    Case "û"\n    convertisseur = 1\n    ascii_caractere = 150\n    \n    Case "ü"\n    convertisseur = 1\n    ascii_caractere = 154\n    \n    Case "ÿ"\n    convertisseur = 1\n    ascii_caractere = 152\n    \n    Case "ç"\n    convertisseur = 1\n    ascii_caractere = 128\n    \n    Default\n    convertisseur = 0\n    \n    EndSelect\n    \n    If converssion = 1 And convertisseur = 0 ; si c'est le premier caractère de la chaine et que et que ya pas de lèttre a convertire\n    caractere_convertis$ = Chr(34) + caractere$ ; je debute la chaine de caractère par un guillemet\n    \n    ElseIf converssion = 1 And convertisseur = 1 ; sinon si c'est le premier caractère de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = "Chr(" + Str(ascii_caractere) + ") + " + Chr(34) ; ; je debute la chaine de caractère par un chr(identifiant caractère) plus un guillemet\n    \n    ElseIf converssion = Len(chaine$) And convertisseur = 0 ; sinon si c'est le dernier caractère de la chaine et que ya pas de lèttre a convertire\n    caractere_convertis$ = caractere$ + Chr(34) ; je tèrmine la chaine de caractère par un guillemet\n    \n    ElseIf converssion = Len(chaine$) And convertisseur = 1 ; sinon si c'est le dernier caractère de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = Chr(34) + " + Chr(" + Str(ascii_caractere) + ")" ; je tèrmine la chaine de caractère par un + chr(identifiant caractère)\n    \n    ElseIf converssion < Len(chaine$) And convertisseur = 0 ; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya pas de lèttre a convertire\n    caractere_convertis$ = caractere$ ; j'enregistrer le caractere\n    \n    ElseIf converssion < Len(chaine$) And convertisseur = 1; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya une lèttre a convertire\n    caractere_convertis$ = Chr(34) + " + Chr(" + Str(ascii_caractere) + ") + " + Chr(34) ; je met un guillemet + chr(identifiant caractère) + ") + " + un autre guillemet\n    \n    EndIf\n    \n    caractere_convertis_precedent$ = caractere_convertis$\n    converssion_chaine$ = converssion_chaine$ + caractere_convertis$\n    \n    Next\n    \n    EndIf\n    \n    Debug converssion_chaine$\n    \n    ; voici ce que sa donne\n    Debug ""\n    \n    EndProcedure\n    \n    Convertion_caractere("ë, éléphant, électrique, à, éphémère, être, ö, caraïbe, âme,ÿ, île, hôte, ä, etc.", 1)\n    \n
  CloseDirectory
CloseDirectory
Directory: Procedure diverses
Expanded
  Directory: Fenêtre
    Template: Procedure nouvelle fenêtre
      Comment: Ceci est une procedure de base pour crée une nouvelle fenêtre
      Code: Enumeration\n  #Fenetre\nEndEnumeration\n\nProcedure Procedure_Fenetre()\n  If OpenWindow(#Fenetre, 439, 170, 600, 300, "Fenêtre",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )\n    \n    ;If CreateGadgetList(WindowID(#Fenetre))\n    \n    ;EndIf\n    \n    Repeat ; Start of the event loop\n      \n      Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows\n      WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures\n      GadgetID = EventGadget() ; Is it a gadget event?\n      EventType = EventType() ; The event type\n      EventMenu = EventMenu()\n      \n      If Event = #PB_Event_Gadget\n        \n        If GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        ElseIf GadgetID = 0\n          \n        EndIf\n        \n      ElseIf Event = #PB_Event_Menu\n        \n      EndIf\n      \n    Until Event = #PB_Event_CloseWindow ; End of the event loop\n    \n  EndIf\nEndProcedure
    Template: Choix transparence fenêtre
      Comment: Permet de choisir la transparence de la fenêtre
      Code: ; English forum: http://www.purebasic.fr/english/viewtopic.php?t=8747&highlight=\n; Author: Danilo (updated for PB4.00 by blbltheworm)\n; Date: 15. December 2003\n; OS: Windows\n; Demo: No\n\n\n; The function 'SetLayeredWindowAttributes' isnt available \n; on Win9x, so the procedure just ignores it on Win9x. \n; Works fine on Win2000+\n\nProcedure SetWinTransparency(win,level) \n  If level>=0 And level<101 \n    hLib = LoadLibrary_("user32.dll") \n    If hLib \n      adr = GetProcAddress_(hLib,"SetLayeredWindowAttributes") \n      If adr \n        SetWindowLong_(WindowID(win),#GWL_EXSTYLE,GetWindowLong_(WindowID(win),#GWL_EXSTYLE)|$00080000) ; #WS_EX_LAYERED = $00080000 \n        CallFunctionFast(adr,WindowID(win),0,255*level/100,2) \n      EndIf \n      FreeLibrary_(hLib) \n    EndIf \n  EndIf \nEndProcedure \n\nOpenWindow(0,0,0,300,300,"Layered Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) \n  SetWinTransparency(0,60)\n  If CreateGadgetList(WindowID(0)) \n    ButtonGadget(0,10,10,200,30,"Test")\n  EndIf\nRepeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
    Template: Désactiver croix fenêtre
      Comment: Permet de rendre inactif le croix d'une fenêtre pour qu'on ne puisse pas la fermer avec celle-ci\n\nCode a placer juste apres la commande\nde création de la fenêtre (OpenWindow)
      Code: ; Retourne l'identifiant du menu système\n  hSysMenu = GetSystemMenu_(WindowID(0), #False)\n  ; Efface un élément du menu\n  RemoveMenu_(hSysMenu, #SC_CLOSE, #MF_BYCOMMAND)\n  ;Mise à jour du menu\n  DrawMenuBar_(WindowID(0))
    Template: Sauvegarde paramètre fenêtre fermeture
      Comment: Permet de sauvegarder les divers paramètre de la fenêtre l'or de sa fermeture qui une fois réouverte reprendra les même paramètre que quand fermer
      Code: ;----- Constantes -----\n\nEnumeration\n  #Tisseran\nEndEnumeration\n\n;----- Variables -----\n\nEvent = #Null\nWindowX = #Null\nWindowY = #Null\nWindowWidth = #Null\nWindowHeight = #Null\nWindowFlags = #Null\n\n;----- Initialisation -----\n\nOpenPreferences("Préférences.txt")\n  PreferenceGroup("Fenêtre pricipale")\n  WindowX = ReadPreferenceInteger("Position en X", 64)\n  WindowY = ReadPreferenceInteger("Position en Y", 64)\n  WindowWidth = ReadPreferenceInteger("Largeur", 320)\n  WindowHeight = ReadPreferenceInteger("Hauteur", 240)\n  WindowFlags = ReadPreferenceInteger("État", 0)\nClosePreferences()\n\nSelect WindowFlags\n  Case 0:\n    WindowFlags = #PB_Window_Normal\n  Case 1:\n    WindowFlags = #PB_Window_Maximize\n  Default:\n    WindowFlags = #PB_Window_Normal\nEndSelect\n\nWindowFlags = #PB_Window_SystemMenu|WindowFlags|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget\n\n;----- Démarrage -----\n\nOpenWindow(#Tisseran, WindowX, WindowY, WindowWidth, WindowHeight, "Tisseran", WindowFlags)\n\n;----- Boucle principale -----\n\nRepeat\n  Event = WaitWindowEvent()\n  Select Event\n    Case #PB_Event_CloseWindow:\n      Break\n    Case #PB_Event_SizeWindow:\n      If GetWindowState(#Tisseran) = #PB_Window_Normal\n        WindowWidth = WindowWidth(#Tisseran)\n        WindowHeight = WindowHeight(#Tisseran)\n        WindowFlags = 0\n      ElseIf GetWindowState(#Tisseran) = #PB_Window_Maximize\n        WindowFlags = 1\n      EndIf\n    Case #PB_Event_MoveWindow:\n      If GetWindowState(#Tisseran) = #PB_Window_Normal\n        WindowX = WindowX(#Tisseran)\n        WindowY = WindowY(#Tisseran)\n        WindowFlags = 0\n      ElseIf GetWindowState(#Tisseran) = #PB_Window_Maximize\n        WindowFlags = 1\n      EndIf\n  EndSelect\nForEver\n\n;----- Fermeture -----\n\nCreatePreferences("Préférences.txt")\n  PreferenceGroup("Fenêtre pricipale")\n  WritePreferenceInteger("Position en X", WindowX)\n  WritePreferenceInteger("Position en Y", WindowY)\n  WritePreferenceInteger("Largeur", WindowWidth)\n  WritePreferenceInteger("Hauteur", WindowHeight)\n  WritePreferenceInteger("État", WindowFlags)\nClosePreferences()\n\nEnd\n\n
  CloseDirectory
  Directory: Gadget
    Template: Réorganiser onglet pannel gadget
      Comment: Cette procedure permet de réorganiser les onglet d'un pannel gadget quand il sons trop nombreux sur une ligne\n\nLe programme les réorganise alors automatiquement\nen plusieur ligne
      Code: Procedure SetPanelGadgetToMultiRows(GadgetID)\n  \n  OldStyle = GetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE)\n  NewStyle = OldStyle | #TCS_MULTILINE | #TCS_RIGHTJUSTIFY\n  SetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE, NewStyle)\n  SetGadgetState(GadgetID, 0)\n  \nEndProcedure
    Template: Selectionner tous sring gadget
      Comment: Ceci permet de selectionner tous dans un string gadget
      Code: Procedure SelectAll(gadget) \n  SendMessage_(GadgetID(gadget),#EM_SETSEL,0,99999) \n  SetActiveGadget(gadget) \nEndProcedure
  CloseDirectory
  Directory: Boitte dialogue
  Expanded
    Template: Message requester avec bouton tool
      Comment: Permet d'afficher une boitte requester avec la petite croix rouge
      Code: Procedure thread(*titleWindow)\n  titleWindow.s = PeekS(*titleWindow)\n  string.s = Space(1024)\n  ok = 0\n  \n  Repeat\n    ;on liste les fenetre ouvertes\n    hwnd = FindWindow_(0,0)\n    While hwnd <> 0\n      ;on ne considère pas les fenetres invisibles ou de type 'outil'\n      If GetWindowLong_(hWnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE And GetWindowLong_(hWnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW\n        GetWindowText_(hwnd, @string, 1024)\n        \n        If Trim(string) = titleWindow ;on a trouvé le fenetre cherchée\n          ;on change ses attributs\n          SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE)|#WS_EX_TOOLWINDOW)\n          ok = 1\n          \n        EndIf\n      EndIf\n      \n      hwnd = GetWindow_(hwnd, #GW_HWNDNEXT) ;fenetre suivante\n    Wend\n    Delay(1)\n  Until ok\nEndProcedure\n  \n\nname.s = "test"\nCreateThread(@thread(), @name)\nMessageRequester(name, "petit test")\n\n
    Template: Message requester avec icon
      Comment: Permet d'afficher une icon dans le message requester
      Code: ; German forum:\n; Author: Unknown\n; Date: 09. February 2003\n; OS: Windows\n; Demo: No\n\nProcedure MsgBoxEx(Message.s,Caption.s,Iconfile.s,Index.l)\n  #MB_USERICON = $080\n  Protected hDll.l\n  hDll = OpenLibrary(0,Iconfile)\n  mbox.MSGBOXPARAMS\n  mBox\\cbSize = SizeOf(MSGBOXPARAMS)\n  mbox\\hwndOwner = 0\n  mbox\\hInstance = hDll\n  mbox\\lpszText = @Message\n  mbox\\lpszCaption = @Caption\n  mbox\\dwStyle = #MB_OK|#MB_USERICON\n  mbox\\lpszIcon = Index\n  mbox\\dwContextHelpId = 0\n  mbox\\lpfnMsgBoxCallback = 0\n  mbox\\dwLanguageId = 0\n  Result = MessageBoxIndirect_(mbox)\n  CloseLibrary(0)\n  ProcedureReturn Result\nEndProcedure\n\n\nMsgBoxEx("Testmeldung","Caption","Shell32",5)
  CloseDirectory
CloseDirectory
Directory: Détéction
  Directory: Souris sur gadget
    Template: Si souris sur un gadget
      Comment: Si la souris est sur un gadget\nMarge est la marge de détéction sur le gadget\n\nExemple:\n\n10 = la souris est 10 pixel avent le gadget\n- 10 = la souris est 10 pixel sur le gadget
      Code: \nProcedure IsMouseOverGadget(Gadget, Marge) \n  If IsGadget(Gadget)\n  GetWindowRect_(GadgetID(Gadget),GadgetRect.RECT) \n  GetCursorPos_(mouse.POINT) \n  If mouse\\x>=GadgetRect\\Left - Marge And mouse\\x<=GadgetRect\\right + Marge And mouse\\y>=GadgetRect\\Top - Marge And mouse\\y<=GadgetRect\\bottom + Marge\n    ProcedureReturn #True \n  Else \n    ProcedureReturn #False \n  EndIf \n  EndIf\nEndProcedure \n
  CloseDirectory
CloseDirectory
Directory: Exemple diverses
Expanded
  Directory: Autorezize de gadget
    Template: Autoresize string gadget
      Comment: Autoresize d'un string gadget suivent sont comptenue
      Code: \n\n; crée par Mr dieppedalle david le mercredi 30 juin 2010\n\n; ce programme permet de redimensionner en temps réel les string gadget suivent leur contenu\n\nEnumeration\n#Window_0\n#String_0\n#String_1\n#String_2\n#String_3\n#String_4\n#String_5\n#String_6\n#String_7\n#String_8\n#String_9\n#Fond\n#fond_neutre\n#Fond2\n#Fond3\n#Fond4\n#Fond5\n#Fond6\n#Fond7\n#Fond8\n#Fond9\n#Fond10\nEndEnumeration\n\nProcedure Open_Window_0()\n  If OpenWindow(#Window_0, 382, 195, 800, 600, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )\n      SmartWindowRefresh(#Window_0, 1)\n      \n      StringGadget(#String_0, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_0, LoadFont(#Fond, "arial", 10))\n      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_1, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_1, LoadFont(#Fond2, "arial", 10))\n      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_2, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_2, LoadFont(#Fond3, "arial", 10))\n      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_3, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_3, LoadFont(#Fond4, "arial", 10))\n      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_4, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_4, LoadFont(#Fond5, "arial", 10))\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_5, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_5, LoadFont(#Fond6, "arial", 10))\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_6, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_6, LoadFont(#Fond7, "arial", 10))\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_7, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_7, LoadFont(#Fond8, "arial", 10))\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_8, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_8, LoadFont(#Fond9, "arial", 10))\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7) , #PB_Ignore, 18, #PB_Ignore)\n      \n      StringGadget(#String_9, 10, 10, 145, 20, "")\n      SetGadgetFont(#String_9, LoadFont(#Fond10, "arial", 10))\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8) , #PB_Ignore, 18, #PB_Ignore)\n      \n  EndIf\n  \n  Repeat ; Start of the event loop\n  \n  Event = WaitWindowEvent() ; This line waits until an event is received from Windows\n  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures\n  GadgetID = EventGadget() ; Is it a gadget event?\n  EventType = EventType() ; The event type\n  EvenMenue = EventMenu()  \n  \n  If Event = #PB_Event_Gadget\n    \n    If GadgetID = #String_0\n      If EventType = #PB_EventType_Change\n      texte$ = GetGadgetText(#String_0)\n      fond = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond)\n      Longueur_texte = TextWidth(texte$)\n      StopDrawing()\n      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, Longueur_texte + 18, #PB_Ignore)\n      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)\n      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)\n      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_0)\n      EndIf\n       \n      ElseIf GadgetID = #String_1\n      If EventType = #PB_EventType_Change\n      texte2$ = GetGadgetText(#String_1)\n      fond2 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond2)\n      Longueur_texte2 = TextWidth(texte2$)\n      StopDrawing()\n      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)\n      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)\n      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_1)\n      EndIf\n      \n      ElseIf GadgetID = #String_2\n      If EventType = #PB_EventType_Change\n      texte3$ = GetGadgetText(#String_2)\n      fond3 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond3)\n      Longueur_texte3 = TextWidth(texte3$)\n      StopDrawing()\n      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)\n      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_2)\n      EndIf\n      \n      ElseIf GadgetID = #String_3\n      If EventType = #PB_EventType_Change\n      texte4$ = GetGadgetText(#String_3)\n      fond4 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond4)\n      Longueur_texte4 = TextWidth(texte4$)\n      StopDrawing()\n      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_3)\n      EndIf\n      \n      ElseIf GadgetID = #String_4\n      If EventType = #PB_EventType_Change\n      texte5$ = GetGadgetText(#String_4)\n      fond5 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond5)\n      Longueur_texte5 = TextWidth(texte5$)\n      StopDrawing()\n      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_4)\n      EndIf\n      \n      ElseIf GadgetID = #String_5\n      If EventType = #PB_EventType_Change\n      texte6$ = GetGadgetText(#String_5)\n      fond6 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond6)\n      Longueur_texte6 = TextWidth(texte6$)\n      StopDrawing()\n      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_5)\n      EndIf\n      \n      ElseIf GadgetID = #String_6\n      If EventType = #PB_EventType_Change\n      texte7$ = GetGadgetText(#String_6)\n      fond7 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond7)\n      Longueur_texte7 = TextWidth(texte7$)\n      StopDrawing()\n      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_6)\n      EndIf\n      \n      ElseIf GadgetID = #String_7\n      If EventType = #PB_EventType_Change\n      texte8$ = GetGadgetText(#String_7)\n      fond8 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond8)\n      Longueur_texte8 = TextWidth(texte8$)\n      StopDrawing()\n      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_7)\n      EndIf\n      \n      ElseIf GadgetID = #String_8\n      If EventType = #PB_EventType_Change\n      texte9$ = GetGadgetText(#String_8)\n      fond9 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond9)\n      Longueur_texte9 = TextWidth(texte9$)\n      StopDrawing()\n      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_9)\n      SetActiveGadget(#String_8)\n      EndIf\n      \n      ElseIf GadgetID = #String_9\n      If EventType = #PB_EventType_Change\n      texte10$ = GetGadgetText(#String_9)\n      fond10 = LoadFont(#fond_neutre, "arial", 10)\n      StartDrawing(WindowOutput(#Window_0))\n      DrawingFont(fond10)\n      Longueur_texte10 = TextWidth(texte10$)\n      StopDrawing()\n      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)\n      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher\n      SetActiveGadget(#String_0)\n      SetActiveGadget(#String_1)\n      SetActiveGadget(#String_2)\n      SetActiveGadget(#String_3)\n      SetActiveGadget(#String_4)\n      SetActiveGadget(#String_5)\n      SetActiveGadget(#String_6)\n      SetActiveGadget(#String_7)\n      SetActiveGadget(#String_8)\n      SetActiveGadget(#String_9)\n      EndIf\n      \n    EndIf\n      \n  EndIf\n  \nUntil Event = #PB_Event_CloseWindow ; End of the event loop\n\nEndProcedure\n    \n    Open_Window_0()\n
  CloseDirectory
La suite plus bas...
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Exemple de code

Message par dayvid »

Et la suite, toujours dans le même fichier a la suite

Code : Tout sélectionner

Directory: Couleur contour gadget
    Directory: String gadget
      Template: Couleur contour string gadget
        Comment: Permet de mèttre un coutour de couleur autour du string gadget qui à le focus
        Code: ; English forum: http://www.purebasic.fr/english/viewtopic.php?t=7584&highlight=\n; Author: TerryHough (based on Paul's code, fixed + updated for PB4.00 by blbltheworm)\n; Date: 19. September 2003\n; OS: Windows\n; Demo: No\n\n; 2005-05-15: Redrawing problems fixed by Andre\n\n;   Allow Enter to respond like Tab and to Outline every entry box \n;   This code from the PB forum by Paul responding to query at \n;   http://purebasic.myforums.net/viewtopic.php?t=7584 \n;   Additional Case #PB_Event_Repaint code added by Sec \n;   Additional condition added by TerryHough to exclude Exit button from outline \n\n;-Init Includes \nEnumeration\n  #Window_Main\nEndEnumeration\n\nEnumeration\n  #Gadget_Main_Text2\n  #Gadget_Main_Text4\n  #Gadget_Main_Text6\n  #Gadget_Main_Name\n  #Gadget_Main_City\n  #Gadget_Main_Phone\n  #Gadget_Main_Exit\nEndEnumeration\n\nProcedure.l Window_Main() \n  If OpenWindow(#Window_Main,175,0,290,207,"Data Input",#PB_Window_SystemMenu|#PB_Window_WindowCentered) \n    If CreateGadgetList(WindowID(#Window_Main)) \n      TextGadget  (#Gadget_Main_Text2, 10, 10, 60,15,"Name:") \n      StringGadget(#Gadget_Main_Name , 10, 25,165,20,"") \n      TextGadget  (#Gadget_Main_Text4, 10, 60, 60,15,"City:") \n      StringGadget(#Gadget_Main_City , 10, 75,165,20,"") \n      TextGadget  (#Gadget_Main_Text6, 10,110, 60,15,"Phone:") \n      StringGadget(#Gadget_Main_Phone, 10,125,165,20,"") \n      ButtonGadget(#Gadget_Main_Exit ,220,175, 60,20,"Exit") \n      ProcedureReturn WindowID(#Window_Main) \n    EndIf \n  EndIf \nEndProcedure \n\nProcedure FocusMe(id.l) \n  RedrawWindow_(WindowID(#Window_Main),0,0,#RDW_UPDATENOW|#RDW_ERASE|#RDW_INVALIDATE) \n  If id <> #Gadget_Main_Exit   ; condition added to not box the Exit button \n    StartDrawing(WindowOutput(#Window_Main)) \n    DrawingMode(4) \n    Box(GadgetX(id),GadgetY(id),GadgetWidth(id),GadgetHeight(id),RGB(255,0,0)) \n    StopDrawing() \n  EndIf\nEndProcedure \n\n;-Main Loop \nIf Window_Main() \n  AddKeyboardShortcut(#Window_Main,#PB_Shortcut_Return,99) \n  AddKeyboardShortcut(#Window_Main,#PB_Shortcut_Tab   ,99) ; added to maintain Tab compatibility \n  pos=#Gadget_Main_Name \n  FocusMe(pos) \n  \n  quitMain=0 \n  \n  Repeat \n    EventID=WaitWindowEvent() \n    Select EventID \n      Case #PB_Event_CloseWindow \n        If EventWindow()=#Window_Main \n          quitMain=1 \n        EndIf \n      \n      Case #PB_Event_Menu \n        If EventMenu()=99 \n          pos+1 \n          If pos>#Gadget_Main_Exit \n            pos=#Gadget_Main_Name \n          EndIf \n          FocusMe(pos) \n          SetActiveGadget(pos)\n        EndIf \n        \n      Case #PB_Event_Gadget \n        eID=EventGadget() \n        If eID<>oldid \n          oldid=eID \n          pos=eID\n          FocusMe(pos) \n        EndIf \n      \n        Select eID \n          Case #Gadget_Main_Exit \n          quitMain=1 \n        EndSelect \n      \n    EndSelect \n  Until quitMain \n  CloseWindow(#Window_Main) \nEndIf \nEnd \n
    CloseDirectory
    Directory: Editor gadget
      Template: Couleur contour editor gadget
        Comment: Permet de mèttre un coutour de couleur autour de l'editor gadget avec une marge ou pas
        Code: \n; crée par Mr dieppedalle david le mardi 17 aout 2010\n\nEnumeration\n  #Window_0\n  #Editor_0\n  #Editor_1\n  #Font_Editor_0\n  #Font_Editor_1\nEndEnumeration\n\nGlobal Couleur_Fenetre = RGB(240, 240, 240)\nGlobal Couleur_avent_marge_bord_editeur = RGB(255, 0, 0)\nGlobal Couleur_remplisage_marge_avent_bord_editeur = RGB(255, 255, 255)\nGlobal Couleur_Bord_Editeur = RGB(255, 255, 255)\nGlobal Couleur_Fond_Editeur = RGB(255, 255, 255)\n\nGlobal Police_Editeur$ = "cambria"\n\nProcedure.l renvoiller_position_cursseur_X_console() \n  If IsGadget(#Editor_0)\n    ; returns X-Pos of Cursor \n    REG = GadgetID(#Editor_0) \n    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n    position_cursseur_X_console = (Range\\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin),0))+1)\n    ProcedureReturn position_cursseur_X_console\n  EndIf\nEndProcedure \n\nProcedure.l renvoiller_position_cursseur_Y_console() \n  If IsGadget(#Editor_0)\n    ; returns Y-Pos of Cursor \n    REG = GadgetID(#Editor_0) \n    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n    position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin)+1 \n    ProcedureReturn position_cursseur_Y_console\n  EndIf\nEndProcedure \n\nProcedure.l renvoiller_position_relative_cursseur_console() \n  If IsGadget(#Editor_0)\n    ; returns relative Position of Cursor \n    SendMessage_(GadgetID(#Editor_0),#EM_EXGETSEL,0,Range.CHARRANGE) \n    position_relative_cursseur = Range\\cpMax \n    ProcedureReturn position_relative_cursseur\n  EndIf\nEndProcedure \n\nProcedure.s renvoiller_position_cursseur_X_Y_console() \n  If IsGadget(#Editor_0)\n    ; returns X-Pos of Cursor \n    REG = GadgetID(#Editor_0) \n    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n    position_cursseur_X_console = (Range\\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin),0))+1) \n    ; returns Y-Pos of Cursor \n    REG = GadgetID(#Editor_0) \n    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n    position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin)+1 \n    ProcedureReturn Str(position_cursseur_X_console) + ", " +  Str(position_cursseur_Y_console)\n  EndIf\nEndProcedure\n\nProcedure OpenWindow_Window_0()\n  If OpenWindow(#Window_0, 450, 200, 620, 400, "Fenêtre", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)\n      \n      EditorGadget(#Editor_0, 20, 20, 580, 360) ; #PB_Editor_ReadOnly\n      \n      ; Gadget Resizing\n      PureRESIZE_SetGadgetResize(#Editor_0, 1, 1, 1, 1)\n      ; Gadget Fonts\n      SetGadgetFont(#Editor_0, LoadFont(#Font_Editor_0, Police_Editeur$, 9, 0))\n      ; Gadget Colors\n      PureCOLOR_SetGadgetColor(#Editor_0, $0, Couleur_Fond_Editeur)\n      \n      ; Window Minimum Size\n      PureRESIZE_SetWindowMinimumSize(#Window_0, 300, 150)\n      \n      ; Window Backcolor\n      PureCOLOR_SetWindowColor(#Window_0, Couleur_Fenetre)\n      \n      ; ; pour faire apparaitre les bord de l'editeur\n      ; style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)\n      ; newstyle = (style |#WS_EX_CLIENTEDGE)\n      ; SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)\n      ; SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)\n      \n      ; ceci pour le refaire disparaitre\n      style = GetWindowLong_(GadgetID(1), #GWL_EXSTYLE)\n      newstyle = style &(~#WS_EX_CLIENTEDGE)\n      SetWindowLong_(GadgetID(1), #GWL_EXSTYLE, newstyle)\n      SetWindowPos_(GadgetID(1), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)\n      \n      SetActiveGadget(#Editor_0)\n      \n      Sauvegarde_Largeur_Editeur = Largeur_Editeur\n      Sauvegarde_Hauteur_Editeur = Hauteur_Editeur\n      \n      Position_X_Editeur = GadgetX(#Editor_0)\n      Position_Y_Editeur = GadgetY(#Editor_0)\n      \n      Largeur_Editeur = GadgetWidth(#Editor_0) \n      Hauteur_Editeur = GadgetHeight(#Editor_0)\n      \n      StartDrawing(WindowOutput(#Window_0))\n      DrawingMode(#PB_2DDrawing_Outlined )\n      \n      ; cette commande sert pour dessiner le nouveaux bord\n      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n      FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n      \n      StopDrawing()\n      \n    EndIf\nEndProcedure\n\nOpenWindow_Window_0()\n;{- Event loop\nRepeat\n  \n  Event = WaitWindowEvent(1)\n  \n  If Event = #PB_Event_Repaint\n    StartDrawing(WindowOutput(#Window_0))\n    DrawingMode(#PB_2DDrawing_Outlined )\n    \n    ; cette commande sert pour éffacer l'encien bord\n    Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)\n    Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)\n    FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)\n    \n    ; cette commande sert pour dessiner le nouveaux bord\n    Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n    Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n    FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n    \n    StopDrawing()\n  EndIf\n  \n;   If GetActiveGadget() <> #Editor_1\n;     SetActiveGadget(#Editor_1)\n;   EndIf\n  \n  position_cursseur_X_console = renvoiller_position_cursseur_X_console()\n  position_cursseur_Y_console = renvoiller_position_cursseur_Y_console()\n  \n  ; je vais dessiner des bord en couleur autour de l'editeur\n  \n  Sauvegarde_Largeur_Editeur = Largeur_Editeur\n  Sauvegarde_Hauteur_Editeur = Hauteur_Editeur\n  \n  Position_X_Editeur = GadgetX(#Editor_0)\n  Position_Y_Editeur = GadgetY(#Editor_0)\n  \n  Largeur_Editeur = GadgetWidth(#Editor_0) \n  Hauteur_Editeur = GadgetHeight(#Editor_0)\n  \n  If Sauvegarde_Largeur_Editeur <> Largeur_Editeur Or Sauvegarde_Hauteur_Editeur <> Hauteur_Editeur\n    \n    StartDrawing(WindowOutput(#Window_0))\n    DrawingMode(#PB_2DDrawing_Outlined )\n    \n    ; cette commande sert pour éffacer l'encien bord\n    Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)\n    Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)\n    FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)\n    \n    ; cette commande sert pour dessiner le nouveaux bord\n    Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n    Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n    FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n    \n    StopDrawing()\n    \n  EndIf\n  \n  \n  Select Event\n      \n    Case #PB_Event_Gadget\n      \n      EventGadget = EventGadget()\n      EventType = EventType()\n      EventMenu = EventMenu()\n      \n      If EventGadget = #Editor_0\n        \n      EndIf\n      \n    Case #PB_Event_CloseWindow\n      EventWindow = EventWindow()\n      \n      If EventWindow = #Window_0\n        CloseWindow(#Window_0)\n        Break\n      EndIf\n      \n  EndSelect\n  \nForEver\n;\n;}\n
    CloseDirectory
  CloseDirectory
  Directory: Editor gadget
    Template: Input editor gadget
      Comment: Permet de simuler un input dans un editor gadget
      Code: \nEnumeration\n  #Window_0\n  #Editor_0\n  #Font_Editor_0\n  #Font_Entrer_clavier\n  #entrer_clavier\nEndEnumeration\n\nGlobal Couleur_Fenetre = RGB(240, 240, 240)\n\nGlobal couleur_avent_marge_bord_editeur = RGB(255, 0, 0)\nGlobal couleur_remplisage_marge_avent_bord_editeur = RGB(255, 255, 0)\nGlobal Couleur_Bord_Editeur = RGB(0, 150, 0)\n\nGlobal Couleur_Fond_Editeur = RGB(255, 255, 255)\nGlobal couleur_police_editeur = RGB(0, 0, 255)\nGlobal Taille_police_editeur = 9\nGlobal Police_Editeur$ = "cambria"\nGlobal Font_Editor_0\n\nGlobal Entrer_clavier\nGlobal couleur_du_texte_taper = RGB(0, 0, 255)\nGlobal couleur_fond_texte_taper = RGB(255, 0, 255)\nGlobal couleur_du_texte_entree = RGB(0, 155, 0)\nGlobal couleur_texte_une_fois_entrer = 0\nGlobal Taille_police_Entrer_clavier = 9\nGlobal Police_Entrer_clavier$ = "cambria"\nGlobal Font_Entrer_clavier\n\nGlobal Sauvegarde_position_cursseur_X_console\nGlobal Sauvegarde_position_cursseur_Y_console\n\nProcedure deplacer_cursseur_console(ligne, position)\n  x = position\n  y = ligne\n  If x = - 1\n    x = - 9999\n  EndIf\n  \n  If y = - 1\n    y = 9999\n  EndIf\n  \n  ; Set cursor position \n  REG = GadgetID(#Editor_0) \n  CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0) \n  LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0) \n  If LLength >= x-1 \n    CharIdx + x-1 \n  EndIf \n  Range.CHARRANGE \n  Range\\cpMin = CharIdx \n  Range\\cpMax = CharIdx \n  SendMessage_(REG,#EM_EXSETSEL,0,Range) \nEndProcedure \n\nProcedure.l renvoiller_position_cursseur_X_console() \n  ; returns X-Pos of Cursor \n  REG = GadgetID(#Editor_0) \n  SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n  position_cursseur_X_console = (Range\\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin),0))+1)\n  ProcedureReturn position_cursseur_X_console\nEndProcedure \n\nProcedure.l renvoiller_position_cursseur_Y_console() \n  ; returns Y-Pos of Cursor \n  REG = GadgetID(#Editor_0) \n  SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n  position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin)+1 \n  ProcedureReturn position_cursseur_Y_console\nEndProcedure \n\nProcedure.l renvoiller_position_relative_cursseur_console() \n  ; returns relative Position of Cursor \n  SendMessage_(GadgetID(#Editor_0),#EM_EXGETSEL,0,Range.CHARRANGE) \n  position_relative_cursseur = Range\\cpMax \n  ProcedureReturn position_relative_cursseur\nEndProcedure \n\nProcedure.s renvoiller_position_cursseur_X_Y_console() \n  ; returns X-Pos of Cursor \n  REG = GadgetID(#Editor_0) \n  SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n  position_cursseur_X_console = (Range\\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin),0))+1) \n  ; returns Y-Pos of Cursor \n  REG = GadgetID(#Editor_0) \n  SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) \n  position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\\cpMin)+1 \n  ProcedureReturn Str(position_cursseur_X_console) + ", " +  Str(position_cursseur_Y_console)\nEndProcedure\n\nProcedure selection_libre(ligne_de_depart.l, caractere_de_depart.l, ligne_de_fin.l, caractere_de_fin.l)\n  ligne_de_depart - 1\n  sel.CHARRANGE \n  sel\\cpMin = SendMessage_(GadgetID(#Editor_0), #EM_LINEINDEX, ligne_de_depart, 0) + caractere_de_depart - 1 \n  \n  If ligne_de_fin = -1 \n    ligne_de_fin = SendMessage_(GadgetID(#Editor_0), #EM_GETLINECOUNT, 0, 0) - 1 \n  EndIf \n  sel\\cpMax = SendMessage_(GadgetID(#Editor_0), #EM_LINEINDEX, ligne_de_fin, 0) \n  \n  If caractere_de_fin = -1 \n    sel\\cpMax + SendMessage_(GadgetID(#Editor_0), #EM_LINELENGTH, sel\\cpMax, 0) \n  Else \n    sel\\cpMax + caractere_de_fin - 1 \n  EndIf \n  SendMessage_(GadgetID(#Editor_0), #EM_EXSETSEL, 0, @sel) \n  \nEndProcedure \n  \nProcedure selectionner_caracteres(ligne, position_depart, position_fin)\n  selection_libre(ligne, position_depart, ligne - 1, position_fin)\nEndProcedure\n\nProcedure couper_ligne(numero_ligne)\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 1) \n  ligne - 1\n  couper_la_ligne = numero_ligne\n  selection_libre(couper_la_ligne, 1, couper_la_ligne, 0)\n  SendMessage_(GadgetID(#Editor_0), #WM_COPY, -1, 0)\n  SendMessage_(GadgetID(#Editor_0), #EM_SETSEL, -1, 0)\n  RemoveGadgetItem(#Editor_0, couper_la_ligne - 1)\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 0) \nEndProcedure\n  \nProcedure copier_ligne(numero_ligne)\n  copier_la_ligne = numero_ligne\n  selection_libre(copier_la_ligne, 1, copier_la_ligne, 0)\n  SendMessage_(GadgetID(#Editor_0), #WM_COPY, -1, 0)\n  SendMessage_(GadgetID(#Editor_0), #EM_SETSEL, -1, 0)\nEndProcedure\n  \nProcedure coller_ligne()\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 1) \n  ligne + 1\n  SendMessage_(GadgetID(#Editor_0), #WM_PASTE, 0, 0) \n  SendMessage_(GadgetID(#Editor_0), #EM_SETSEL, -1, 0)\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 0) \nEndProcedure\n  \nProcedure supprimer_ligne(numero_ligne)\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 1) \n  RemoveGadgetItem(#Editor_0, numero_ligne)\n  SetGadgetAttribute(#Editor_0, #PB_Editor_ReadOnly, 0) \nEndProcedure\n  \nProcedure selectionner_ligne(ligne_de_depard, ligne_de_fin)\n  ligne_a_selectionner = ligne_de_depard\n  selection_libre(ligne_a_selectionner, 1, ligne_de_fin - 1, -1)\nEndProcedure\n  \nProcedure.s entree_clavier(couleur_du_texte_taper, couleur_fond_texte_taper, couleur_du_texte_une_fois_entrer)\n  \n  Sauvegarde_position_cursseur_X_console = renvoiller_position_cursseur_X_console()\n  Sauvegarde_position_cursseur_Y_console = renvoiller_position_cursseur_Y_console()\n  \n  couleur_texte_une_fois_entrer = couleur_du_texte_une_fois_entrer\n  \n  Ligne$ = GetGadgetItemText(#Editor_0, renvoiller_position_cursseur_Y_console() - 1)\n  Texte_editeur$ = GetGadgetText(#Editor_0)\n  Nombre_de_ligne = CountGadgetItems(#Editor_0)\n  Largeur_fenetre = WindowWidth(#Window_0)\n  Hauteur_fenetre = WindowHeight(#Window_0)\n  \n  UseGadgetList(WindowID(#Window_0))\n  \n  StartDrawing(WindowOutput(#Window_0))\n    DrawingFont(Font_Editor_0)\n    Longueur_texte = TextWidth(Ligne$)\n    Hauteur_texte = TextHeight(Ligne$)\n  StopDrawing()\n    \n  StringGadget(#entrer_clavier, Longueur_texte + 20, Hauteur_texte * Nombre_de_ligne + 6, Largeur_fenetre - Longueur_texte - 40, Hauteur_texte, "", #PB_String_BorderLess)\n  AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return, 999) \n  \n  PureRESIZE_SetGadgetResize(#entrer_clavier, 1, 1, 1, 0)\n  \n  ; Gadget Fonts\n  Font_Entrer_clavier = LoadFont(#Font_Editor_0, Font_Entrer_clavier$, Taille_police_Entrer_clavier, 0)\n    SetGadgetFont(#entrer_clavier, LoadFont(#Font_Entrer_clavier, Police_Entrer_clavier$, Taille_police_Entrer_clavier, 0))\n    ; Gadget Colors\n    PureCOLOR_SetGadgetColor(#entrer_clavier, couleur_du_texte_taper, couleur_fond_texte_taper)\n    \n    Entrer_clavier = 1\n    \n  ProcedureReturn entree_clavier$ \nEndProcedure\n\nProcedure OpenWindow_Window_0()\n  If OpenWindow(#Window_0, 450, 200, 620, 400, "Fenêtre", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)\n      \n      EditorGadget(#Editor_0, 20, 20, 580, 360, #PB_Editor_ReadOnly)\n      \n      ; Gadget Resizing\n      PureRESIZE_SetGadgetResize(#Editor_0, 1, 1, 1, 1)\n      ; Gadget Fonts\n      Font_Editor_0 = LoadFont(#Font_Editor_0, Police_Editeur$, Taille_police_editeur, 0)\n      SetGadgetFont(#Editor_0, Font_Editor_0)\n      ; Gadget Colors\n      PureCOLOR_SetGadgetColor(#Editor_0, couleur_police_editeur, Couleur_Fond_Editeur)\n      \n      ; Window Minimum Size\n      PureRESIZE_SetWindowMinimumSize(#Window_0, 300, 150)\n      \n      ; Window Backcolor\n      PureCOLOR_SetWindowColor(#Window_0, Couleur_Fenetre)\n      \n      ; ; pour faire apparaitre les bord de l'editeur\n      ; style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)\n      ; newstyle = (style |#WS_EX_CLIENTEDGE)\n      ; SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)\n      ; SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)\n      \n          ; ceci pour le refaire disparaitre\n          style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)\n          newstyle = style &(~#WS_EX_CLIENTEDGE)\n          SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)\n          SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)\n      \n      SetActiveGadget(#Editor_0)\n      \n      Sauvegarde_Largeur_Editeur = Largeur_Editeur\n      Sauvegarde_Hauteur_Editeur = Hauteur_Editeur\n      \n      Position_X_Editeur = GadgetX(#Editor_0)\n      Position_Y_Editeur = GadgetY(#Editor_0)\n      \n      Largeur_Editeur = GadgetWidth(#Editor_0) \n      Hauteur_Editeur = GadgetHeight(#Editor_0)\n      \n      StartDrawing(WindowOutput(#Window_0))\n        DrawingMode(#PB_2DDrawing_Outlined )\n        \n      ; cette commande sert pour dessiner le nouveaux bord\n        Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n        Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n        FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n        \n    StopDrawing()\n    AddGadgetItem(#Editor_0, -1, "")\n    AddGadgetItem(#Editor_0, -1, "    Salut !, quel est ton nom ?: ")\n    \n    entree_clavier(couleur_du_texte_taper, couleur_fond_texte_taper, RGB(255, 0, 0))\n    \n    EndIf\n  \n  Repeat\n  \n  Event = WaitWindowEvent(1)\n  \n  If Entrer_clavier = 1\n    If GetActiveGadget() <> #entrer_clavier And IsGadget(#entrer_clavier)\n      SetActiveGadget(#entrer_clavier)\n    EndIf\n  EndIf\n  \n  If Event = #PB_Event_Repaint\n    StartDrawing(WindowOutput(#Window_0))\n      DrawingMode(#PB_2DDrawing_Outlined )\n      \n      ; cette commande sert pour éffacer l'encien bord\n      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)\n      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)\n      FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)\n      \n      ; cette commande sert pour dessiner le nouveaux bord\n      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n      FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n      \n    StopDrawing()\n    \n  EndIf\n  \n  If Event = #PB_Event_SizeWindow\n    Largeur_entrer_clavier = GadgetWidth(#entrer_clavier)\n    SendMessage_(GadgetID(#entrer_clavier), #EM_LIMITTEXT, 999, 0)\n  EndIf\n  \n  If GetActiveGadget() <> #Editor_0 And Entrer_clavier = 0\n    SetActiveGadget(#Editor_0)\n  EndIf\n  \n  position_cursseur_X_console = renvoiller_position_cursseur_X_console()\n  position_cursseur_Y_console = renvoiller_position_cursseur_Y_console()\n  \n  ; je vais dessiner des bord en couleur autour de l'editeur\n  \n  Sauvegarde_Largeur_Editeur = Largeur_Editeur\n  Sauvegarde_Hauteur_Editeur = Hauteur_Editeur\n  \n  Position_X_Editeur = GadgetX(#Editor_0)\n  Position_Y_Editeur = GadgetY(#Editor_0)\n  \n  Largeur_Editeur = GadgetWidth(#Editor_0) \n  Hauteur_Editeur = GadgetHeight(#Editor_0)\n  \n  If Sauvegarde_Largeur_Editeur <> Largeur_Editeur Or Sauvegarde_Hauteur_Editeur <> Hauteur_Editeur\n    \n    StartDrawing(WindowOutput(#Window_0))\n      DrawingMode(#PB_2DDrawing_Outlined )\n      \n      ; cette commande sert pour éffacer l'encien bord\n      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)\n      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)\n      FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)\n      \n      ; cette commande sert pour dessiner le nouveaux bord\n      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)\n      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)\n      FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)\n      \n    StopDrawing()\n    \n  EndIf\n  \n  EventMenu = EventMenu()\n  \n  Select Event\n      \n    Case #PB_Event_Gadget\n      \n      EventGadget = EventGadget()\n      EventType = EventType()\n      \n      If EventGadget = #Editor_0\n        \n      ElseIf EventGadget = #entrer_clavier\n        If IsGadget(#entrer_clavier)\n        Largeur_entrer_clavier = GadgetWidth(#entrer_clavier)\n        \n        StartDrawing(WindowOutput(#Window_0))\n          DrawingFont(Font_Entrer_clavier)\n          entrer_clavier$ = GetGadgetText(#entrer_clavier)\n          Longueur_texte = TextWidth(entrer_clavier$)\n          Debug "Longueur_texte " + Str(Longueur_texte)\n          Debug "Largeur_entrer_clavier " + Str(Largeur_entrer_clavier)\n        StopDrawing()\n\n        If Longueur_texte >= Largeur_entrer_clavier\n          SendMessage_(GadgetID(#entrer_clavier), #EM_LIMITTEXT, Len(entrer_clavier$), 0)\n        EndIf\n        \n      EndIf\n    EndIf\n    \n    Case #PB_Event_Menu\n      If EventMenu = 999\n        entree_clavier = 0\n        RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Return)\n        Reponce_entrer_clavier$ = GetGadgetText(#entrer_clavier)\n        FreeGadget(#entrer_clavier)\n        \n        deplacer_cursseur_console(Sauvegarde_position_cursseur_Y_console, Sauvegarde_position_cursseur_X_console)\n        format.CHARFORMAT\n        format\\cbSize = SizeOf(CHARFORMAT) \n        format\\dwMask = #CFM_COLOR\n        format\\crTextColor = couleur_texte_une_fois_entrer\n        SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)\n        SendMessage_(GadgetID(#Editor_0), #EM_REPLACESEL, 0, " " + Reponce_entrer_clavier$)\n        format\\crTextColor = couleur_police_editeur\n        AddGadgetItem(#Editor_0, -1, "")\n        SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)\n        SendMessage_(GadgetID(#Editor_0), #EM_REPLACESEL, 0, "    Bienvenue a toi ")\n        format\\crTextColor = couleur_texte_une_fois_entrer\n        SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)\n        SendMessage_(GadgetID(#Editor_0), #EM_REPLACESEL, 0, Reponce_entrer_clavier$)\n        SetActiveGadget(#Editor_0)\n      EndIf\n      \n    Case #PB_Event_CloseWindow\n      EventWindow = EventWindow()\n      \n      If EventWindow = #Window_0\n        CloseWindow(#Window_0)\n        Break\n      EndIf\n      \n  EndSelect\n  \nForEver\nEndProcedure\n\nOpenWindow_Window_0()\n
  CloseDirectory
  Directory: String gadget
  Expanded
    Template: Texte retailler si trop long
      Comment: Permet de retailler le texte d'un strin gadget si il est trop long, le reste du texte sera mis a la ligne
      Code: ; English forum:\n; Author: Unknown  (updated for PB4.00 by blbltheworm)\n; Date: 21. March 2003\n; OS: Windows\n; Demo: Yes\n\nIf OpenWindow(0,0,0,640,480,"",#PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))\n  StringGadget(0,8,8,626,466,"Does anybody know how to set this stringgadget to auto-word wrap? When the text is too long, it is cut out and this is my problem. Do you know understand what I mean? I want the gadget to automatically add a line return when the text is too long and continued in the next line. Can anybody help me? Please! Thank you!",#ES_MULTILINE | #ESB_DISABLE_LEFT | #ESB_DISABLE_RIGHT | #ES_AUTOVSCROLL | #WS_VSCROLL)\n  Repeat\n  Until WaitWindowEvent()=#PB_Event_CloseWindow\nEndIf\n
  CloseDirectory
  Directory: Texte gadget
    Template: Texte gadget colorer
      Comment: Permet de colorer un texte gadget\nsi bien le texte que l'arrièr plant de celui-ci
      Code: ; English forum: http://www.purebasic.fr/english/viewtopic.php?t=9199&highlight=\n; Author: Danilo (updated for PB4.00 by blbltheworm)\n; Date: 17. January 2004\n; OS: Windows\n; Demo: No\n\nGlobal TextGadgetBackground, TextGadgetForeground \nTextGadgetBackground = CreateSolidBrush_(RGB($00,$00,$FF)) \nTextGadgetForeground = RGB($FF,$FF,$00) \n\nProcedure WinProc(hWnd,Msg,wParam,lParam) \n  If Msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(0) \n    SetBkMode_(wParam,#TRANSPARENT) \n    SetTextColor_(wParam,TextGadgetForeground) \n    ProcedureReturn TextGadgetBackground \n  Else \n    ProcedureReturn #PB_ProcessPureBasicEvents \n  EndIf \nEndProcedure \n\nOpenWindow(0,0,0,200,25,"TextGadget Color",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) \n  SetWindowCallback(@WinProc()) \n  CreateGadgetList(WindowID(0)) \n  TextGadget(0,5,5,190,15,"This text is colored") \nRepeat:Until WaitWindowEvent()=#PB_Event_CloseWindow \n\nDeleteObject_(TextGadgetBackground) \n
  CloseDirectory
CloseDirectory
Directory: Gadget
Expanded
  Directory: Editor gadget
    Template: Editor gadget sans bort
      Comment: Permet d'enlever le bort de l'editor gadget\n\nCe code est a placer juste apres la création du gadget (editor gadget)\n\nAttention !, ce code ne fonctionne pas toujours !
      Code: style = GetWindowLong_(GadgetID(1), #GWL_EXSTYLE)\n    newstyle = style &(~#WS_EX_CLIENTEDGE)\n    SetWindowLong_(GadgetID(1), #GWL_EXSTYLE, newstyle)\n    SetWindowPos_(GadgetID(1), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
    Template: Editor gadget avec bort
      Comment: Permet de refaire apparaitre\nle bort de l'editor gadget\n\nCe code est a placer apres la création du gadget (editor gadget) et apres les commandes pour faire disparaitre les bord de l'editor gadget\n\nAttention !, ce code ne fonctionne pas toujours !
      Code: style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)\nnewstyle = (style |#WS_EX_CLIENTEDGE)\nSetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)\nSetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
  CloseDirectory
  Template: Renvoyer nom gadget
    Comment: Ceci permet de renvoyer le type du gadget sous forme de nom (le nom du gadget)
    Code: \nProcedure.s TypeGadget(Gadget)\n  \n  TypeGadget = GadgetType(Gadget)\n  \n  If TypeGadget = #PB_GadgetType_Button\n    TypeGadget$ = "Button"\n  ElseIf TypeGadget = #PB_GadgetType_ButtonImage\n    TypeGadget$ = "ButtonImage"\n  ElseIf TypeGadget = #PB_GadgetType_Calendar\n    TypeGadget$ = "Calendar"\n  ElseIf TypeGadget = #PB_GadgetType_CheckBox \n    TypeGadget$ = "CheckBox"\n  ElseIf TypeGadget = #PB_GadgetType_ComboBox\n    TypeGadget$ = "ComboBox"\n  ElseIf TypeGadget = #PB_GadgetType_Container\n    TypeGadget$ = "Container"\n  ElseIf TypeGadget = #PB_GadgetType_Date \n    TypeGadget$ = "Date"\n  ElseIf TypeGadget = #PB_GadgetType_Editor\n    TypeGadget$ = "Editor"\n  ElseIf TypeGadget = #PB_GadgetType_ExplorerCombo\n    TypeGadget$ = "ExplorerCombo"\n  ElseIf TypeGadget = #PB_GadgetType_ExplorerList\n    TypeGadget$ = "ExplorerList"\n  ElseIf TypeGadget = #PB_GadgetType_ExplorerTree\n    TypeGadget$ = "ExplorerTree"\n  ElseIf TypeGadget = #PB_GadgetType_Frame3D\n    TypeGadget$ = "Frame3D"\n  ElseIf TypeGadget = #PB_GadgetType_HyperLink \n    TypeGadget$ = "HyperLink"\n  ElseIf TypeGadget = #PB_GadgetType_Image\n    TypeGadget$ = "Image"\n  ElseIf TypeGadget = #PB_GadgetType_IPAddress\n    TypeGadget$ = "IPAddress"\n  ElseIf TypeGadget = #PB_GadgetType_ListIcon\n    TypeGadget$ = "ListIcon"\n  ElseIf TypeGadget = #PB_GadgetType_ListView \n    TypeGadget$ = "ListView "\n  ElseIf TypeGadget = #PB_GadgetType_MDI\n    TypeGadget$ = "MDI"\n  ElseIf TypeGadget = #PB_GadgetType_Option\n    TypeGadget$ = "Option"\n  ElseIf TypeGadget = #PB_GadgetType_Panel\n    TypeGadget$ = "Panel"\n  ElseIf TypeGadget = #PB_GadgetType_ProgressBar \n    TypeGadget$ = "ProgressBar"\n  ElseIf TypeGadget = #PB_GadgetType_Scintilla\n    TypeGadget$ = "Scintilla"\n  ElseIf TypeGadget = #PB_GadgetType_ScrollArea\n    TypeGadget$ = "ScrollArea"\n  ElseIf TypeGadget = #PB_GadgetType_ScrollBar\n    TypeGadget$ = "ScrollBar"\n  ElseIf TypeGadget = #PB_GadgetType_Spin\n    TypeGadget$ = "Spin"\n  ElseIf TypeGadget = #PB_GadgetType_Splitter\n    TypeGadget$ = "Splitter"\n  ElseIf TypeGadget = #PB_GadgetType_String\n    TypeGadget$ = "String"\n  ElseIf TypeGadget = #PB_GadgetType_Text\n    TypeGadget$ = "Text"\n  ElseIf TypeGadget = #PB_GadgetType_TrackBar\n    TypeGadget$ = "TrackBar"\n  ElseIf TypeGadget = #PB_GadgetType_Tree\n    TypeGadget$ = "Tree"\n  ElseIf TypeGadget = #PB_GadgetType_Web \n    TypeGadget$ = "Web"\n  ElseIf TypeGadget = #PB_GadgetType_Unknown\n    TypeGadget$ = "Unknown"\n  EndIf\n  \n  ProcedureReturn TypeGadget$ \nEndProcedure\n
CloseDirectory
Directory: Manipulation chaines
  Template: Enlever caractères invisible au début et fin chaine
    Comment: Ce code permet d'enlever tout les caractères invisible qui se trouve en début et en fin de chaine de caractère
    Code: Texte$ = "          Un texte                  "\n\n; ont enlève tous les caractère invisible en début et fin de ligne\nposition_depart = 0\n\n; au début\nRepeat\n  position_depart + 1\n  caractere$ = Mid(Texte$, position_depart, 1)\nUntil caractere$ <> Chr(1) And caractere$ <> Chr(2) And caractere$ <> Chr(3) And caractere$ <> Chr(4) And caractere$ <> Chr(5) And caractere$ <> Chr(6) And caractere$ <> Chr(7) And caractere$ <> Chr(8) And caractere$ <> Chr(9) And caractere$ <> Chr(10) And caractere$ <> Chr(11) And caractere$ <> Chr(12) And caractere$ <> Chr(13) And caractere$ <> Chr(14) And caractere$ <> Chr(15) And caractere$ <> Chr(16) And caractere$ <> Chr(17) And caractere$ <> Chr(18) And caractere$ <> Chr(19) And caractere$ <> Chr(20) And caractere$ <> Chr(21) And caractere$ <> Chr(22) And caractere$ <> Chr(23) And caractere$ <> Chr(24) And caractere$ <> Chr(25) And caractere$ <> Chr(26) And caractere$ <> Chr(27) And caractere$ <> Chr(28) And caractere$ <> Chr(29) And caractere$ <> Chr(30) And caractere$ <> Chr(31) And caractere$ <> Chr(32) \n\n; a la fin\n\nposition_fin = Len(Texte$) + 1\n\nRepeat\n  position_fin - 1\n  caractere$ = Mid(Texte$, position_fin, 1)\nUntil caractere$ <> Chr(1) And caractere$ <> Chr(2) And caractere$ <> Chr(3) And caractere$ <> Chr(4) And caractere$ <> Chr(5) And caractere$ <> Chr(6) And caractere$ <> Chr(7) And caractere$ <> Chr(8) And caractere$ <> Chr(9) And caractere$ <> Chr(10) And caractere$ <> Chr(11) And caractere$ <> Chr(12) And caractere$ <> Chr(13) And caractere$ <> Chr(14) And caractere$ <> Chr(15) And caractere$ <> Chr(16) And caractere$ <> Chr(17) And caractere$ <> Chr(18) And caractere$ <> Chr(19) And caractere$ <> Chr(20) And caractere$ <> Chr(21) And caractere$ <> Chr(22) And caractere$ <> Chr(23) And caractere$ <> Chr(24) And caractere$ <> Chr(25) And caractere$ <> Chr(26) And caractere$ <> Chr(27) And caractere$ <> Chr(28) And caractere$ <> Chr(29) And caractere$ <> Chr(30) And caractere$ <> Chr(31) And caractere$ <> Chr(32) \n\nDebug Mid(Texte$, position_depart, position_fin - position_depart + 1)\n\n
CloseDirectory
Directory: Console
  Template: Console saisie limité
    Comment: Ceci permet de saisir un nombre limité de caractère\ndans la console l'or d'un input
    Code: \n    detection_touche:\n    OpenConsole()\n    \n    EnableGraphicalConsole(1)\n    ConsoleTitle("Saisie limiter")\n    ClearConsole()\n    ConsoleLocate(2,1)\n    \n    Print("Veuillez entrez votre Nom, max 12 caracteres:  ")\n    \n    \n    Repeat\n      touche_numerique$ = Inkey()\n      \n      If touche_numerique$ <> "" ;  detections des touche numérique\n        identifiant = Asc(touche_numerique$)\n        \n        If identifiant = 13\n          PrintN("")\n          PrintN("  Votre Nom est:  " + nom$)\n          \n        ElseIf identifiant = 8\n          ClearConsole()\n          ConsoleLocate(2,1)\n          nom$ = Mid(nom$, 1, Len(nom$) - 1)\n          nombre_caracteres - 1\n          \n          If nombre_caracteres < 0\n            nombre_caracteres = 0\n          EndIf\n          \n          Print("Veuillez entrez votre Nom, max 12 caracteres:  " + nom$)\n          \n        EndIf\n        \n        If nombre_caracteres < 13 And identifiant <> 13 And identifiant <> 8\n          nom$ = nom$ + touche_numerique$\n          Print(touche_numerique$)\n          nombre_caracteres + 1\n          \n        ElseIf identifiant <> 8\n          Beep_(1000, 150) \n          \n        EndIf\n        \n      Else\n        Delay(1) ; Evite de monopoliser tout le temps processeur. Utile pour un OS multi-tâches.\n      EndIf\n      \n      \n      \n    Until ok = 1\n
  Template: Identifiant touche appuiyer
    Comment: Ceci permet d'identifier la plupart des touche presser dans la console
    Code: OpenConsole()\n  \n    PrintN("Appuyez sur [Echap] pour quitter")\n  \n  \n  ee:\n \n      KeyPressed$ = Inkey()\n      \n      If KeyPressed$ <> ""\n        If RawKey() = 9\n        KeyPressed$ = "tabulation horizontale"\n        EndIf\n        PrintN("Vous avez appuye sur : " + KeyPressed$)\n        PrintN("Son identifiant numerique est : "+Str(RawKey()))\n   \n      ElseIf RawKey()\n        If RawKey() = 37\n        zzz$ = "fleche gauche"\n        ElseIf RawKey() = 38\n        zzz$ = "fleche haut"\n        ElseIf RawKey() = 39\n        zzz$ = "fleche droite"\n        ElseIf RawKey() = 40\n        zzz$ = "fleche bas"\n        ElseIf RawKey() = 112\n        zzz$ = "F1"\n        ElseIf RawKey() = 113\n        zzz$ = "F2"\n        ElseIf RawKey() = 114\n        zzz$ = "F3"\n        ElseIf RawKey() = 115\n        zzz$ = "F4"\n        ElseIf RawKey() = 116\n        zzz$ = "F5"\n        ElseIf RawKey() = 117\n        zzz$ = "F6"\n        ElseIf RawKey() = 118\n        zzz$ = "F7"\n        ElseIf RawKey() = 119\n        zzz$ = "F8"\n        ElseIf RawKey() = 120\n        zzz$ = "F9"\n        ElseIf RawKey() = 121\n        zzz$ = "F10"\n        ElseIf RawKey() = 122\n        zzz$ = "F11"\n        ElseIf RawKey() = 123\n        zzz$ = "F12"\n        ElseIf RawKey() = 46\n        zzz$ = "suprimer"\n        ElseIf RawKey() = 17\n        zzz$ = "Ctrl"\n        ElseIf RawKey() = 91\n        zzz$ = "windows (appelle du mmenue demmarer)"\n        ElseIf RawKey() = 18\n        zzz$ = "Alt"\n        ElseIf RawKey() = 93\n        zzz$ = "windows (appelle du menue souris)"\n        ElseIf RawKey() = 222\n        zzz$ = "²"\n        ElseIf RawKey() = 20\n        zzz$ = "cadena"\n        ElseIf RawKey() = 16\n        zzz$ = "majuscule"\n        ElseIf RawKey() = 36\n        zzz$ = "fleche diagonale haut gauche"\n        ElseIf RawKey() = 33\n        zzz$ = "fleche arrette haut"\n        ElseIf RawKey() = 34\n        zzz$ = "fleche arrette bat"\n        ElseIf RawKey() = 35\n        zzz$ = "fin"\n        EndIf\n\n        PrintN("Vous avez appuye sur une touche qui n'est pas alpha-numerique")\n         PrintN("Vous avez appuye sur : " + zzz$)\n        PrintN("Son identifiant numerique est : "+Str(RawKey()))\n   \n       \n      Else\n        Delay(20) ; Evite de monopoliser tout le temps processeur. Utile pour un OS multi-tâches.\n      EndIf\n      \n     Goto ee\n
CloseDirectory
Ouvrez votre fichier templates.prefs et collez sa dedans
j'en ajouterais d'autres plus tard :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Exemple de code

Message par falsam »

dayvid a écrit :J'en ajouterais d'autres plus tard :D
Stop !!!! ça n'a aucun intérêt. Arrêtes d'en semer partout comme ça.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Exemple de code

Message par bombseb »

y'a pas à dire, il est tres lisible ton code :mrgreen:
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Exemple de code

Message par MLD »

Nom d'un chien! Dayvid tu te dépasse. :mrgreen:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Exemple de code

Message par Jacobus »

Image

Image
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Exemple de code

Message par dayvid »

Bon ba faut savoir quoi a la fin

faut poser du code oui ou non :x (Humour !!!)

Moi on me critique que je ne poste pas asses de code
et quand j'en poste c'est pas bien ! :roll: (toujours Humour !!!)

Bin faut savoir à la fin, alors quoi je le mets en téléchargement
mais personne n'en voudra :roll:

Moi je veut juste rendre service et voilà comme d’habe on m’envoie schtroumpher :roll:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Exemple de code

Message par bombseb »

un truc cool, qui peux des fois être pratique, c'est d'appuyer sur return à la fin de chaque ligne de code :mrgreen: :arrow:
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: Exemple de code

Message par anissa »

Moi on me critique que je ne poste pas assez de code
et quand j'en poste c'est pas bien ! (toujours Humour !!!)
Ce n'est pas exactement ça Dayvid ! Ton truc pourrait peut être servir pour créer une brochure ou un tuto spécial, penses à le compléter avec des définitions + des exemples, là il sera bien apprécié par tout le monde ! Mais dans cet état... bon.. bouf
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Exemple de code

Message par dayvid »

Anissa, c'est des exemples que tu peut mètre dans ton fichier template :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Exemple de code

Message par jbernard13 »

et dayvid les commentaires dans un code c'est fait pour décorer ....
Jbernard13
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Exemple de code

Message par dayvid »

Bin oui notament pourquoi ? :lol:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre