Page 2 sur 3
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 7:15
par Mindphazer
Kwai chang caine a écrit :
Je suis content on va pouvoir enfin mettre un GOSUB dans une procedure, encore une vieille demande qui a été prise en compte.
Ca devrait simplifier certains de mes codes..merci FRED
La beta 2 est sortie
http://www.purebasic.fr/english/viewtop ... 14&t=54999
Désolé KCC pour le gosub :
Gosub in procedure have been removed as it can't work for now
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 8:35
par Mesa
L’intérêt des layouts utilisés dans les 'Dialogs", c'est de ne pas mettre des width et des height... sauf quand c'est nécessaire et pour résoudre le problème de l'exemple 3, il faut donner une taille minimale au progressbar sinon il n'apparaît pas :
Code : Tout sélectionner
<?xml version="1.0"?>
<!-- Window -->
<window id="0" name="hello" text="Window" label="TestDialog" width="620" height="10" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
<splitter width="600" height="600">
<hbox>
<checkbox name="checkbox1" text="Run only one Instance" disabled="yes" Flags=""/>
<progressbar text="Vrey vreyv rye" width="150"/>
<trackbar text="Ole" invisible="no" Flags="#PB_TrackBar_Ticks" width="150"/>
<option text="option 1" name="option1" onevent="CheckBoxEvent()"/>
<option text="option 2"/>
</hbox>
<vbox>
<listview text="option 3" height="50"/>
<button text="Ole 2"/>
<listicon text="option 4" height="50"/>
<string text="string content"/>
<editor text="editorgadget" height="50"/>
<text text="Text gadget"/>
</vbox>
</splitter>
</window>
Mais, j'ai beau changer la taille du splitter, le résultat reste encore bizarre.
Mesa.
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 10:28
par Fred
C'est pas étonnant que les resultats soient encore faux, car cette lib est tres complexe, elle va se stabiliser avec vos rapports de bugs, donc n'hesitez pas à poster sur le forum anglais.
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 13:14
par blendman
clipsprite() ne serait-il pas buggué ?
Car sur ce code, normalement la surface devrait s'étendre et en fait c'est l'intérieur qui change de taille :
Code : Tout sélectionner
If InitSprite() = 0 Or InitKeyboard() = 0 Or UsePNGImageDecoder() = 0
MessageRequester("Error", "Sprite system can't be initialized", 0)
End
EndIf
win= OpenWindow(#PB_Any, 0, 0, 610, 410, "PB 5.20b - Sprite alphablending",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If win
OpenWindowedScreen(WindowID(win), 5, 5, 600, 400, 0, 0, 0, #PB_Screen_NoSynchronization)
LoadSprite(0, "Data/but.png",#PB_Sprite_AlphaBlending)
Repeat
event = WindowEvent()
FlipBuffers()
ClearScreen(RGB(200,200,200))
ClipSprite(0, x, x, 250+x,100)
DisplayTransparentSprite(0, 50, 100)
If x <250
x+1
Else
x= 0
EndIf
ExamineKeyboard()
Delay (10)
Until KeyboardPushed(#PB_Key_Escape) Or event = #PB_Event_CloseWindow
Else
MessageRequester("Error", "Error", 0)
EndIf
End
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 13:16
par Fred
Tu peux mettre ton image en download ?
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 14:59
par Micoute
Fred a écrit :C'est pas étonnant que les resultats soient encore faux, car cette lib est tres complexe, elle va se stabiliser avec vos rapports de bugs, donc n'hesitez pas à poster sur le forum anglais.
Le problème, c'est que je n'arrive même pas à m'inscrire !
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 16:07
par Micoute
Merci beaucoup monsieur Spock, mais ça n'a pas été trop facile de s'inscrire !
Re: La v5.20 Beta 1 est sortie
Publié : sam. 22/juin/2013 17:49
par blendman
Fred a écrit :Tu peux mettre ton image en download ?
et hop voici l'image :

Re: La v5.20 Beta 1 est sortie
Publié : mar. 25/juin/2013 21:34
par Kwai chang caine
Mindphaser a écrit :La beta 2 est sortie
Désolé KCC pour le gosub :
Merci de l'info...y'avait une fonction que j’étais vraiment content...si j'avais autant de chance au LOTO...
Quand je pense que je viens d'ecrire que FRED avait deja fait l'effort du GOSUB, alors si il pouvait un jour faire comme le D une procedure dans une autre......
Je crois que je peux dors et déjà me la mettre sur l'oreille, parce que le GOSUB ça doit être de la roupie de sansonnet par rapport à une procédure imbriquée

Re: La v5.20 Beta 1 est sortie
Publié : mer. 26/juin/2013 17:07
par Patrick88
procedure dans une autre procedure, comme en pascal je suppose ?
Patrick
Re: La v5.20 Beta 1 est sortie
Publié : mer. 26/juin/2013 20:41
par G-Rom
Une procédure imbriqué ? je ne vois pas l’intérêt , si on pouvait m'expliqué , même en C/C++ ca n'existe pas

Re: La v5.20 Beta 1 est sortie
Publié : dim. 30/juin/2013 15:09
par Kwai chang caine
Oui PASCAL le fait
Les procédures imbriquées sont supportées en D et dans certains C, mais pas tous.
http://fr.wikipedia.org/wiki/Fonction_imbriqu%C3%A9e
En fait c'est super utile quand une fonction n'est utilisée que par une autre, elle n'a donc pas besoin d’être publique.
Ca permet aussi pour simplifier le code, comme par exemple dans une enumeration ou pourrait ecrire une seule procédure au lieu de s'en trimbaler deux, une principale et une autre qui se balade dans le code qui ne dépend que de sa procédure mère
Dans les codes ça simplifierait drolement la clarté, quand tu copie une procédure tout ce que tu as besoin est dedans si ça ne sert qu'a elle.
Dans certains cas les API ne savent être utilisées qu'en pointant une autre procédure, c'est le cas non isolé de "EnumWindows_"
Comme dans ce code que j'ai modifié à l'arache..et qui marche évidement pas
Code : Tout sélectionner
Structure result
hWnd.i
String.s
EndStructure
Procedure.s EnumereProcess()
Procedure EnumWindowsProc(hWnd, *lParam.result)
Protected Title.s{260}
GetWindowText_(hWnd, @Title, 260)
If FindString(Title, *lParam\String)
*lParam\String = Title
*lParam\hWnd = hWnd
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
Define param.result
param\String = " 5.10 ("
If Not EnumWindows_(@EnumWindowsProc(), @param)
ProcedureReturn "Found: " + param\String + " with hWnd: " + Str(param\hWnd)
EndIf
EndProcedure
Mais apparemment FRED a deja des problemes avec juste un gosub, et il parait que c'est compliqué a gerer les variables d'une procedure locale, alors c'est mal barré

Re: La v5.20 Beta 1 est sortie
Publié : dim. 30/juin/2013 18:32
par Fred
Kwai chang caine a écrit :Mais apparemment FRED a deja des problemes avec juste un gosub, et il parait que c'est compliqué a gerer les variables d'une procedure locale, alors c'est mal barré

Si j'ai enlevé le gosub, c'est qu'il y'a une très bonne raison, si c'etait facile je l'aurai inclu. Alors tes remarques du genre "Fred, il a un probleme avec un simple gosub", tu peux te les garder, merci. Surtout que ca n'a rien à voir avec les procédures imbriquées (qui sont pour moi une aberration, mais passons).
ps: c'est pas en répétant dans tous tes posts: "et le GIF ca en est où", "toujours pas de gosub dans une procédure" que ca va me mettre la pression, alors évite d'en faire des tonnes, car là ça commence à me gaver menu.
Re: La v5.20 Beta 1 est sortie
Publié : dim. 30/juin/2013 19:25
par G-Rom
Kwai chang caine a écrit :Oui PASCAL le fait
Les procédures imbriquées sont supportées en D et dans certains C, mais pas tous.
http://fr.wikipedia.org/wiki/Fonction_imbriqu%C3%A9e
En fait c'est super utile quand une fonction n'est utilisée que par une autre, elle n'a donc pas besoin d’être publique.
Ca permet aussi pour simplifier le code, comme par exemple dans une enumeration ou pourrait ecrire une seule procédure au lieu de s'en trimbaler deux, une principale et une autre qui se balade dans le code qui ne dépend que de sa procédure mère
Dans les codes ça simplifierait drolement la clarté, quand tu copie une procédure tout ce que tu as besoin est dedans si ça ne sert qu'a elle.
Dans certains cas les API ne savent être utilisées qu'en pointant une autre procédure, c'est le cas non isolé de "EnumWindows_"
Comme dans ce code que j'ai modifié à l'arache..et qui marche évidement pas
Code : Tout sélectionner
Structure result
hWnd.i
String.s
EndStructure
Procedure.s EnumereProcess()
Procedure EnumWindowsProc(hWnd, *lParam.result)
Protected Title.s{260}
GetWindowText_(hWnd, @Title, 260)
If FindString(Title, *lParam\String)
*lParam\String = Title
*lParam\hWnd = hWnd
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
Define param.result
param\String = " 5.10 ("
If Not EnumWindows_(@EnumWindowsProc(), @param)
ProcedureReturn "Found: " + param\String + " with hWnd: " + Str(param\hWnd)
EndIf
EndProcedure
Mais apparemment FRED a deja des problemes avec juste un gosub, et il parait que c'est compliqué a gerer les variables d'une procedure locale, alors c'est mal barré

Oui , je ne suis pas convaincu , si c'est pour "caché" des procédures , le c++ est mieux pensé avec ses membres & méthode privé.
Pour le gosub , vois avec Fred avant qu'il prenne des champis, ooops , trop tard , il en à mangé...

Re: La v5.20 Beta 1 est sortie
Publié : dim. 30/juin/2013 19:31
par SPH
Ne me dites pas que les GOSUB vont disparaitre ??
