Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Ajout de KGF_OBJ.bas à mon site Web | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Ajout de KGF_OBJ.bas à mon site Web Jeu 14 Nov 2013 - 12:39 | |
| J'ai ajouté KGF_OBJ.bas à mon site Web.
Le fichier est accessible sur la page "Externes", par le lien en bas à gauche.
Il y a également, sur la deuxième page consacrée à Panoramic, une rubrique: "Des EDIT avec filtres et masques" avec lien d'aide et un lien de téléchargement spécifiquement pour les procédures xEditFilter et xEditMask.
Dernière édition par Klaus le Dim 17 Nov 2013 - 18:39, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Ven 15 Nov 2013 - 23:12 | |
| J'ai complété KGF_OBJ.bas en y ajoutant TOUS les objets connus à ce jour, y compris les objets invisibles. Ceci permet de gérer l'ensemble des objets sans se préoccuper d'allouer des numéros d'objet. A tout moment, on peut ajouter n'importe quel objet dans un programme sans aucun risque de rencontrer un conflit de numéros d'objet. Et pour avoir accès aux numéros d'objet dont on a besoin, il suffit de créer une variable globale pour chacun de ces objets, et u placer la valeur de no% juste après l'utilisation de la SUB qui crée l'objet. Exemple: - Code:
-
dim no_MaTrackBar% ... xTrackBar(40,10,200,0,0,0,10,300) no_MaTrackBar% = no% ... position no_MaTrackBar%,180
Dernière édition par Klaus le Dim 17 Nov 2013 - 18:40, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Dim 17 Nov 2013 - 18:34 | |
| Quand tu dis KGF_SUB ci-dessus (les deux posts), je suppose qu'il faut lire KGF_OBJ... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Dim 17 Nov 2013 - 18:40 | |
| ....oui... Heureusement que tu est vigilant ! J'ai corrigé. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mar 19 Nov 2013 - 10:56 | |
| Merci, Klaus ! J'essaye de réécrire mes programmes avec ces procédures. Je rencontre quelques petits problèmes : 1) Il semble que dans le SUB xPicture, la hauteur ne soit pas définie : - Code:
-
' paramètres: (top,left,width,height,parent) sub xPicture(t%,l%,w%,h%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : picture no% top no%,t% : left no%,l% : width no%,w% height no%, h% : ' manque if p%>0 then parent no%,p% end_sub
2) La numérotation des objets commence à 1, ce qui fait qu'on a toujours la fenêtre 0 qu'il faut cacher. Ne pourrait-on commencer la numérotation à 0 ? 3) Je n'ai pas compris l'utilité des lignes suivantes. Je les ai désactivées sur ma copie. - Code:
-
message "KGF: on ne peut pas executer ce module directement !" terminate
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mar 19 Nov 2013 - 11:21 | |
| Merci d'avoir essayé. Voici mes réponses: 1. Tu as raison, un oubli bête de ma part. Le fichier KGF_OBJ.bas est corrigé, sur mon WebDav et mon site FunPic. 2. L'objet numéro 0 est réservé pour la form 0, comme tu sais. C'est pourquoi aucun des objets créés par mes procédures ne peut avoir le numéro 0. D'ailleurs, mes procédures font systématiquement no%=no%+1 avant la création de l'objet. La variable no% est censé contenir le dernier numéro d'objet créé. Ainsi, on peut utiliser une des procédures de KGF_OBJ.bas, et faire suivre directement des commandes utilisant no% pour modifier l'objet qui vient d'être créé. Mais tu peux faire commencer la numérotation n'importe où. Il suffit que tu déclares dans ton code dim no% : no% = 200 et tes objets seront créés avec les numéros 201, 202, etc. 3. C'est une protection contre une exécution par erreur de ce code comme si c'était du code Panoramic normal. Essaie ce programme, dans lequel manque volontairement le END avant #INCLUDE: - Code:
-
message "Ca va planter maintenant..." #INCLUDE "KGF_OBJ.bas" Tu vas obtenir un message d'erreur sensé, généré par mon module. Ensuite, mets ces deux lignes en commentaire et relance ce petit code - tu verras la différence ! J'ai d'ailleurs appliqué la même technique das KGF_SUB.bas. Certes, j'aurais pu faire autrement. J'aurais pu mettre "IF 1=2" en première ligne de KGF_OBJ.bas, et "END_IF en dernière ligne. L'exécution intempestive aurait alors tout simplement ignoré mon code et serait passé au-delà. J'ai préféré avoir un signal clair et parlant pour dire où ça ne va pas. | |
| | | Invité Invité
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mar 19 Nov 2013 - 13:08 | |
| Bonjour, Je ne suis pas d'accord de mettre les include à la fin d'un code. C'est pas commun. Si encore on commence un programme vide, et que soit-même on ajoute les #includes, on sait ce qu'on fait. Dernièrement j'ai repris un code à la va vite , juste pour gagner du temps, et finalement je n'ai rien fait. Je n'ai eu que des plantages. J'ai vu ensuite qu'il y avait à la fin les appels de sub de kgf, et c'était pas dit, et comme je ne suis pas à jour et j'ai une autre vie, c'est resté tel-quel! Un #include il faut l'encadrer soit par un teste négatif, ou alors, et cela marche aussi par "sub ma_sub_ou_autre()" et "end_sub" à la fin. Ainsi on peut mettre l'#include en première ligne, et modifier les chemins si nécessaire, vu que #include est une directive. Si le teste comme 'if 1=2' est dans l'#include, on a juste a marqué au début: #include, et conder sans s'occuper du reste. - Citation :
- Certes, j'aurais pu faire autrement. J'aurais pu mettre "IF 1=2" en première ligne de KGF_OBJ.bas, et "END_IF en dernière ligne. L'exécution intempestive aurait alors tout simplement ignoré mon code et serait passé au-delà. J'ai préféré avoir un signal clair et parlant pour dire où ça ne va pas.
Pas d'accord le signal n'est pas clair, si on ne sait pas que la sub n'est pas signalée. De plus il faut parcourir tout le code pour le savoir). Désolé de ne pas te suivre! |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mer 20 Nov 2013 - 0:53 | |
| Ca se défend, Cosmos70. C'est une technique comme une autre.
Pour ma part, je préfère rester avec ma solution, pour la bonne et simple raison qu'en cas d'erreur, les numéros de lignes signalées sont les bons tant que l'erreur est dans le code du programme lui-même. Et dès qu'on voit qu'un numéro de ligne dépasse la taille du programme, on sait automatiquement que c'est dans le #INCLUDE. Il suffit de l'ouvrir dans un autre onglet et soustraire la longueur du programme du numéro de ligne pour avoir la ligne dans le module #INCLUDE. Ou, mieux encore, remplacer la ligne #INCLUDE par le contenu du module par un copier/coller. Mais le programme en lui-même est ainsi plus facile à débugger. En tout cas, c'est comme ça que je fais. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mer 20 Nov 2013 - 9:52 | |
| Merci pour tes réponses Klaus Mon problème, c'est que j'utilisais xForm pour créer la fenêtre principale, laquelle prenait le numéro 1, alors que j'avais déjà la form 0 qu'il me fallait donc cacher ! En définissant les propriétés de la form 0 par la méthode classique, il n'y a plus de problème. J'ai mis un exemple de programme ici : https://panoramic.1fr1.net/t3238-conversion-rgb-hsv | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web Mer 20 Nov 2013 - 10:26 | |
| @jean_debord: Ah, je comprends mieux cette histoire de form 0.
Alors, effectivement, il faut que tu fasses HIDE 0; puis que tu crées ta form application par xForm. Et ensuite, tu as le choix: - soit, tu utilises COMMAND_TARGET_IS no% juste après xForm - soit tu fais dim no_form% ! xForm(...) : no_form0% = bo% puis tu passes no_form0% dans le paramètre p% des autres procédures de KGF_OBJ.bas
Dans les deux cas, ça devrait bien marcher.
Petit inconvéniant de HIDE 0: le process disparaît de la parre des tâches. Solution: au lieu de HIDE 0, tu fais LEFT 0,3000 ce qui rend la form invisible également ! | |
| | | Contenu sponsorisé
| Sujet: Re: Ajout de KGF_OBJ.bas à mon site Web | |
| |
| | | | Ajout de KGF_OBJ.bas à mon site Web | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |