Forum Liberty Basic France

Le 23/03/2015 à 14h22

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Reprise du message précédent

Bonjour tout le monde,

Pardonnez-moi j'ai loupé des interventions, je me fiais à la date du post en pensant que j'avais posté le 14, donc du coup je ne venais pas voir...

Je reprend le problème par où il aurait fallu que je commence : établir un schéma logique de l'application avant de la coder^^.

Voilà un aperçu qui va déjà m'alléger la boucle de dessin des fiches en mettant en sous-programme la préparatrion à l'affichage des titres, lignes, combo, etc...
organigramme.pdf

Le schéma est un peu surprenant car je mélange encore le schéma, qui doit être de la logique pure, avec le programme qui utilise des instructions, mais je pense m'en sortir. Et puis là c'est un test de faisabilité, avec le module Draw de LibreOffice.

Je vous tiens au courant (et merci pour les suggestions).



Edité par Christophe Le 23/03/2015 à 14h24
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 23/03/2015 à 14h31

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Au fait, cassiope01, le combobox unique, c'est une trouvaille ! ça simplifierais pas mal le chose. La mécanique de placement des combobox fonctionne, il n'y aurait qu'à mettre ses résultats dans un tableau, et de lire le tableau pour afficher la combobox à l'endroit survolé par la souris, c'est jouable.

Merci;)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 23/03/2015 à 14h41

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Et oui, vu ton post, j'ai bien cru que je ne m'étais pas très bien exprimé, et que tu n'avais pas vraiment compris la porté de la solution que je proposais... ;)

Mais je suis désolé, cela implique une refonte presque complète de ton code... mais là est le plaisir n'est-ce pas :top

@+

Gilles.
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 23/03/2015 à 21h00

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Chris:
afficher la combobox à l'endroit survolé par la souris

Comme on lit le texte en commençant par le début, j'aurais placé le combo au premier emplacement:
Quand la réponse a été cliquée le combo va au deuxième emplacement
Et ainsi de suite.
____________________
Roro

   
Le 26/03/2015 à 17h07

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Bonjour vous deux,

Ne vous inquiétez pas si je ne répond pas tout de suite, je ne lâche pas l'affaire (trop de choses en même temps plus la vraie vie) mais je travaille à établir un diagramme logique de ce que je veux faire, et à le convertir en programme, et comme j'ai toujours codé "à l'instinct", je nage un peu et ça prend du temps.

Mon code actuel ne me plaît pas, donc aucun regret à le refondre :)

Pour le concept du combobox unique, je tiens à ce qu'il n'y ait pas un ordre d'affichage : par exemple, on peut hésiter sur la réponse à donner au premier combobox et connaître la réponse du second, il est naturel de commencer par ce qu'on connait le mieux, donc ici par le second.

Je n'ai pas encore étudié le Gauss-Jordan_XL et le List_Func_Label.

Aurais-je rêvé, mais Il me semble bien avoir vu sur un forum un type qui avait réussi à définir ses comboboxes avec une chaine de caractères, ce qui aurait été très commode pour les nommer "à la volée". Je ne retrouve pas cette discussion, et ici sur mon ordi, JB ne veut même pas entendre parler de cette manip. Roland, était-ce ce que tu voulais faire ici (posts du 12/03/15 à 18h39 et du 14/03/15 à 12h28)"Pour la rotation de handle, c'est sûr que je vais encore tenter quelques syntaxes improbables". As-tu réussi à obtenir quelque chose ?

A+
Christophe.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 26/03/2015 à 17h46

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Christophe:

Aurais-je rêvé, mais Il me semble bien avoir vu sur un forum un type qui avait réussi à définir ses comboboxes avec une chaine de caractères, ce qui aurait été très commode pour les nommer "à la volée". Je ne retrouve pas cette discussion, et ici sur mon ordi, JB ne veut même pas entendre parler de cette manip. Roland, était-ce ce que tu voulais faire ici (posts du 12/03/15 à 18h39 et du 14/03/15 à 12h28)"Pour la rotation de handle, c'est sûr que je vais encore tenter quelques syntaxes improbables". As-tu réussi à obtenir quelque chose ?

A+
Christophe.

Salut Christophe,
de mémoire il me semble bien que ce genre de manip peut tout à fait se faire APRES la commmande OPEN mais n'est pas acceptée AVANT...
Ce serait l'explication.
Dans ton cas, je n'en vois toujours pas l'utilité mais je n'ai peut-être pas tout saisi...
Comme je te l'ai exposé, les mots à découvrir peuvent tout à fait être des "*******" au départ, et lorsque ta victime le souhaite, elle clique sur un de ces emplacement (celui qu'elle veut) et le combobox apparait à cet endroit afin qu'elle fasse son choix.

Bon courage.

Gilles.



Edité par cassiope01 Le 27/03/2015 à 03h41
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 26/03/2015 à 21h25

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Bonne question, j'y réfléchis... peut-être une confusion de ma part

