Epb PHOENIX 2.68
Re: Epb PHOENIX 2.68
Merci
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
sorry , la derniere version de EPB est gravement buggé !!
elle ne reponds plus lorsqu'on clique sur un mots des listes de droites le "saut" ne se fait pas dans le code ...(procedure/constante/signets)*
je suis dessus .....
elle ne reponds plus lorsqu'on clique sur un mots des listes de droites le "saut" ne se fait pas dans le code ...(procedure/constante/signets)*
je suis dessus .....
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
je suis confronté a un bug tres tres bizarre !!
voyez plutot :
tout se passe comme si mon gadget listview() n'existait plus !!
je click sur un mot, et un simple GetGadgetText(#listview_procedure) ne renvoit rien !!
j'ai ce probleme depuis que j'ai viré l'editeur de bas de page ....
c'est surement lié a une histoire avec les PanelGadget() et autres SplitterGadget() ....
je rame...je rame ... je rame ....
bon ça montre que coder en Purebasic ... ben c'est pas si simple
[reedit] en Purbasic 5.42 et en purebasic 5.70 !! c'est pareil
voyez plutot :
tout se passe comme si mon gadget listview() n'existait plus !!
je click sur un mot, et un simple GetGadgetText(#listview_procedure) ne renvoit rien !!
j'ai ce probleme depuis que j'ai viré l'editeur de bas de page ....
c'est surement lié a une histoire avec les PanelGadget() et autres SplitterGadget() ....
je rame...je rame ... je rame ....
bon ça montre que coder en Purebasic ... ben c'est pas si simple
[reedit] en Purbasic 5.42 et en purebasic 5.70 !! c'est pareil
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
Utilise les bindevent & cie au lieu de je suis sur d'une groooosse boucle qui gère tout les events possible. t'aura moins de bugs comme cela.
Re: Epb PHOENIX 2.68
C'est pas sûr... Les Bindevents ont aussi 3 inconvénients:
1. Quand un gadget est supprimé, les événements liés ne sont pas relâchés
(Fred va voir ce qu'il peut faire)
https://www.purebasic.fr/english/viewto ... =4&t=73038
2. Les Bindevents se produisent en permanence indépendamment les uns des autres, un objet peut donc être modifié (presque) en même temps par deux procédures alors que dans une boucle normale d’événement, le système doit attendre la fin des actions avant de rendre la main.
3. Il faut écrire une procédure (donc aussi une éventuelle déclaration) pour chaque BinEvent, même si on n'a qu'une seule instructions dans la procédure (ex: End)
Cela dit, rien n'empêche de mettre les deux systèmes: BinEvent étant par exemple très bien pour afficher une pendule qui ainsi s'affiche toujours même en bougeant une fenêtre.
@Zorro
Il ne te manque pas quelque-chose ?
Pour revenir au panel il te faut SetActiveGadget( ET SetGadgetState( (numéro du panel)
1. Quand un gadget est supprimé, les événements liés ne sont pas relâchés
(Fred va voir ce qu'il peut faire)
https://www.purebasic.fr/english/viewto ... =4&t=73038
2. Les Bindevents se produisent en permanence indépendamment les uns des autres, un objet peut donc être modifié (presque) en même temps par deux procédures alors que dans une boucle normale d’événement, le système doit attendre la fin des actions avant de rendre la main.
3. Il faut écrire une procédure (donc aussi une éventuelle déclaration) pour chaque BinEvent, même si on n'a qu'une seule instructions dans la procédure (ex: End)
Cela dit, rien n'empêche de mettre les deux systèmes: BinEvent étant par exemple très bien pour afficher une pendule qui ainsi s'affiche toujours même en bougeant une fenêtre.
@Zorro
Il ne te manque pas quelque-chose ?
Pour revenir au panel il te faut SetActiveGadget( ET SetGadgetState( (numéro du panel)
Re: Epb PHOENIX 2.68
Pour le 1 , je ne savais pas, perso, quand j'utilise PB pour faire de l'UI rapidos, j'utilise un système perso qui est plus efficace que celui fourni.Marc56 a écrit :C'est pas sûr... Les Bindevents ont aussi 3 inconvénients:
1. Quand un gadget est supprimé, les événements liés ne sont pas relâchés
(Fred va voir ce qu'il peut faire)
https://www.purebasic.fr/english/viewto ... =4&t=73038
2. Les Bindevents se produisent en permanence indépendamment les uns des autres, un objet peut donc être modifié (presque) en même temps par deux procédures alors que dans une boucle normale d’événement, le système doit attendre la fin des actions avant de rendre la main.
3. Il faut écrire une procédure (donc aussi une éventuelle déclaration) pour chaque BinEvent, même si on n'a qu'une seule instructions dans la procédure (ex: End)
Cela dit, rien n'empêche de mettre les deux systèmes: BinEvent étant par exemple très bien pour afficher une pendule qui ainsi s'affiche toujours même en bougeant une fenêtre.
pour le 2 , non, PB doit surement utilisé le pattern observer , c'est la même chose qu'une boucle d'évent normale , sauf qu'ici c'est une "pile" d'événement qui est lié à un éventuel callback. ( chaque évent déclenche un callback à ceux qui on souscrit à l'évent , rf: le pattern observer ) , la pile dépasse rarement 2 events.
pour le 3 , oui ca évite d'avoir un gestionnaire des event de 1000 lignes et de ne plus pouvoirs les débugger car sans faire exprès et sans que le compilateur bronche , on utilise 2x la même variable pour des usages différents par ex... , la preuve , dorro et son bug , qui est surement dû à un cafouillage de sa part dans son code fossilisé et spaghétifié...
Re: Epb PHOENIX 2.68
Marc56 a écrit : @Zorro
Il ne te manque pas quelque-chose ?
Pour revenir au panel il te faut SetActiveGadget( ET SetGadgetState( (numéro du panel)
oui les bindevent, c'est a prendre comme des CallBack !
@Marc , le probleme avec SetGadgetState(#listview_procedure,numero de selection)
c'est que justement, il faut connaitre la selection...et chez moi depuis ce probleme , ça me renvoi 0 !!!
en fait tout fonctionne si lorsque je clique sur ma liste , sur un nom de procedure (ou de constante ou de signet)
je maintient longtemp le clik et que je bouge un poil la souris...
là l'event recupere bien le texte choisi avec .GetGadgetText(#listview_procedure)
c'est bien un probleme lié a la synchro , et effectivement, je vais peut etre devoir binder (ou mettre en CallBack)
ces gadgets ...
ce qui est bizarre c'est que je n'avais pas ce probleme avant...
ce qui est bizarre c'est que lorsque je clique sur la liste des procedures par exemple, l'evenement a bien lieu
c'ets seulement le retour du contenu du gadget listview avec GetGadgetText(#listview_procedure)
qui me renvoi rien ... c'est un truc de dingue ....
je vais suivre la voie des callback histoire de voir ....
ps: lorsque je force une selection avec SetGadgetState(#listview_procedure,numero de selection)
là ça me renvoi bien le contenu du gadget listview , ce qui prouve qu'il y a bien quelque chose dedans
c'est seulement lorsque j'utilise la souris.. ça semble bloquer ... ..
bon je retourne a mes tests , je lacherai rien de toute façons
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
c'est bon j'ai trouvé le probleme
c'est que je mettais l'appel de ma procedure de mise a jours des listview
dans le clique souris gauche...
cela devait lui prendre trop de temps
et probablement effacer le numero de la selection qu'on venait de faire...
bon je prefere ça ... a moi de trouver une soluce maintenant
Merci a vous pour votre aide
c'est que je mettais l'appel de ma procedure de mise a jours des listview
dans le clique souris gauche...
cela devait lui prendre trop de temps
et probablement effacer le numero de la selection qu'on venait de faire...
bon je prefere ça ... a moi de trouver une soluce maintenant
Merci a vous pour votre aide
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
Quand tout marche bien, oui. Sinon, ça se blinde. Pour le CanvasGadget, c'est une orgie d'events (enfin pour l'instant...) et tu as des variables tampons qu'il faut remettre à zéro que les Binds/Unbinds ne gèrent pas, du moins, le code devient incompréhensibles, alors que ça coule de source sans les Binds/Unbinds.G-Rom a écrit :la pile dépasse rarement 2 events
Donc, en fait, tout dépend de ce qu'on gère comme gadgets/fenêtres.
Re: Epb PHOENIX 2.68
Non, pas dans le cadre d'un pattern observer. j'ai dit des connerie plus haut, il n'y a pas de pile dans le cadre d'un observer pattern ( les binds & cie )Ollivier a écrit :Quand tout marche bien, oui. Sinon, ça se blinde. Pour le CanvasGadget, c'est une orgie d'events (enfin pour l'instant...) et tu as des variables tampons qu'il faut remettre à zéro que les Binds/Unbinds ne gèrent pas, du moins, le code devient incompréhensibles, alors que ça coule de source sans les Binds/Unbinds.G-Rom a écrit :la pile dépasse rarement 2 events
Donc, en fait, tout dépend de ce qu'on gère comme gadgets/fenêtres.
Code : Tout sélectionner
Prototype notify(what.l, *data, size.l)
Structure sObserver
notify.notify
EndStructure
Structure sSubject
List *observer.sObserver()
EndStructure
Procedure Subject_NotifyObservers(*s.sSubject, what.l, *data, size.l)
ForEach *s\observer()
If *s\observer()\notify
*s\observer()\notify(what,*data,size)
EndIf
Next
EndProcedure
Procedure Subject_AttachObserver(*s.sSubject, *o.sObserver)
AddElement(*s\observer()) : *s\observer() = *o
EndProcedure
Procedure Subject_RemoveObserver(*s.sSubject, *o.sObserver)
ForEach *s\observer()
If *o = *s\observer()
DeleteElement(*s\observer())
EndIf
Next
EndProcedure
; EXEMPLE :
;
Structure SondeDeTemperature Extends sSubject
celcius.f
EndStructure
Procedure ControleTemperature(*sonde.SondeDeTemperature)
If *sonde\celcius > 37.5
Subject_NotifyObservers(*sonde,0,@*sonde\celcius,#Null)
EndIf
EndProcedure
Structure Doctor Extends sObserver
tempMax.f
EndStructure
Procedure Doctor_Notified(what.l, *data, size.l)
If what = 0
Debug "le doc a recu un event : " + Str(what)
Debug "Temperature : " + PeekF(*data)
End
EndIf
EndProcedure
dansleq.SondeDeTemperature
Doc1.Doctor
Doc1\notify = @Doctor_Notified()
Subject_AttachObserver(@dansleq, @Doc1)
Repeat
ControleTemperature(@dansleq)
dansleq\celcius + 0.5
Debug "Mesure de la temperature : "+StrF(dansleq\celcius)
ForEver
Re: Epb PHOENIX 2.68
Tout à fait, mais sans l'instance << doctor >>. Et puis c'était assorti d'une impression de feu de couilles, pendant 6 semaines. C'est plutôt l'instance PincementSciatique sans la sécu à 37.5°C : quand les impressions sont bien réelles, tandis qu'il s'agit d'une longue illusion...
Re: Epb PHOENIX 2.68
RE ...
bon j'ai mis a jour mon EPB
toujours le meme lien de telechargement (remis le compteur a zero )
http://michel.dobro.free.fr/STLINE/down ... on/29-epb/
j'ai vu que le "Case" ne creait pas de décalage a la mise en forme du code (Ctrl+Tab)
voila qui est fait ...
pour info , la complétion des procedure/structures/constantes ne s'active que sur :
le bouton souris droit
Ctrl+Tab ou Shift+tab (respectivement tabulation du code ou détabulation du code)
comme c'est le processus qui prends le plus de temps,ce sera tout...
pour la mise a jour des listviews (procedures/constante/signets)
ça se fait avec :
la touche Return
les 2 touches Flechéés haut et Bas
le bouton droit de la souris (qui appel aussi le menu) ...
ça me parait bien fonctionnel comme ça
j'ai aussi amélioré la vitesse lorsqu'on passe d'un onglet de code a l'autre
les listviews ne sont plus Recrées a partir de zero , mais leur contenu est sauvegardé pour chaque onglet
ainsi lorsqu'on zappe d'un onglet a l'autre les listes sont juste rechargé avec leur anciens contenu ...
(avant je recreait tout en rescannant chaque code )
j'ai corrigé l'affichage des proceduredll dans le listview procedures qui affichait "Dll toto"
bon .. ça devrai etre bon maintenant .. merci pour votre patience (a Micoute pour son utilisation quotidienne) et aux Testeur
(Marc56)
allez pour le fun , une petite visite du code :
bon j'ai mis a jour mon EPB
toujours le meme lien de telechargement (remis le compteur a zero )
http://michel.dobro.free.fr/STLINE/down ... on/29-epb/
j'ai vu que le "Case" ne creait pas de décalage a la mise en forme du code (Ctrl+Tab)
voila qui est fait ...
pour info , la complétion des procedure/structures/constantes ne s'active que sur :
le bouton souris droit
Ctrl+Tab ou Shift+tab (respectivement tabulation du code ou détabulation du code)
comme c'est le processus qui prends le plus de temps,ce sera tout...
pour la mise a jour des listviews (procedures/constante/signets)
ça se fait avec :
la touche Return
les 2 touches Flechéés haut et Bas
le bouton droit de la souris (qui appel aussi le menu) ...
ça me parait bien fonctionnel comme ça
j'ai aussi amélioré la vitesse lorsqu'on passe d'un onglet de code a l'autre
les listviews ne sont plus Recrées a partir de zero , mais leur contenu est sauvegardé pour chaque onglet
ainsi lorsqu'on zappe d'un onglet a l'autre les listes sont juste rechargé avec leur anciens contenu ...
(avant je recreait tout en rescannant chaque code )
j'ai corrigé l'affichage des proceduredll dans le listview procedures qui affichait "Dll toto"
bon .. ça devrai etre bon maintenant .. merci pour votre patience (a Micoute pour son utilisation quotidienne) et aux Testeur
(Marc56)
allez pour le fun , une petite visite du code :
Dernière modification par Zorro le jeu. 27/juin/2019 11:01, modifié 1 fois.
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
Ton IDE tiens dans un seul fichier ? chapeau l'artiste, surtout pouvoir y replonger quelques année après... je l'aurais pas fait... surtout avec un thème cyberpunk qui brûle n'importe quel rétine
Re: Epb PHOENIX 2.68
ben si ; tu aurai pu le faire aussi, car chacun fait sa propre tambouille , le plus difficile c'est de plonger dans le code d'un autreG-Rom a écrit :Ton IDE tiens dans un seul fichier ? chapeau l'artiste, surtout pouvoir y replonger quelques année après... je l'aurais pas fait... surtout avec un thème cyberpunk qui brûle n'importe quel rétine
mais dans le siens... on a tous nos petits trucs pour se repérer, puisque par définition, on se connais tres bien sois-meme
de plus j'ai vachement commenté mon source donc...
oui l'editeur est d'un seul tenant, j'aime pas les "includes" a débugger , c'est 'horreur
par contre EPB est un seul programme, et il a ses satellites , qui sont aussi des exe a part entiere
par exemple le Greeting est un prg séparé , la partie Parametres c'est aussi séparé ...
je les lance par des RunProgramme()...
c'est un choix des le debut ... j'aime vraiment pas les includes... meme si je comprends ceux qui y ont recours..
ps: ça te prouve que si j'aime bien manger les spaghettis , en code, j'essaie d'eviter ... meme si j'ai encore recours au "GOTO" !
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Epb PHOENIX 2.68
Zorro a écrit :ben si ; tu aurai pu le faire aussi, car chacun fait sa propre tambouille , le plus difficile c'est de plonger dans le code d'un autreG-Rom a écrit :Ton IDE tiens dans un seul fichier ? chapeau l'artiste, surtout pouvoir y replonger quelques année après... je l'aurais pas fait... surtout avec un thème cyberpunk qui brûle n'importe quel rétine
mais dans le siens... on a tous nos petits trucs pour se repérer, puisque par définition, on se connais tres bien sois-meme
de plus j'ai vachement commenté mon source donc...
oui l'editeur est d'un seul tenant, j'aime pas les "includes" a débugger , c'est 'horreur
par contre EPB est un seul programme, et il a ses satellites , qui sont aussi des exe a part entiere
par exemple le Greeting est un prg séparé , la partie Parametres c'est aussi séparé ...
je les lance par des RunProgramme()...
c'est un choix des le debut ... j'aime vraiment pas les includes... meme si je comprends ceux qui y ont recours..
ps: ça te prouve que si j'aime bien manger les spaghettis , en code, j'essaie d'eviter ... meme si j'ai encore recours au "GOTO" !
J'essaye d'avoir une approche pro quand je code, des trucs bien séparé , je sépare le rendu de la logique ou des événements par exemple, je ne me vois pas faire cela d'un seul tenant.
mais sincèrement , je te tire mon chapeau , j'ai vu peu de gros projet , tenir dans un seul fichier , car EPB , même si ce n'est qu'un IDE, reste un gros projet pour un gars seul. J'aime cela car cela represente le type même du gars qui bricole chez lui, on sent que tu est le premier utilisateur de ton ide , on sent la passion qui y a eu à faire cela, je trouve cela inspirant quelque part , je vais pas faire mon kcc couplé avec ollivier , mais... , mes respects.