PureBasic

Forums PureBasic
Nous sommes le Sam 24/Oct/2020 5:11

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 58 messages ]  Aller à la page Précédente  1, 2, 3, 4  Suivante
Auteur Message
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Dim 23/Juin/2019 11:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
Merci :)

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 10:45 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
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 ..... :roll: :roll:

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 11:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
je suis confronté a un bug tres tres bizarre !!

voyez plutot :

Image

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 :mrgreen:


[reedit] en Purbasic 5.42 et en purebasic 5.70 !! c'est pareil 8O

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 13:10 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3494
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.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 14:23 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1848
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/viewtopic.php?f=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)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 16:01 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3494
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/viewtopic.php?f=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 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.
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é... ;)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 17:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
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... 8O
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 :)

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 17:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
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 ;)

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 18:03 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3673
Localisation: Encore ?
G-Rom a écrit:
la pile dépasse rarement 2 events
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.

Donc, en fait, tout dépend de ce qu'on gère comme gadgets/fenêtres.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 18:33 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3494
Ollivier a écrit:
G-Rom a écrit:
la pile dépasse rarement 2 events
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.

Donc, en fait, tout dépend de ce qu'on gère comme gadgets/fenêtres.


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 )

Code:
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Lun 24/Juin/2019 21:43 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3673
Localisation: Encore ?
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...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Mar 25/Juin/2019 12:32 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
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 :lol: )

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 :

Image

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Dernière édition par Zorro le Jeu 27/Juin/2019 11:01, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Mar 25/Juin/2019 13:42 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3494
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 :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Mar 25/Juin/2019 15:52 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
G-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 :)


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 autre
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" ! :lol:

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb PHOENIX 2.68
MessagePosté: Mar 25/Juin/2019 18:04 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3494
Zorro a écrit:
G-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 :)


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 autre
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" ! :lol:



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. ;)


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 58 messages ]  Aller à la page Précédente  1, 2, 3, 4  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye