[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.