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 |
|
|
| Pseudo-objets GLIST et TAB avec des procédures | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Pseudo-objets GLIST et TAB avec des procédures Mer 26 Sep 2012 - 23:17 | |
| Avant de mettre ce gros morceau sur mon site internet, j'ai tout mis à disposition s=ur MyDrive. C'est la version actualisée de GLIST et TAB réalisée à l'aide de procédures. Le programme principal en devient beaucoup plus lisible, et c'est beaucoup plus facile à utiliser. Chaque fonction est exécutée par une procédure avec des paramètres simples, et d'éventuelles valeurs sont retournées avec des variables créées automatiquement au nom de la procédure, éventuellement avec un % ou un $ à la fin, selon les cas. Un regret: pour le moment, il y a un BUG avec la directive #INCLUDE: si le module inclus par #INCLUDE contient une procédure, on ne peut pas appeler celle-ci depuis le programme principal ! C'est pourquoi il faut inclure mes modules GLIST_SUB.bas et TAB_SUB.bas par copier/coller, à la fin du programme application au lieu d'utiliser #INCLUDE. J'espère que ce sera provisoire. Essayez demo_TAB_SUB.bas - vous serez surpris ! Voici l'accès: Site: http://www.mydrive.ch/Identifiant: panoramic@klausgunther Mot de passe: panoramic123 Dossier: GLIST et TAB avec SUB Voici, à titre d'exemple, le programme principal de demo_TAB_SUB.bas: - Code:
-
' demo_TAB_SUB.bas
height 0,600
TAB_initialize()
TAB_create(20,200,400,40,90,6) : ' créer le TAB 20 avec 6 onglets TAB_mode("silent") TAB_font(20,"Arial Black","BI") : ' police et attributs pour le TAB 20 TAB_tab_font(20,3,"Arial","U") : ' police et attributs pour l'onglet 3
TAB_create(30,200,500,250,50,9) : ' créer le TAB 30 avec 9 onglets TAB_color(30,255,255,0) : ' couleur du tab 30 TAB_tab_color(30,5,78,190,230) : ' couleur de l'onglet 5 TAB_inactive(30,6) : ' inactiver l'onglet 6
TAB_create(40,100,300,10,150,3) : ' créer el TAB 40 avec 3 onglets TAB_TAB_add(30,5,40) : ' placer le TAB 30 dans l'onglet 5 du TAB 40
' créer les objets qui seront placés dans les différents onglets alpha 100 : top 100,10 : left 100,10 : caption 100,"Onglet 1 alpha 1" alpha 101 : top 101,30 : left 101,30 : caption 101,"Onglet 1 alpha 2" alpha 102 : top 102,60 : left 102,10 : caption 102,"Onglet 3 alpha 3"
edit 300 : top 300,20 : left 300,20 : text 300,"Onglet 3 edit 1" edit 301 : top 301,50 : left 301,20 : text 301,"Onglet 3 edit 2" edit 302 : top 302,80 : left 302,20 : text 302,"O. 1 et 3 editg 3"
TAB_label(20,3,"Essai") : ' remplacer le libellé de l'onglet 3 to TAB 20 TAB_label(20,4,"Test") : ' remplacer le libellé de l'onglet 4 to TAB 20 TAB_insert(20,2,"Insertion") : ' insérer un onglet après l'onglet 2 TAB_object_add(20,1,100) : ' placer l'objet 100 dans onglet 1 de TAB 20 TAB_object_add(20,1,101) : ' placer l'objet 101 dans onglet 1 de TAB 20 TAB_object_add(20,3,102) : ' placer l'objet 102 dans onglet 3 de TAB 20 TAB_delete(20,2) : ' supprimer onglet 2 TAB_remove(20,1,100) : ' enlever l'objet 100 de l'onglet 1 TAB_object_add(30,3,300) : ' placer l'objet 300 dans onglet 3 de TAB 30 TAB_object_add(30,3,301) : ' placer l'objet 301 dans onglet 3 de TAB 30 : ' placer l'objet 302 dans TAB_object_add(30,1,302) : ' onglet 1 de TAB 30 TAB_object_add(30,3,302) : ' ET dansonglet 3 de TAB 30 TAB_select(30,3) : ' sélectionner onglet 3 de TAB 30
TAB_Event_on(30) : ' autoriser les évènements sur TAB 30 TAB_Event_on(40) : ' autoriser les évènements sur TAB 40
' ajout Nardo26
GLIST_initialize() GLIST_create(50,8,90,10,190) : ' créer une GLIST de 8 lignes color 51,220,220,220 : ' avec une couleur TAB_GLIST_add(20,3,50) : ' placer la GLIST 50 dans l'onglet 3 de TAB 20 GLIST_create(60,8,90,10,190) : ' créer une GLIST de 8 lignes TAB_GLIST_add(30,3,60) : ' placer la GLIST 60 dans l'onglet 3 de TAB 30
end
' ============== fin application (ici, programme de démo)
' #INCLUDE "TAB_SUB.bas" ' #INCLUDE "GLIST_SUB.bas"
Les #INCLUDE sont mis en commentaire à la fin du programme pour la raison indiquée ci-dessus. Le module du même nom sur MyDrive contient la totalité du source (2234 lignes). | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 1:14 | |
| hello Klaus ! Je viens de récupérer demo_TAB_sub sur mydrive et je retrouve un vieux problème : impossible de charger TAB_vide.bmp en ligne 986... Heureusement que j'avais le bmp qui trainait dans un coin... Une question : pourquoi l'appel de TAB_Initialize tu ne le fait pas dans TAB_create ? on gagnerai un appel... (même remarque pour GLIST) tu déplaces le test de l'existence TAB_create_exit dans TAB_create pour lancer TAB_Initialize et le tour est joué... | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 11:03 | |
| @Klaus: Bizarre. Ca fait 2 fois que tu me dis qu'un SUB dans un include n'est pas pris en compte. Pourtant, si je fais ce programme principal: - Code:
-
dim a$ affiche() message a$ end #include "sub.bas" avec dans le fichier sub.bas: - Code:
-
sub affiche() a$="OK" end_sub Tout fonctionne ! Est-ce que tu ne serais pas en train d'utiliser directement la version panoramic.exe que je t'avais donné et qui permet de court-circuiter l'éditeur ? Car dans ce cas, ça ne peut pas fonctionner, il y a l'erreur "157 Call of unknown SUB" #include étant une directive pour l'éditeur, c'est l'editeur qui inclut le fichier avant de passer le source complet à panoramic.exe #include est totalement inconnu de panoramic.exe | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 13:13 | |
| Je viens de faire le test , en effet cela fonctionne... (bizarre que tous le monde ce soit fait piégé et qu'on n'a pas vérifié chacun de notre côté ) même en faisant ceci: - Code:
-
#include "..\..\Lib\sub.bas" dim a$ affiche() message a$ end
sub.bas: - Code:
-
LABEL LibEndSub : GOTO LibEndSub sub affiche() a$="OK" end_sub LibEndSub: Il n'y pas de pb... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 23:33 | |
| @Jack:
J'ai refait les tests et vérifié: il est certain que je n'utilise PAS PANORAMIC.exe. Je suis bien sous l'éditeur V0.24i2. Et j'avais bien le message "157 Call of unknown SUB".
Maintenant, j'ai tout reconstruit et refait les tests, ET CA PASSE !
Je ne comprends absolument pas ce qui se passe, car il n'y a pas d'autre version de Panoramic entretemps, je n'ai pas changé mes sources. Simplement, comme je me suis absenté aujourd'hui, j'ai arrêté l'ordinateur et je l'ai relancé. Et miracle - plus de problème avec les SUB dans des fichiers ajoutés par #INCLUDE !
C'est génial, quoique un peu troublant pour moi. J'ai l'habitude de vérifier les choses, en faisant de petits morceaux de code, un peu à la manière de l'exemple que tu as donné. C'est ce que j'avais fait avant de faire la première mention avec le mot "bug", quoique pas dans la rubrique officielle réservée au signalement des bugs.
Aujourd'hui, je me trouve un peu bête d'avoir suscité tant de remous pour un problème en apparence sans lien direct avec Panoramic.
Il est vrai que les jours précédents, j'avais simplement mis mon système en "veille prolongée" pour pouvoir garder mes utilitaires ouverts, Firefox dans la configuration de recherche en cours, etc. Hier soir, j'ai fait un véritable arrêt, et je viens de tout relancer. Et il n'y a plus de problème. Et dorénavant, c'est ce que je vais faire systématiquement si j'ai l'impression d'avoir découvert une anomalie.
Alors, je te présente mes excuses et je promets d'être encore plus circonspect à l'avenir !
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 23:47 | |
| @Nardo26
1. Tu as parfaitement raison pour TAB_vide.bmp. J'ai oublié de le mettre dans le dossier sur MyDrive. Voilà qui est rectifié.
2. Pour la fonction d'initialisation, je pourrais effectivement la déplacer dans la fonction "create", et ce qussi bien pour GLIST que pour TAB. Ceci dit, cela n'aurait un sens que si la fonction "create" était systématiquement la première fonction utilisée, ce qui n'est pas forcément le cas. On pourrait par exemple choisir d'utiliser d'abord la fonction "mode" pour déterminer la manière de gérer les erreurs, avant de faire la première création. En fait, il faudrait l'inclure dans toutes les fonctions, en réalité.
J'ai préféré de séparer clairement l'initialisation du système du reste des fonctions, et en cela je suis cohérant avec la façon de gérer d'autres gros groupes de fonctions dans Delphi, par exemple. C'est le cas par exemple des fonction MIDI par KGF.dll, pour nommer que celle-ci. Et pour le moment, la fonction d'initialisation pour GLIST et TAB n'a aucun paramètre, mais cela changera certainement dans un proche avenir, ne serait-ce que pour paramétrer le nombre maxi de pseudo-objets possible (actuellement 20), ou le nombre maxi d'objets sur un seul onglet d'un objet TAB. Là encore, c'est codé en dur actuellement.
C'est donc pour me garder cette souplesse que je préfère rester avec une fonction d'initialisation séparée. Par contre, ce que je vais ajouter rapidement, c'est un test au début des autres fonctions pour vérifier que l'initialisation a bien été faite (ou dans l'initialisation pour interdire un second appel). | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Jeu 27 Sep 2012 - 23:49 | |
| @tous: GLIST et TAB sont pleinement opérationnels. Il suffit d'ajouter, à la fin de votre programme, les lignes suivantes: pour GLIST: - Code:
-
#INCLUDE GLIST_SUB.bas pour TAB (incluant automatiquement GLIST): - Code:
-
#INCLUDE TAB_SUB.bas #INCLUDE GLIST_SUB.bas Toutes les procédures GLIST_xxx et TAB_xxxd sont alors utilisables. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 0:29 | |
| Je viens d'ajouter des contrôles pour empêcher la double initialisation ainsi que l'emploi des procédures autres que l'initialisation si cette dernière n'est pas encore faite. Simple, mais efficace.
EDIT
J'ai ajouté le fichier TAB_SUB.rtf qui est la doc du pseudo-objet TAB dans cette version, avec les procédures. Cette documentation reprend l'ensemble des procédures utilisables, en expliquant leurs paramètres. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 1:45 | |
| - Klaus a écrit:
- @Nardo26
1. Tu as parfaitement raison pour TAB_vide.bmp. J'ai oublié de le mettre dans le dossier sur MyDrive. Voilà qui est rectifié.
2. Pour la fonction d'initialisation, je pourrais effectivement la déplacer dans la fonction "create", et ce aussi bien pour GLIST que pour TAB. Ceci dit, cela n'aurait un sens que si la fonction "create" était systématiquement la première fonction utilisée, ce qui n'est pas forcément le cas. Hello Klaus! - Pour le Tab_vide, pourquoi tu ne génèrerais pas le fichier si celui-ci est absent ? (un FILE_SAVE d'un picture...)
- Je pensais que la fct Create était forcément la 1ère... j'avais zappé "mode"
C'est vraiment cool les GLIST ! Maintenant que les sub apportent un peu plus de souplesse, il y aurait peut être moyen de revoir GLIST_select_on et GLIST_select_off (choix/définition de la couleur par exemple) | |
| | | Invité Invité
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 8:35 | |
| - Klaus a écrit:
- J'ai refait les tests et vérifié: il est certain que je n'utilise PAS PANORAMIC.exe. Je suis bien sous l'éditeur V0.24i2. Et j'avais bien le message "157 Call of unknown SUB".
J'ai l'impression que Panoramic s’abîme avec le temps. Je ne sais pas si c'est Panoramic qui est en cause ou Windows. C'est pareil pour les problèmes avec les commentaires. Je remarque aussi qu'à la fermeture d'un programme, il reste souvent une trace dans le gestionnaire de tâche. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 9:04 | |
| @Nardo26: Qu'est-ce que tu entends par - Citation :
- il y aurait peut être moyen de revoir GLIST_select_on et GLIST_select_off (choix/définition de la couleur par exemple)
Il s'agit de la "révélation" qui est définie par la foncton GLIST_revelation(R%). La révélation désigne la manière dont une ligne sélectionnée est affichée. Une ligne est sélectionnée par un clic sur la ligne, ou lar la fonction GLIST_item_select(n%). La paramètre R% de GLIST_revelation peut avoir les valeurs suivantes: - Citation :
0 = pas de révélation 1 = révéler par une flèche "=> " 2 = révéler par écriture en gras 3 = révéler par le écriture en sousligné 4 = révélation par écriture blanche sur fond bleu Il est très facile à ajouter d'autres révélations, en changeant les couleurs du fond et des caractères pour la révélation, pour des codes 5, 6, ... C'est de ça que tu parles ? | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 12:57 | |
| Oui c'est bien de cela que je parle : pouvoir définir une couleur rvb pour la révélation. Mais on peut aller plus loin: En partant de ton code des GLISTs, je l'avais adapté pour mes besoins : chaque ligne (même celles qui ne sont pas sélectionnées) avaient des attributs graphiques. Exemple : | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 28 Sep 2012 - 13:10 | |
| @ Nardo26, Belle interface ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures Ven 28 Sep 2012 - 14:54 | |
| Bien sûr, Nardo26 ! C'est à cela que servent les attributs graphiques, et c'est la raison du G dans GLIST: Cela signifie GraphicLIST. C'est la procédure GLIST_attributs qui fait cela. Dans la démo, je me suis limité aux attributs 1 )à 3, mais on peut aller jusqu'à 20 attributs différents ( encore une limite à rendre paramétrable par GLIST_initialize...) | |
| | | Contenu sponsorisé
| Sujet: Re: Pseudo-objets GLIST et TAB avec des procédures | |
| |
| | | | Pseudo-objets GLIST et TAB avec des procédures | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |