comtois a écrit :J'ai hésité à le faire, mais le principe c'était de ne mettre que le nom de la fonction dans le titre, mais je mettrai Désactiver/Activer des boutons... en commentaire une ligne avant pour dire ce que fait le code.
Ok, j'avais compris que ce n'était valable que pour les titres composés de nom de gadget, pas pour tous les titres.
Ta page perso fonctionne à nouveau, c'est bon !
EDIT : (27/04 16h25) Quelques p'tites choses à corriger
EDIT : (27/04 21h20) Je complète la liste (je regroupe tout dans le meme post c'est plus facile)
Console.txt
ConsoleColor()
(Dr. Dri) Dans la syntaxe, remplacer CouleurCaractere par CouleurTexte
Dans l'exemple remplacer les variables ForeGround/Background par CouleurTexte/CouleurFond
ConsoleError()
du 'Programme'. => du programme.
ReadConsoleData()
Dans l'exemple : If TotalSize > 0 ; display the image if successfull => ; affiche l'image si tout se passe bien
Memory.txt
AllocateMemory()
contigüe de la taille spécifiée => contigüe de la taille spécifiée (en octets)
Exemple traduit :
Code : Tout sélectionner
*MemoireID = AllocateMemory(5000)
If *MemoireID
Debug "Adresse de début de la zone mémoire de 5000 octets :"
Debug *MemoireID
PokeS(*MemoireID, "Stocke cette chaîne dans la zone mémoire")
FreeMemory(*MemoireID) ; sera également effectué automatiquement à la fin du programme
Else
Debug "Impossible d'allouer la mémoire demandée !"
EndIf
CopyMemoryString()
Dans la syntaxe : *Addresse => *Adresse
Dans la description : Si '@*destinationmemoryid' => Si @*DestinationMemoryID
Exemple traduit :
Code : Tout sélectionner
*Tampon = AllocateMemory(1000)
*Pointeur = *Tampon
CopyMemoryString("Salut", @*Pointeur)
CopyMemoryString(" le Monde") ; Cette chaîne sera copiée juste après "Salut"
*Pointeur-2 ; revient en arrière de 2 caractères (sur le 'd' de 'Monde')
CopyMemoryString("DE") ; les deux dernières lettres seront en majuscules
Debug PeekS(*Tampon)
ReAllocateMemory()
Dans la description, ajouter : en fonction de la taille indiquée (en octets)
Exemple traduit :
Code : Tout sélectionner
*MemoireID = AllocateMemory(1000)
PokeS(*MemoireID, "Stocke cette chaîne")
; faire quelque chose en plus avec ça ici...
;
*NouveauMemoireID = ReAllocateMemory(*MemoireID, 2000) ; besoin de plus de mémoire
If *NouveauMemoireID
; maintenant travailler avec *NouveauMemoireID avec une taille de 2000 octets
Debug "L'ancien contenu est toujours là :"
Debug PeekS(*NouveauMemoireID)
;
FreeMemory(*NouveauMemoireID)
Else
; le redimensionnement a échoué, continuons de travailler avec *MemoireID (de taille 1000 octets)
;
FreeMemory(*MemoireID)
EndIf
Menu.txt
titres des menus + var francisées (correspond à la description)
+ traduction des commentaires
quand ce n'était pas déjà fait
+ traduction du passage OS X
CreateMenu()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 200, 100, "Exemple de menu")
If CreateMenu(0, WindowID(0))
MenuTitle("Projet")
MenuItem(1, "&Ouvrir" +Chr(9)+"Ctrl+O")
MenuItem(2, "&Enregistrer" +Chr(9)+"Ctrl+E")
MenuItem(3, "En®istrer sous"+Chr(9)+"Ctrl+R")
MenuItem(4, "&Fermer" +Chr(9)+"Ctrl+F")
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
CreatePopupMenu()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 220, 120, "Exemple de menu contextuel")
If CreatePopupMenu(0) ; La création du menu contextuel commence...
MenuTitle("Projet") ; Vous pouvez utiliser toutes les commandes relatives au menu,
MenuItem(1, "Ouvrir") ; comme si c'était un menu normal...
MenuItem(2, "Enregistrer")
MenuItem(3, "Enregistrer sous")
MenuItem(4, "Quitter")
MenuBar()
OpenSubMenu("Fic&hiers récents")
MenuItem(5, "PureBasic.exe")
MenuItem(6, "Test.txt")
CloseSubMenu()
MenuTitle("Editer")
MenuTitle("Options")
EndIf
Repeat
Select WaitWindowEvent() ; Examine quel type d'évènement est survenu sur la fenêtre
Case #WM_RBUTTONDOWN ; Le bouton droit de la souris a été clické =>
DisplayPopupMenu(0,WindowID(0)) ; On affiche le menu contextuel
Case #PB_Event_Menu ; Un élément du menu a été sélectionné
Select EventMenu() ; On recupère le numéro de cet élement...
Case 1 : Debug "Menu : Ouvrir"
Case 2 : Debug "Menu : Enregistrer"
Case 3 : Debug "Menu : Enregistrer sous"
Case 4 : Quitter = 1
Case 5 : Debug "Menu : PureBasic.exe"
Case 6 : Debug "Menu : Text.txt"
EndSelect
Case #PB_Event_CloseWindow
Quitter = 1
EndSelect
Until Quitter = 1
EndIf
DisableMenuItem()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 200, 100, "Exemple DisableMenuItem")
If CreateMenu(0, WindowID(0))
MenuTitle("Projet")
MenuItem(1, "Ouvrir")
MenuItem(2, "Enregistrer")
DisableMenuItem(0,2,1) ; Désactive le second élément du menu ("Enregistrer")
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
GetMenuItemState()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 220, 100, "Exemple GetMenuItemState")
If CreateMenu(0, WindowID(0))
MenuTitle("Projet")
MenuItem(1, "Changé")
SetMenuItemState(0,1,1) ; Affiche l'élément du menu comme étant coché.
EndIf
Repeat
Evenement = WaitWindowEvent() ; Attente d'un évenement
If Evenement = #PB_Event_Menu ; Evenement de type 'Menu'
If EventMenu() = 1 ; Le premier élément du menu a été sélectionné
If GetMenuItemState(0,1) = 1 ; Etat actuel de l'élément = coché
SetMenuItemState(0,1,0) ; On le décoche
Else ; Etat actuel de l'élément = décoché
SetMenuItemState(0,1,1) ; On le coche
EndIf
EndIf
EndIf
Until Evenement = #PB_Event_CloseWindow
EndIf
MenuBar()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 200, 100, "Exemple MenuBar")
If CreateMenu(0, WindowID(0)) ; la création du menu commence ici....
MenuTitle("Projet")
MenuItem(1, "Ouvrir")
MenuBar() ; la barre de séparation sera insérée ici
MenuItem(4, "Fermer")
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
MenuItem()Code : Tout sélectionner
If OpenWindow(0, 200, 200, 200, 100, "Exemple MenuItem")
If CreateMenu(0, WindowID(0))
MenuTitle("Projet")
MenuItem(1, "Ouvrir") ; Element normal
MenuItem(2, "&Enregistrer") ; Element avec une lettre soulignée.
; Le trait souligné n'apparaîtra que si le menu est appelé avec F10 ou ALT.
; Note : sous Windows XP, le trait souligné apparaitra toujours si l'option
; 'Masquer les lettres soulignées pour la navigation au clavier jusqu'à ce que j'appuie sur la touche Alt'
; est décochée dans Propriétés de affichage / Apparence / Effets
MenuItem(3, "Quitter"+Chr(9)+"ECHAP") ; Element avec un raccourci clavier affiché sur la droite.
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
MacOS X : les éléments 'Quitter', 'Préférences' et 'A propos' sont considérés comme spéciaux et doivent être placés dans le menu 'Application' pour avoir l'apparence et le comportement des applications OS X. PureBasic fournit les constantes #PB_Menu_Quit, #PB_Menu_Preferences et #PB_Menu_About pour gérer ce genre d'éléments de menu. Lorsqu'une de ces constantes est détectée, l'élément n'est pas inséré à la place courante, mais dans le menu 'Application'. Si un raccourci a été associé, il est simplement ignoré et remplacé par le raccourci standard. Ces 3 constantes ne sont pas définies sur les autres systèmes d'exploitation, afin de permettre une numérotation flexible sur ces OS.
Misc.txt
ElapsedMilliseconds()
commentaires de l'exemple traduits + j'ai précisé le but de l'exemple car apparement ce n'était pas clair
jerexgrz a écrit :Sur la doc, on a ca : Renvoie le nombre de millisecondes qui se sont écoulées depuis le démarrage de l'ordinateur. Hors, si l'on regarde de + pres l'exemple, il s'agit d'activer un timer lorsque l'on execute le prog (startime). Donc tres different !
Code : Tout sélectionner
;
; exemple d'utilisation comme chronomètre
;
TempsDepart = ElapsedMilliseconds() ; Récupère la valeur actuelle
;
Delay(1000) ; Attend 1000 millisecondes
;
TempsEcoule = ElapsedMilliseconds()-TempsDepart ; La valeur 'ElapsedTime' devrait être d'environ 1000 millisecondes
Debug "Temps écoulé : "+Str(TempsEcoule)+" millisecondes"
Process.txt
Traductions des exemples
ExamineEnvironmentVariables()Code : Tout sélectionner
; énumérera toutes les variables d'environnement disponibles pour le programme
;
OpenConsole()
If ExamineEnvironmentVariables()
While NextEnvironmentVariable()
PrintN(EnvironmentVariableName() + " = " + EnvironmentVariableValue())
Wend
EndIf
PrintN("")
PrintN("Appuyez sur [Entree] pour quitter.")
Input()
GetEnvironnmentVariables()Code : Tout sélectionner
; Affiche le contenu de la variable d'environnement "PATH"
;
OpenConsole()
PrintN(GetEnvironmentVariable("PATH"))
PrintN("")
PrintN("Appuyez sur [Entree] pour quitter.")
Input()
ProgramExitCode()
ProgramParameter()
MonProgramme.exe MonTexte.txt /RAPIDE "Mode Special"
La première fois que ProgramParameter() est appelé, la commande va renvoyer "MonTexte.txt", la seconde fois "/RAPIDE" et la troisieme fois "Mode Special".
RunProgram()Code : Tout sélectionner
; Execute le compilateur PureBasic avec l'option /? et affiche la sortie (version windows)
; Pour Linux/MacOS changez le paramètre "/?" en "-h" et le "" en "/" dans le chemin vers le compilateur.
;
Compilateur = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", "/?", "", #PB_Program_Open|#PB_Program_Read)
Sortie$ = ""
If Compilateur
While ProgramRunning(Compilateur)
Sortie$ + ReadProgramString(Compilateur) + Chr(13)
Wend
Sortie$ + Chr(13) + Chr(13)
Sortie$ + "Code de retour : " + Str(ProgramExitCode(Compilateur))
EndIf
MessageRequester("Sortie", Sortie$)
Requester.txt
ColorRequester()
color => couleur
Code : Tout sélectionner
Couleur.l = ColorRequester()
If Couleur > -1
a$ = "Vous avez sélectionné la couleur suivante :" + Chr(10) ; Chr(10) est seulement nécessaire
a$ + "Valeur 24 Bits : " + Str(Couleur) + Chr(10) ; pour les retours à la ligne
a$ + "Composante rouge : " + Str(Red(Couleur)) + Chr(10)
a$ + "Composante verte : " + Str(Green(Couleur)) + Chr(10)
a$ + "Composante bleue : " + Str(Blue(Couleur))
Else
a$ = "La sélection a été annulée."
EndIf
MessageRequester("Information",a$,0)
End
FontRequester()
libellés
Code : Tout sélectionner
Police$ = "Arial" ; Police initiale (peut aussi être nulle)
TaillePolice = 14 ; Taille initiale (peut aussi être nulle)
Resultat = FontRequester(Police$, TaillePolice, #PB_FontRequester_Effects)
If Resultat
Message$ = "Vous avez sélectionné la police suivante :" + #LF$
Message$ + "Nom : " + SelectedFontName() + #LF$
Message$ + "Taille : " + Str(SelectedFontSize()) + #LF$
Message$ + "Couleur : " + Str(SelectedFontColor()) + #LF$
If SelectedFontStyle() & #PB_Font_Bold
Message$ + "Gras" + #LF$
EndIf
If SelectedFontStyle() & #PB_Font_StrikeOut
Message$ + "Barré" + #LF$
EndIf
If SelectedFontStyle() & #PB_Font_Underline
Message$ + "Souligné" + #LF$
EndIf
Else
Message$ = "La sélection a été annulée."
EndIf
MessageRequester("FontRequester", Message$, #PB_MessageRequester_Ok)
InputRequester()
nom gadget + input$ => saisie$
Code : Tout sélectionner
Saisie$ = InputRequester("InputRequester","Saisissez un texte :","Texte par défaut.")
If Saisie$ > ""
a$ = "Vous avez écrit le texte suivant :" + Chr(10) ; Chr(10) nécessaire seulement
a$ + Saisie$ ; pour faire un saut de ligne
Else
a$ = "La saisie a été annulée ou il n'y a pas de texte saisi."
EndIf
MessageRequester("Information",a$,0)
End
MessageRequester()
Traduction
Code : Tout sélectionner
; MessageRequester simple (normalement utilisé uniquement pour afficher des informations)
; (le résultat sera toujours identique, donc nous ne le vérifions pas ici)
MessageRequester("MessageRequester Simple","Juste un petit texte d'information.",#PB_MessageRequester_Ok)
; MessageRequester avec boutons Oui / Non (normalement utilisé pour les questions)
; (le résulat sera affiché dans la fenêtre d'information suivante)
Resultat = MessageRequester("MessageRequester avec boutons Oui/Non ","Veuillez faire votre choix :",#PB_MessageRequester_YesNo)
a$ = "Le résultat du MessageRequester précédent était : "
If Resultat = 6 ; le bouton Oui a été choisi (Resultat = 6)
a$ + "Oui"
Else ; le bouton Non a été choisi (Resultat = 7)
a$ + "Non"
EndIf
MessageRequester("Information",a$,#PB_MessageRequester_Ok)
; MessageRequester avec boutons Oui / Non / Annuler (normalement utilisé pour les questions)
; (le résulat sera affiché dans la fenêtre d'information suivante)
Resultat = MessageRequester("MessageRequester avec boutons Oui / Non / Annuler","Veuillez faire votre choix :",#PB_MessageRequester_YesNoCancel)
a$ = "Le résultat du MessageRequester précédent était : "
If Result = 6 ; le bouton Oui a été choisi (Resultat = 6)
a$ + "Oui"
ElseIf Result = 7 ; le bouton Non a été choisi (Resultat = 7)
a$ + "Non"
Else ; le bouton Annuler a été choisi ou la touche Echap a été appuyée (Resultat = 2)
a$ + "Annuler"
EndIf
MessageRequester("Information",a$,#PB_MessageRequester_Ok)
NextSelectedFileName()
Filename$ => NomFichier$
Code : Tout sélectionner
NomFichier$ = OpenFileRequester("Choisissez quelques fichiers","","",0, #PB_Requester_MultiSelection)
While NomFichier$
Debug NomFichier$
NomFichier$ = NextSelectedFileName()
Wend
OpenFileRequester()
Traduction commentaires + var
Code : Tout sélectionner
FichierParDefaut$ = "C:\autoexec.bat" ; Répertoire et fichier par défaut qui seront affichés
; Avec la chaîne suivante nous allons définir les filtres ("|" comme séparateur) pour l'affichage de fichier :
; 1er : "Texte (*.txt)" comme nom, ".txt" et ".bat" comme extension autorisée
; 2ème : "PureBasic (*.pb)" comme nom, ".pb" comme extension autorisée
; 3ème : "Tous les fichiers (*.*)" comme nom, "*.*" comme extension autorisée, valide pour tous les fichiers
Filtre$ = "Texte (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
Fichier$ = OpenFileRequester("Choisissez un fichier à charger", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
MessageRequester("Information", "Vous avez choisi le fichier suivant :"+Chr(10)+Fichier$, 0)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
PathRequester()
Dans la syntaxe + Description : NomChemin$ => Chemin$
var francisees
Code : Tout sélectionner
CheminInitial$ = "C:" ; Répertoire par défaut qui sera affiché (une chaîne vide est aussi possible)
Chemin$ = PathRequester("Choisissez un répertoire", CheminInitial$)
If Chemin$
MessageRequester("Information", "Vous avez choisi le répertoire suivant :"+Chr(10)+Chemin$, 0)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SaveFileRequester()
Traduction commentaires + var
Code : Tout sélectionner
FichierParDefaut$ = "C:\autoexec.bat" ; Répertoire et fichier par défaut qui seront affichés
; Avec la chaîne suivante nous allons définir les filtres ("|" comme séparateur) pour l'affichage de fichier :
; 1er : "Texte (*.txt)" comme nom, ".txt" et ".bat" comme extension autorisée
; 2ème : "PureBasic (*.pb)" comme nom, ".pb" comme extension autorisée
; 3ème : "Tous les fichiers (*.*)" comme nom, "*.*" comme extension autorisée, valide pour tous les fichiers
Filtre$ = "Texte (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
Fichier$ = SaveFileRequester("Choisissez un fichier à sauvegarder", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
MessageRequester("Information", "Vous avez choisi ce fichier :"+Chr(10)+Fichier$, 0)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SelectedFilePattern()
var francisées
Code : Tout sélectionner
FichierParDefaut$ = "C:\autoexec.bat" ; Répertoire et fichier par défaut
Filtre$ = "Texte (*.txt)|*.txt;*.bat|" ; Premier filtre (index = 0)
Filtre$ + "PureBasic (*.pb)|*.pb|" ; Deuxième filtre (index = 1)
Filtre$ + "Bmp (*.bmp)|*.bmp|" ; Troisième filtre (index = 2)
Filtre$ + "Jpeg (*.jpg)|*.jpg|" ; Quatrième filtre (index = 3)
Filtre$ + "Tous les fichiers (*.*)|*.*" ; Cinquième filtre (index = 4)
Filtre = 1 ; Le deuxième filtre sera utilisé par défaut.
; Ouvre une boîte de dialogue pour choisir un fichier, vous pouvez changer de filtre et obtenir son index après validation
Fichier$ = OpenFileRequester("Choisissez un fichier", FichierParDefaut$, Filtre$, Filtre)
Index = SelectedFilePattern()
If Index > -1
MessageRequester("Information", "L'index du filtre sélectionné est le suivant : "+Str(Index), 0)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
Gadget.txt
DateGadget
- SetGadgetAttribute(): With the following attributes: => avec les attributs suivants :
ScrollBarGadget
- SetGadgetAttribute(): With one of the following attributes: => avec un des attributs suivants:
OnError.txt
DisASMCommand() et
GetDisASMString() (exemple identique)
Corrections exemple
Mini-Disassembleur => Mini-Désassembleur
Null.l => Zero
Ergebnis.l => Resultat
+ espaces superflus dans les étiquettes
Code : Tout sélectionner
Debug "Mini-Désassembleur !"
Debug "Tapez votre code entre les 2 étiquettes DEBUT_C: et FIN_C:"
Debug "et laissez la bibliothèque Error désassembler pour vous"
Pointeur=?DEBUT_C
If Pointeur<>?FIN_C
SetClipboardText("")
Repeat
CettePosition=Pointeur
Pointeur=DisASMCommand(Pointeur)
Debug Hex(CettePosition)+" - " + GetDisASMString()
SetClipboardText(GetClipboardText()+GetDisASMString()+Chr(13)+Chr(10))
Until Pointeur>=?FIN_C
EndIf
End
DEBUT_C:
Zero.l=0 ; 1. Erreur: Division par zéro
Resultat.l = 123 / Zero
!INT 3 ; 2. Erreur: Point d'arrêt en ASM
!NOP ; Les NOPS sont aussi désassemblés
PeekL(99) ; 3. Erreur: Lecture d'une valeur à partir d'une adresse mémoire invalide
SetErrorNumber(9) ; 4. Erreur: Force un numéro d'erreur manuellement
FIN_C:
GoToEIP()
;a simple Message Debug => ;un simple message Debug
et goto à la dernière adresse => et va à la dernière adresse
OnErrorGosub()
ErrorHandler => GestionnaireErreur (ou ControleurErreur, pour reprendre le terme de la doc)
"An error happened...","Continue with the program?" => "Une erreur est survenue...","Continuer ce programme ?"
"Normal end" => Fin normale
SetErrorNumber()
Syntaxe : SetErrorNumber(Number) => SetErrorNumber(Numéro)
ErrorHandler => GestionnaireErreur (ou ControleurErreur, pour reprendre le terme de la doc)
"Error " =>"Erreur "