Page 1 sur 1

Exemple de code

Publié : sam. 09/avr./2011 13:07
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...

Re: Exemple de code

Publié : sam. 09/avr./2011 13:09
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

Re: Exemple de code

Publié : sam. 09/avr./2011 21:15
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.

Re: Exemple de code

Publié : dim. 10/avr./2011 13:01
par bombseb
y'a pas à dire, il est tres lisible ton code :mrgreen:

Re: Exemple de code

Publié : dim. 10/avr./2011 14:35
par MLD
Nom d'un chien! Dayvid tu te dépasse. :mrgreen:

Re: Exemple de code

Publié : dim. 10/avr./2011 17:24
par Jacobus
Image

Image

Re: Exemple de code

Publié : mer. 13/avr./2011 13:20
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:

Re: Exemple de code

Publié : mer. 13/avr./2011 17:17
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:

Re: Exemple de code

Publié : mer. 13/avr./2011 21:33
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

Re: Exemple de code

Publié : ven. 15/avr./2011 13:39
par dayvid
Anissa, c'est des exemples que tu peut mètre dans ton fichier template :)

Re: Exemple de code

Publié : dim. 17/avr./2011 16:58
par jbernard13
et dayvid les commentaires dans un code c'est fait pour décorer ....

Re: Exemple de code

Publié : mer. 20/avr./2011 13:10
par dayvid
Bin oui notament pourquoi ? :lol: