[AIDE PUREBASIC] Mises à jour.
Re: [AIDE PUREBASIC] Mises à jour.
Merci Mesa pour la traduction de la 5.30, je vois que tu as souffert avec la bibliothèque JSON, je compatis  
			
			
									
									http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
						Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: [AIDE PUREBASIC] Mises à jour.
J'avoue, j'ai bien "rigolé" quand j'ai vu passé le commit (je compatis aussi, je sais ce que c'est de le faire 
)
			
			
									
									
						Re: [AIDE PUREBASIC] Mises à jour.
J'ai souffert.
Tiens, le svn est down ce soir alors je committerai demain matin.
M.
Re: [AIDE PUREBASIC] Mises à jour.
Petite suggestion 
le Dossier "Sort"
pourrai peut etre disparaitre et dispacher les :
car j'ai mis 2 heures a retrouver comment trier une liste parceque je cherchais dans le Dossier LinkedList
la fonction SortList , et SortStructuredList qui ne s'y trouvais pas .. (on se demande pourquoi d'ailleurs .....
pareil les fonctions :
SortStructuredArray et SortArray devrai etre dans le dossier "Array" ....
			
			
									
									
						le Dossier "Sort"
pourrai peut etre disparaitre et dispacher les :
dans leur rubrique respectives ...RandomizeArray
RandomizeList
SortArray
SortList
SortStructuredArray
SortStructuredList
car j'ai mis 2 heures a retrouver comment trier une liste parceque je cherchais dans le Dossier LinkedList
la fonction SortList , et SortStructuredList qui ne s'y trouvais pas .. (on se demande pourquoi d'ailleurs .....
pareil les fonctions :
SortStructuredArray et SortArray devrai etre dans le dossier "Array" ....
Re: [AIDE PUREBASIC] Mises à jour.
?? qu'en est t'il de ma suggestion ?
tu crois que ça prendrai beaucoup de temp de refaire les Exemples en utilisant des enumérations ??
car #Win ou #Canvas ,est plus parlant que "0" non ?
			
			
									
									
						tu crois que ça prendrai beaucoup de temp de refaire les Exemples en utilisant des enumérations ??
car #Win ou #Canvas ,est plus parlant que "0" non ?
- majikeyric
 - Messages : 602
 - Inscription : dim. 08/déc./2013 23:19
 - Contact :
 
Re: [AIDE PUREBASIC] Mises à jour.
Sort et LinkedList sont 2 librairies différentes, d'où cette organisation non ?Dobro a écrit :Petite suggestion
le Dossier "Sort"
pourrai peut etre disparaitre et dispacher les :
dans leur rubrique respectives ...RandomizeArray
RandomizeList
SortArray
SortList
SortStructuredArray
SortStructuredList
Re: [AIDE PUREBASIC] Mises à jour.
j'avais bien compris , cependant, cette lib interviens sur Les lists, et sur les tableaux
alors autant les regrouper ....
(il y aurai d'autres choses a regrouper d'ailleurs )
lorsque j'ai chercher comment trier mes lists, je suis allez dans la rubrique List chainée .. ça parait évident
et puis ... rien !
j'ai pas eu le reflexe de chercher une rubrique Sort (surtout qu'il s'agit d'un terme anglais )
c'est pas evident de lier "Tri" avec "Sort" lorsqu'on est en France ....
mais puisque ça concerne les lists ET les tableaux , autant dispacher dans les rubriques respectives
			
			
									
									
						alors autant les regrouper ....
(il y aurai d'autres choses a regrouper d'ailleurs )
lorsque j'ai chercher comment trier mes lists, je suis allez dans la rubrique List chainée .. ça parait évident
et puis ... rien !
j'ai pas eu le reflexe de chercher une rubrique Sort (surtout qu'il s'agit d'un terme anglais )
c'est pas evident de lier "Tri" avec "Sort" lorsqu'on est en France ....
mais puisque ça concerne les lists ET les tableaux , autant dispacher dans les rubriques respectives
RandomizeArray
SortArray
SortStructuredArray
RandomizeList
SortList
SortStructuredList
Re: [AIDE PUREBASIC] Mises à jour.
Bonjour Mesa
Pour la doc PB5.30LTS
j'ai remarquer qu'il faudrait ajouter OpenGLGadget() dans la liste "remarques"
pour les commandes suivantes: EventType(), GetGadgetAttribute(), SetGadgetAttribute(), GadgetToolTip()
(mais peut être que c'est déjà ajouté)
 
Cette fonction est disponible avec les gadgets suivants
.....
OpenGLGadget()
Cordialement
			
			
									
									
						Pour la doc PB5.30LTS
j'ai remarquer qu'il faudrait ajouter OpenGLGadget() dans la liste "remarques"
pour les commandes suivantes: EventType(), GetGadgetAttribute(), SetGadgetAttribute(), GadgetToolTip()
(mais peut être que c'est déjà ajouté)
Cette fonction est disponible avec les gadgets suivants
.....
OpenGLGadget()
Cordialement
Re: [AIDE PUREBASIC] Mises à jour.
ça fait un petit moment que je n'ai plus accès au svn de la doc, c'est normal ? ou j'ai un truc qui merde chez moi ?
			
			
									
									http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
						Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: [AIDE PUREBASIC] Mises à jour.
Tu devrais y avoir acces, tu utilises quoi comme url pour te connecter ?
			
			
									
									
						Re: [AIDE PUREBASIC] Mises à jour.
Pouvez-vous me dire si ce code fonctionne bien ?
Le trouvez-vous trop compliqué en tant qu'exemple à mettre dans la doc pour la la bibliothèque AudioCD ?
Merci.
Mesa.
			
			
									
									
						Le trouvez-vous trop compliqué en tant qu'exemple à mettre dans la doc pour la la bibliothèque AudioCD ?
Merci.
Mesa.
Code : Tout sélectionner
;
; ------------------------------------------------------------
;
;   PureBasic - Audio CD example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;
;-
;- ------- Initialization -------
;- .: Constants & Variables :.
Enumeration FormWindow
  #Window0
EndEnumeration
Enumeration FormGadget
  #ButtonPlay
  #ButtonPause
  #ButtonStop
  #TextAudioCDDrive
  #ComboBoxDeviceCD
  #ListViewTracks
  #TextStatus
  #ButtonEject
  #ButtonPreviousTrack
  #ButtonNextTrack
  #TextTime
  #TextCDLength
  #TextNbTracks
EndEnumeration
NbCDDrives = InitAudioCD()  ; How many CD Drives ?
If NbCDDrives = 0           ; If no CD Drive found then ends everything
  MessageRequester("Error", "No CD Audio drives found...", 0)
  End
EndIf
;- .: Procedures :.
Procedure.s GetHourFormat(LengthInSeconds) ; Format seconds into minutes and seconds
  Minutes = LengthInSeconds/60
  Seconds = LengthInSeconds-Minutes*60
  If Seconds < 10 
    ProcedureReturn Str(Minutes)+"m:0"+Str(Seconds)+"s"
  Else 
    ProcedureReturn Str(Minutes)+"m:"+Str(Seconds)+"s" 
  EndIf  
EndProcedure
Procedure RefreshCD() ; If a (new) CD is inside
  ClearGadgetItems(#ListViewTracks)
  
  NbAudioTracks = AudioCDTracks()
  For k=1 To NbAudioTracks
    If k<10
      AddGadgetItem(#ListViewTracks, -1, "Track 0"+Str(k)+" :"+GetHourFormat(AudioCDTrackLength(k)))
    Else
      AddGadgetItem(#ListViewTracks, -1, "Track "+Str(k)+" :"+GetHourFormat(AudioCDTrackLength(k)))
    EndIf
  Next
  
  DisableGadget(#ButtonPause, 1)
  DisableGadget(#ButtonStop, 1)
  SetGadgetState(#ListViewTracks, 0)
  SetGadgetText(#TextCDLength, "Total: " + GetHourFormat(AudioCDLength()))
  SetGadgetText(#TextNbTracks, "Total Tracks: "+Str(AudioCDTracks()))
EndProcedure
;- 
;- ---------- Main Code ---------
;- Open a window
If OpenWindow(#Window0, 0, 0, 400, 470, "PureBasic - AudioCD Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ButtonGadget(#ButtonPlay, 30, 20, 100, 25, "Play")
  ButtonGadget(#ButtonPause, 15, 20, 100, 25, "Pause")
  ButtonGadget(#ButtonStop, 270, 20, 100, 25, "Stop")
  TextGadget(#TextAudioCDDrive, 180, 60, 80, 25, "Device:", #PB_Text_Right)
  ComboBoxGadget(#ComboBoxDeviceCD, 270, 60, 100, 25)
  ButtonGadget(#ButtonEject, 30, 60, 100, 25, "Eject CD", #PB_Button_Toggle)
  ButtonGadget(#ButtonPreviousTrack, 30, 100, 170, 25, "Previous Track")
  ButtonGadget(#ButtonNextTrack, 210, 100, 160, 25, "Next Track")
  ListViewGadget(#ListViewTracks, 30, 130, 340, 270)
  TextGadget(#TextStatus, 30, 410, 240, 25, "Status: Stopped")
  TextGadget(#TextTime, 280, 410, 90, 25, "00:00", #PB_Text_Right)
  TextGadget(#TextCDLength, 30, 440, 190, 25, "")
  TextGadget(#TextNbTracks, 240, 440, 130, 25, "", #PB_Text_Right)
  
  
  For k=0 To NbCDDrives -1  ; Fullfill the ComboBox with CD devices' name
    UseAudioCD(k)
    AddGadgetItem(#ComboBoxDeviceCD, -1, Left(AudioCDName(),2))
  Next
  SetGadgetState(#ComboBoxDeviceCD, 0)
  UseAudioCD(0)
  
  
  RefreshCD() ; Fullfill the ListView with CD's tracks
  
  ;- Loop: 
  Repeat    
    Repeat
      ;- ->Management of the gadgets
      Event = WindowEvent()  ; This time we use the WindowEvent(), non-blocking command to allow time refreshing
      
      If Event = #PB_Event_Gadget
        Select EventGadget() 
            
          Case #ButtonPlay              ; Play
            If Pause=#True
              ResumeAudioCD()
              Pause=#False 
            Else
              CurrentTrack = GetGadgetState(#ListViewTracks)+1
              PlayAudioCD(CurrentTrack, AudioCDTracks())
            EndIf
            
          Case #ButtonPause             ; Pause
            Pause=#True            
            PauseAudioCD()
            
          Case #ButtonStop              ; Stop
            Pause=#False 
            StopAudioCD()
            
          Case #ButtonEject             ; Eject/Close
            ClearGadgetItems(#ListViewTracks)
            If GetGadgetState(#ButtonEject) = 1
              SetGadgetText(#ButtonEject, "Close")
              EjectAudioCD(1)
            Else
              SetGadgetText(#ButtonEject, "Eject CD")
              EjectAudioCD(0)
              RefreshCD()
            EndIf
            
          Case #ComboBoxDeviceCD        ; Choose your CD Device
            UseAudioCD(GetGadgetState(#ComboBoxDeviceCD))
            RefreshCD()
            
          Case #ButtonPreviousTrack     ; Play Previous Track
            CurrentTrack = CurrentTrack - 1
            If CurrentTrack < 1
              CurrentTrack=AudioCDTracks()              
            EndIf
            SetGadgetState(#ListViewTracks, CurrentTrack-1)
            PlayAudioCD(CurrentTrack, AudioCDTracks())
            
          Case #ButtonNextTrack         ; Play Next Track
            CurrentTrack = CurrentTrack + 1
            If CurrentTrack > AudioCDTracks()
              CurrentTrack=1              
            EndIf
            SetGadgetState(#ListViewTracks, CurrentTrack-1)
            PlayAudioCD(CurrentTrack, AudioCDTracks())
            
          Case #ListViewTracks           ; Click on Track = Play the Track
            If Pause=#True
              Pause=#False 
            EndIf
            CurrentTrack = GetGadgetState(#ListViewTracks)+1
            PlayAudioCD(CurrentTrack, AudioCDTracks())           
            
        EndSelect
        
      Else
        If Event = #PB_Event_CloseWindow ; Close the Window
          Quit = 1 
        EndIf   
      EndIf
    Until Event = 0
    
    Delay(20) ; Wait 20 ms, which is a long period for the processor, to don't steal the whole CPU power
              ; for our little application :)
    
    ;- ->Display informations
    CurrentTrack = AudioCDStatus()
    
    If CurrentTrack > 0 ; A track is playing...
      If AudioCDTrackSeconds() = 0  ; Update the ListView if a new track is played
        SetGadgetState(#ListViewTracks, CurrentTrack-1) 
      EndIf     
      SetGadgetText(#TextStatus, "Playing Track " + Str(CurrentTrack) + " (Length: " + GetHourFormat(AudioCDTrackLength(CurrentTrack)) + ")")
      SetGadgetText(#TextTime, "Time: " + GetHourFormat(AudioCDTrackSeconds()))
      DisableGadget(#ButtonPlay, 1)
      DisableGadget(#ButtonPause, 0)
      DisableGadget(#ButtonStop, 0)
      DisableGadget(#ListViewTracks, 0)
      
    ElseIf CurrentTrack = 0         ; The CD Drive is paused or stopped ?
      If Pause=#True                ; Pause
        SetGadgetText(#TextStatus, "Status: Pause.")
        DisableGadget(#ButtonPlay, 0)
        DisableGadget(#ButtonPause, 1)
        DisableGadget(#ButtonStop, 0)
        DisableGadget(#ListViewTracks, 0)
      Else                          ; Stopped
        SetGadgetText(#TextStatus, "Status: Stopped with a CD inside.")
        SetGadgetText(#TextTime, "")
        DisableGadget(#ButtonPlay, 0)
        DisableGadget(#ButtonPause, 1)
        DisableGadget(#ButtonStop, 1)
        DisableGadget(#ListViewTracks, 0)
        If GetGadgetState(#ButtonEject) = 1
          SetGadgetText(#ButtonEject, "Close")
          SetGadgetText(#ButtonEject, "Eject CD")
          SetGadgetState(#ButtonEject, 0)
          RefreshCD()
        EndIf
      EndIf
      
    ElseIf CurrentTrack = -1        ; CD Drive not ready
      DisableGadget(#ListViewTracks, 1)
      SetGadgetText(#TextStatus, "Status: No CD or Open.")
      SetGadgetText(#TextTime, "")
      DisableGadget(#ButtonPlay, 1)
      DisableGadget(#ButtonPause, 1)
      DisableGadget(#ButtonStop, 1)
      DisableGadget(#ListViewTracks, 1)
      
    Else
      DisableGadget(#ListViewTracks, 0)
      
    EndIf
    
  Until Quit = 1
  
EndIf
;- End Loop:
;-
;- ------------- End ------------
;- Free CD Drives
For k=0 To NbCDDrives-1 ; Stop all the CD drives, if some are playing together
  UseAudioCD(k)
  StopAudioCD()
Next
End 
Re: [AIDE PUREBASIC] Mises à jour.
je ne suis pas le mieux placé pour le dire (vu que j'ai fait quelques exemples 3D un peu longuets), mais je pense que les exemples de la doc doivent être le plus court possible, dans le but d'illustrer une commande. idéalement un exemple par commande.
Sinon il y a le répertoire 'source advanced' pour des codes plus conséquents.
Je n'ai pas PureBasic sous la main, je testerai ce soir ton code.
			
			
									
									Sinon il y a le répertoire 'source advanced' pour des codes plus conséquents.
Je n'ai pas PureBasic sous la main, je testerai ce soir ton code.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
						Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: [AIDE PUREBASIC] Mises à jour.
Salut Mesa.
Je trouve que le code actuel est plus parlant. Il fait tout de même 100 lignes de moins.
Ton code est (une aplli terminée) un peu long je trouve. Par contre le mettre dans la section advanced comme l'a suggéré comtois serait pas mal. Vu que c'est une version plus avancée du code actuel.
 
J'ai celui là en 5.30
			
			
									
									Je trouve que le code actuel est plus parlant. Il fait tout de même 100 lignes de moins.
Ton code est (une aplli terminée) un peu long je trouve. Par contre le mettre dans la section advanced comme l'a suggéré comtois serait pas mal. Vu que c'est une version plus avancée du code actuel.
J'ai celui là en 5.30
Code : Tout sélectionner
NbCDDrives = InitAudioCD()
If NbCDDrives = 0
  MessageRequester("Error", "No CD Audio drives found...", 0)
  End
EndIf
Global Null$
Procedure.s GetHourFormat(LengthInSeconds)
  Minutes = LengthInSeconds/60
  Seconds = LengthInSeconds-Minutes*60
  If Seconds < 10 : Null$ = "0" : Else : Null$ = "" : EndIf
  ProcedureReturn Str(Minutes)+":"+Null$+Str(Seconds)
EndProcedure
; Initialize constants for easier code reading
;
#GADGET_Play   = 0
#GADGET_Stop   = 1
#GADGET_Eject  = 2
#GADGET_Close  = 3
#GADGET_Select = 4
#GADGET_Status = 5
#GADGET_Time   = 6
#GADGET_AudioCDDrive = 7
#GADGET_SelectDrive  = 8
If OpenWindow(0, 100, 200, 265, 125, "PureBasic - AudioCD Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget  (#GADGET_Play   ,  10, 10, 60 , 24, "Play")
  ButtonGadget  (#GADGET_Stop   ,  70, 10, 60 , 24, "Stop")
  ButtonGadget  (#GADGET_Eject  , 130, 10, 60 , 24, "Eject")
  ButtonGadget  (#GADGET_Close  , 190, 10, 60 , 24, "Close")
  ComboBoxGadget(#GADGET_Select ,  10, 43, 240, 21)
  TextGadget    (#GADGET_Status ,  10, 70, 180, 16, "Status: stopped")
  TextGadget    (#GADGET_Time   , 200, 70, 240, 16, "")
  TextGadget    (#GADGET_AudioCDDrive,  10, 94, 140,  24, "Select the CD-Audio drive :")
  ComboBoxGadget(#GADGET_SelectDrive , 150, 90,  40, 21)
  For k=1 To NbCDDrives
    UseAudioCD(k-1)
    AddGadgetItem(#GADGET_SelectDrive, -1, Left(AudioCDName(),2))
  Next
  SetGadgetState(#GADGET_SelectDrive, 0)
  UseAudioCD(0)
  If NbCDDrives = 1
    DisableGadget(#GADGET_SelectDrive, 1)
  EndIf
  Gosub RefreshCD
  Repeat
    Repeat
      Event = WindowEvent()  ; This time we use the WindowEvent(), non-blocking command to allow time refreshing
      If Event = #PB_Event_Gadget
        Select EventGadget() 
          Case #GADGET_Play
            CurrentTrack = GetGadgetState(4)+1
            PlayAudioCD(CurrentTrack, CurrentTrack)
            
          Case #GADGET_Stop
            StopAudioCD()
          Case #GADGET_Eject
            EjectAudioCD(1)
          Case #GADGET_Close
            EjectAudioCD(0)
          Case #GADGET_SelectDrive
            UseAudioCD(GetGadgetState(#GADGET_SelectDrive))
            Gosub RefreshCD
        EndSelect
      Else
        If Event = #PB_Event_CloseWindow : Quit = 1 : EndIf   
      EndIf
    Until Event = 0
    Delay(20) ; Wait 20 ms, which is a long period for the processor, to don't steal the whole CPU power
              ; for our little application :)
    CurrentTrack = AudioCDStatus()
    If CurrentTrack > 0
      SetGadgetText(#GADGET_Status, "Playing Track "+Str(CurrentTrack)+" (Length: "+GetHourFormat(AudioCDTrackLength(CurrentTrack))+")")
      SetGadgetText(#GADGET_Time, "Time: "+GetHourFormat(AudioCDTrackSeconds()))
      DisableGadget(#GADGET_Play, 1)
      DisableGadget(#GADGET_Stop, 0)
      DisableGadget(#GADGET_Select, 0)
    Else
      SetGadgetText(#GADGET_Status, "Status: Stopped")
      SetGadgetText(#GADGET_Time, "")
      DisableGadget(#GADGET_Play, 0)
      DisableGadget(#GADGET_Stop, 1)
      If CurrentTrack = -1 ; CD Drive not ready
        DisableGadget(#GADGET_Select, 1)
      Else
        DisableGadget(#GADGET_Select, 0)
      EndIf
    EndIf
  Until Quit = 1
EndIf
For k=0 To NbCDDrives-1    ; Stop all the CD drives, if some are playing together
  UseAudioCD(k)
  StopAudioCD()
Next
End 
;-----------------------------------------------------------------
;  SubRoutines
;
RefreshCD:
  ClearGadgetItems(#GADGET_Select)
  NbAudioTracks = AudioCDTracks()
  For k=1 To NbAudioTracks
    AddGadgetItem(#GADGET_Select, -1, "Track "+Str(k))
  Next
  SetGadgetState(#GADGET_Select, 0)
Return~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
						⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: [AIDE PUREBASIC] Mises à jour.
En effet, je vais peut-être le mettre dans source advanced.
M.
			
			
									
									
						M.
Re: [AIDE PUREBASIC] Mises à jour.
@Backup
- Pour la bibliothèque "sort", c'est Fred qui s'occupe de ce genre de changement. C'est à voir en effet.
J'ai ajouté quelques liens supplémentaires dans la bibliothèque "link"
- Pour les énumérations, c'était la "philosophie" du début que de simplifier les exemples à l'extrême. Peut-être dans l'avenir. A voir aussi.
@kernadec
Pour OpenGL gadget, c'est ok maintnant.
Pour télécharger la dernière version de l'aide voir le premier post de ce thread ou là http://frazier.wood.free.fr/chm/PureBasic531.rar
M.
			
			
									
									
						- Pour la bibliothèque "sort", c'est Fred qui s'occupe de ce genre de changement. C'est à voir en effet.
J'ai ajouté quelques liens supplémentaires dans la bibliothèque "link"
- Pour les énumérations, c'était la "philosophie" du début que de simplifier les exemples à l'extrême. Peut-être dans l'avenir. A voir aussi.
@kernadec
Pour OpenGL gadget, c'est ok maintnant.
Pour télécharger la dernière version de l'aide voir le premier post de ce thread ou là http://frazier.wood.free.fr/chm/PureBasic531.rar
M.