Je n'ai pas pensé qu'on pouvait ouvrir la fenêtre graphique avant de lire le fichier, il serait alors possible pour le programme de définir directement les combobox au fur et à mesure qu'on les trouve dans le fichier, puisqu'on sera après l'open window, mais la difficulté n'est pas là.

Tant qu'on ne peut pas faire un truc qui me semble tout à fait pertinent, du genre cbx$=nom_fenêtre$+"."+str$(numerodordre) puis COMBOBOX #cbx$,..., avec numéro d'ordre incrémenté à chaque définition de combo trouvée dans le fichier questions, on est obligé de recourir à une quantité prédéfinie de combobox, par exemple, une vingtaine, sans savoir combien seront vraiment utilisés. A raison d'un sous-programme par combobox, copie conforme du combobox précédent sauf pour les index, puis autant de traitements ici où là, ça ne me séduit pas.

'tophe
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 27/03/2015 à 04h32

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Christophe:

Je n'ai pas pensé qu'on pouvait ouvrir la fenêtre graphique avant de lire le fichier, il serait alors possible pour le programme de définir directement les combobox au fur et à mesure qu'on les trouve dans le fichier, puisqu'on sera après l'open window, mais la difficulté n'est pas là.


Je penses que ta confusion serait peut-être plutôt là ;)
J'ai bien peur que tu ne puisses rien définir APRES la commande OPEN.
Tu peux simplement manipuler (pourquoi pas de la façon que tu décris et que j'ai aussi beaucoup utilisée car très pratique) les objets DEJA déclarés AVANT la commande OPEN. Cette 'déclaration' d'objets graphiques ou de contrôle obligatoirement faite AVANT la commande OPEN (afin que celle-ci sache ce dont elle va devoir s'occuper) ne supporte pas cette syntaxe chaînée...

Tout langage a ses limites...
Reste à savoir comment parvenir à ton but avec les outils dont tu disposes. Si tu penses que celui-ci ne te permettra pas d'y parvenir, alors il te faudra essayer un autre langage dont tu penses qu'il te permettra de faire ce que tu veux.

Mais sincèrement, si tu ne perd pas de vue ton objectif, avec un peu d'astuce et de souplesse dans ton cahier des charges (et encore ! je n'en suis pas si sûr), je penses qu'avec JB tu peux vraiment parvenir à tes fins... :top

Dis moi si tu n'a pas bien compris quoi que ce soit dans mon premier post. N'hésite pas. J'y décris une chronologie qui devrait satisfaire à ton cahier des charges... ainsi qu'un formatage légèrement différent du contenu des fichiers textes, mais peut-être plus simple (plus besoin de suffixes ou autre ;) )

Si tu n'as besoin que de manipuler qu'un seul COMBOBOX mobile, tu n'as plus besoin d'en déclarer plusieurs (inconnus en nombre)...
Si tu écris le texte sous forme graphique dans la fenêtre graphique : plus besoin non plus d'un nombre inconnu de STATICTEXT...
Je ne vois donc pas où serait le problème ?

@+

Gilles.



Edité par cassiope01 Le 27/03/2015 à 04h53
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 27/03/2015 à 16h15

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Hey...J'ai trouvé un truc intéressant:

Code VB :
 
t=2
chain$="array"+str$(t)+"$()"
 
COMBOBOX #h.ext, chain$, [event], 110, 30, 80, 30
 
 

Je l'ai essayé avant l'open, le combo s'affiche
En mettant le handle en chaine et le tout dans une for next, ça devrait le faire

Edit: Et ben non, le handle en chaine, ça marche pour accéder à un contrôle existant
Mais pas pour le créer. :(
____________________
Roro

   
Le 27/03/2015 à 18h18

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Aurais-tu essayé ce genre de truc :

Code VB :
 
DIM chain$(12,5)
 
for cb = 1 to 5
  hdle$ = "h.ext"+str$(cb)
  COMBOBOX #hdle$, chain$(12,cb), [event], 110, 30, 80, 30
next
 
 




Edité par cassiope01 Le 27/03/2015 à 18h21
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 27/03/2015 à 20h29

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Code VB :
DIM chain$(12,5)
 
for cb = 1 to 5
  hdle$ = "h.ext"+str$(cb)
  COMBOBOX #hdle$, chain$(12,cb), [event], 110, 30, 80, 30
next


Just Basic dit "handle neet extension: hdle$.???". Apparemment il fait la différence entre hdle$ et #hdle$, même si on a mis le point dans hdle$, pour lui ce sont deux données différentes. Donc il n'y a toujours pas moyen de créer une combo avec une chaîne...

cassiope01:
Reste à savoir comment parvenir à ton but avec les outils dont tu disposes.

Just Basic me convient parfaitement. En fait je n'attend plus après mon programme, mais je le fais pour le fun. On y arrivera, ça ne fait aucun doute, mais je n'ai pas dit quand ;)

cassiope01:
Tu peux simplement manipuler (pourquoi pas de la façon que tu décris et que j'ai aussi beaucoup utilisée car très pratique) les objets DEJA déclarés AVANT la commande OPEN. Cette 'déclaration' d'objets graphiques ou de contrôle obligatoirement faite AVANT la commande OPEN (afin que celle-ci sache ce dont elle va devoir s'occuper) ne supporte pas cette syntaxe chaînée..

c'est là que j'ai momentanément confusionné, en effet il faut déjà les avoir déclarés.

cassiope01:
Dis moi si tu n'a pas bien compris quoi que ce soit dans mon premier post.


Ton premier post est clair, tant pour l'organisation du fichier des questions, pour le déroulement du programme ou la combo unique, mais je ne suis pas encore prêt à réécrire mon code, car je voudrais d'abord comprendre pourquoi l'actuel programme souffre d'un comportement erratique

Et comme je suis parti un peu à l'aventure, et que le programme devient plus complexe au fil du temps, je ne peux plus aligner au feeling les instructions : la priorité est d'établir une "carte" explicite, mais voilà, ça ne s'improvise pas, car il y a un réel apprentissage à faire. Si je suis vraiment coincé, c'est ici. Peut-être suis-je trop pessimiste, vous faites comment, avant de vous lancer dans la rédaction d'un programme ?

Roland:
Edit: Et ben non, le handle en chaine, ça marche pour accéder à un contrôle existant
Mais pas pour le créer. :(

C'est sans doutes ce que j'avais lu dans le forum que je ne retrouve plus, je pense que j'avais interprété en imaginant qu'on pouvait aussi les créer par cette méthode. Mais, au fait, n'est-ce pas le #h.ext que je voulais générer automatiquement ?..

Christophe.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 27/03/2015 à 22h23

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
cassiope:
Aurais-tu essayé ce genre de truc :
COMBOBOX #hdle$, chain$(12,cb),....

Oui, et c'est le: #hdle$ qui coince
J'ai même tenté:
chain$="combobox #....." lol!
J'ai peur de rien, moi.

Dans ce topic, claude créait des contrôles, mais le code généré est mis dans un fichier, et doit donc être compilé (exécuté).

http://libertybasic.fr/forum/topic-143+multi-control-bas.php
____________________
Roro

   
Le 28/03/2015 à 07h23

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Christophe:

Mon code actuel ne me plaît pas, donc aucun regret à le refondre :)

Donc je ne pensais pas que debugger ton code actuel était ta priorité, ni que tu n'en avais plus vraiment besoin en fait :top
Personnellement je ne suis pas convaincu que passer des heures à chercher le grain de sable qui grippe les rouages soit le plus passionnant dans la programmation, au contraire... c'est souvent ce qui pourrait écoeurer :berk j'ai réçemment passer environ 10 heures (sur plusieurs jours bien sûr) à chercher (et trouver) un bug stupide qui m'a mis plutôt en colère :@
Surtout que je ne programme QUE pour le fun :top donc en principe pour mon plaisir...
Je trouve que la programmation c'est tout à fait comme pour un artisan menuisier par exemple, cela nécessite pas mal de réflexion en amont sur la faisabilité avec les outils dont on dispose, la maitrise parfaite du cahier des charges car les surprises peuvent être catastrophiques, mais tout en essayant de garder une certaine souplesse au cas où :heink et aussi beaucoup d'astuce et l'esprit très ouvert pour pouvoir apprendre sans arrêt, mais quel plaisir de voir fonctionner le produit fini :top parfois même mieux qu'on l'imaginais...

Bon courage et bonne continuation

Gilles.



Edité par cassiope01 Le 14/05/2015 à 08h32
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 28/03/2015 à 18h50

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Je partage ton analogie avec l'artisan menuisier, et je reste dans les parages.

En fait je me voyais mal repartir de zéro dans une autre direction, alors que jusqu'à présent j'avais toujours réussi à remettre mon prog sur ses rails. Mais il apparait clairement que si je veux aller plus loin il me faut d'autres outils que la joyeuse et insouciante fronde cheveux aux vents qui jusque là, était ma principale manière de faire...

Merci aussi à Roland pour ses nombreuses tentatives de définir à la demande une quantité non connue à l'avance de combobox : le post reste ouvert à la solution miracle :)

Bonne journée,

'Tophe



Edité par Christophe Le 28/03/2015 à 18h50
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 28/03/2015 à 21h05

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Il y aurait eu une solution si on pouvait lancer un: ".bas" depuis le code, comme on peut lancer un: ".tkn"
Ou si on pouvait dans le code faire d'un: ".bas" un: ".tkn"

Mais il semble qu'on ne puisse faire ni l'un ni l'autre. Grrrrr :\'(
____________________
Roro

   
Le 19/05/2015 à 13h26

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Pour éviter de trop chambouler en déplaçant les topics,
je mets ici le lien pour la suite de cette histoire
La suite ----> http://libertybasic.fr/forum/topic-393-1.php
____________________
Roro

   

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie