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 |
|
|
| PANORAMIC et informatique de gestion (les tableaux) | |
|
+6Jack Yannick Minibug papydall Klaus Ouf_ca_passe 10 participants | |
Auteur | Message |
---|
Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Merci Jean-Claude Lun 3 Oct 2016 - 12:16 | |
| | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Lun 3 Oct 2016 - 20:46 | |
| Tu peux utiliser la commande SORT de l’invite de commande. - Syntaxe :
- Code:
-
SORT [/R] [/+n] [/M kilo-octets] [/L locale] [/REC octets_enregistrement] [[lecteur1:][chemin1]nom_fichier1] [/T [lecteur2:][chemin2]] [/O [lecteur3:][chemin3]nom_fichier3] /+n Spécifie à partir de quel caractère, n, commencer chaque comparaison. /+3 indique que chaque comparaison doit commencer au 3ème caractère de chaque ligne. Les lignes de moins de n caractères sont révisées avant les autres lignes. Par défaut, les comparaisons commencent au premier caractère de chaque ligne. /L[OCALE] locale Remplace les paramètres régionaux par défaut du système avec ceux spécifiés. Les paramètres ""C"" donnent la séquence de révision la plus rapide et sont actuellement le seul choix. Le tri ne tient pas compte de la casse. /M[EMORY] kilo-octets Spécifie la quantité en kilo-octets de mémoire principale à utiliser pour le tri. La taille mémoire ne peut jamais être inférieure à 160 kilo-octets. Si la taille mémoire est spécifiée, la quantité exacte sera utilisée pour le tri, indépendamment de la quantité de mémoire principale disponible.
De meilleurs résultats sont en général obtenus en n'indiquant pas de taille mémoire. Par défaut, le tri sera fait en une seule passe (pas de fichier temporaire) si la taille mémoire maximale par défaut est suffisante, sinon le tri sera fait en deux passes (les données partiellement triées étant stockées dans un fichier temporaire) afin que les quantités de mémoire utilisées pour le tri et la fusion soient égales. La taille mémoire maximale par défaut est fixée à 90% de la mémoire principale disponible si entrée et sortie sont des fichiers, et à 45% dans les autres cas. /REC[ORD_MAXIMUM] caractères Spécifie le nombre maximal de caractères dans un enregistrement (par défaut 4096, maximum 65535). /R[EVERSE] Inverse l'ordre de tri, c'est-à-dire, effectue le tri de Z à A, puis de 9 à 0. [lecteur1:][chemin1]nom_fichier1 Spécifie quel fichier trier. S'il n'est pas spécifié, c'est l'entrée standard qui est triée. Spécifier le fichier d'entrée est plus rapide que de rediriger ce fichier comme entrée standard. /T[EMPORARY] [lecteur2:][chemin2] Spécifie le chemin d'accès au répertoire dans lequel le tri doit stocker ses données, dans le cas où ces données ne peuvent être contenues dans la mémoire principale. Par défaut, c'est le répertoire temporaire du système qui est utilisé. /O[UTPUT] [lecteur3 :][chemin3]nom_fichier3 Spécifie le fichier dans lequel l'entrée triée doit être stockée. S'il n'est pas spécifié, les données sont écrites dans la sortie standard. Spécifier le fichier de sortie est plus rapide que de rediriger la sortie standard vers le même fichier.
Exemple: On dispose d'un fichier Membres.txt contenant une liste des membres du Forum. On désire trier ce fichier en ordre croissant puis en ordre décroissant. Voici le fichier : - Membres.txt:
AAAAA bbb Papydall Ouf_ca_passe Pedro Alvares Jean Claude Ygeronimi Jean_Debord 123 0147 papydall papy1 papy2 Klaus Minibug Jicehel Cosmos70 mimic RMont Froggy One silverman Jack mindstorm jjn4 Marc37 JL35
Voici un code Panoramic effectuant la tâche. - Code:
-
rem ============================================================================ rem Trier un fichier contenant une liste alphanumérique rem en utilisant la commande SORT de l invite de commande rem ============================================================================ dim rep$ : rep$ = "c:\users\acer\desktop" : ' Adapter le chemin dim fich_non_trie$ : fich_non_trie$ = rep$ + "\Membres.txt" dim fich_triAZ$ : fich_triAZ$ = rep$ + "\Membres_tri_AZ.txt" dim fich_triZA$ : fich_triZA$ = rep$ + "\Membres_tri_ZA.txt" ' Trier le fichier "Membres.txt" en ordre croissant; le résultat est dans "Membres_tri_AZ" execute_wait "cmd /c sort " + fich_non_trie$ + " > " + fich_triAZ$ + chr$(34) ' Trier le fichier "Membres.txt" en ordre décroissant; le résultat est dans "Membres_tri_ZA" execute_wait "cmd /c sort /R " + fich_non_trie$ + " > " + fich_triZA$ + chr$(34) terminate rem ============================================================================
| |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Lun 3 Oct 2016 - 22:31 | |
| Ceci me paraît idéal pour classer la liste des numéros de téléphone du dernier (si je ne me trompe) utilitaire de JL35... que je ne parviens pas à retrouver sur le forum ! Si quelqu'un a ça sous le coude, ça m'arrangerait. Merci et en tous les cas, bonne soirée ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Re Lun 3 Oct 2016 - 22:34 | |
| Quelle buse je fais, des fois ! C'était facile à trouver, je l'ai. Désolé, bonne soirée !!! | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Lun 3 Oct 2016 - 23:38 | |
| @Ouf_ca_passe Tu peux remplacer un dlist par un list pour visualiser ce que tu fais et dès que ton code est au point, tu remplaces le list par un dlist. un simple exemple de tri croissant de 'string' avec (d)list: - Code:
-
list 10 :' list ou dlist, au choix
if object_type(10)=8 then left 10,100 :' pas nécessaire, c'est juste pour la démo
item_add 10,"herve" :' ecrit le dans le (d)list item_add 10,"benoit" :' ecrit le dans le (d)list item_add 10,"estelle" :' ecrit le dans le (d)list item_add 10,"jacque" :' ecrit le dans le (d)list item_add 10,"charlotte" :' ecrit le dans le (d)list
sort 10 :' tri le (d)list en ordre croissant
un autre exemple plus complet avec des nombres triés dans l'ordre décroissant - Code:
-
dim i% , aleatoire% , chaine$
list 1 :' list ou dlist, au choix
if object_type(1)=8 then left 1,100 :' pas nécessaire, c'est juste pour la démo
' remplir le (d)list for i%=1 to 5 aleatoire%=rnd(999) :' un nombre au hasard à 3 chiffres chaine$=str$(aleatoire%) :' on le transforme en 'string' if len(chaine$)<3 :' si ce n'est pas un nombre à 3 chiffres chaine$=string$(3-len(chaine$),"0")+chaine$ :' ajoute un/des zéro(s) devant end_if item_add 1,chaine$ :' ecrit le dans le (d)list next i%
sort 1 :' tri le (d)list en ordre croissant
i%=0 repeat :' réorganise le (d)list en ordre décroissant : item_insert 1,i%,item_read$(1,count(1)) :' récupère et insère le dernier élément en i% ème position i%=i%+1 :' incrémente à la position suivante item_delete 1,count(1) :' supprimme le dernier élément until i%=count(1) :' parcours la totalité du (d)list
' ex. d'affichage dans l'ordre croissant : for i%=count(1) to 1 step -1 :' lit du dernier enregistrement jusqu'au premier print val(item_read$(1,i%)) :' transforme le 'string' en nombre et affiche le résultat next i%
amuse toi à modifier ces codes à ta guise, cela te permettra de mieux comprendre le fonctionnement des objets (d)list | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Merci à tou(te)s Mer 5 Oct 2016 - 13:38 | |
| pour vos réponses qui me requinquent.
Je vais regarder cela soigneusement.
Cordialement. | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Ca ne passe pas Mer 9 Nov 2016 - 16:39 | |
| Bonjour les PANORAMICIEN(NE)S - Code:
-
' Carnet_d'adresse_05_Premiers_Contrôles Error_french Rem No du dernier objet 21 dim form_menu%, menu_form_menu%, menu_fichier%, menu_start%, menu_quitter% DIM Menu_Gestion_Contact%, Menu_Cree_Contact%, Menu_Modif_Contact% DIM alpha_nom%, edit_nom%, Form_Fiche% LABEL Fiche_indiv, Start Debut() ' ...... END ' Sub Debut() print " Sub Debut()" ' Le menu du formulaire Carnet d'adresses ' FORM 0 full_space 0 ' hide 0 ' FORM_MENU
Form_Menu%=11 :' 11 form Form_Menu% caption Form_Menu%,"Carnet d'adresse" ' command_target_is Form_Menu% ' Menu_Form_Menu%=12 :' 12 main_menu Menu_Form_Menu% ' Menu_Fichier%=13 :' 13 sub_menu Menu_Fichier% parent Menu_Fichier%,Menu_Form_Menu% caption Menu_Fichier%," Fichier " ' Menu_Start%=14 :' 14 sub_menu Menu_Start% parent Menu_Start%,Menu_Fichier% caption Menu_Start%," Démarrer " ' Menu_Quitter%=15 :' 15 sub_menu Menu_Quitter% parent Menu_Quitter%,Menu_Fichier% caption Menu_Quitter%," Quitter " ' Menu_Gestion_Contact%=16 :' 16 sub_menu Menu_Gestion_Contact% parent Menu_Gestion_Contact%,Menu_Form_Menu% caption Menu_Gestion_Contact%," Gestion des Contacts " hide 16 ' Menu_Cree_Contact%=17 :' 17 sub_menu Menu_Cree_Contact% parent Menu_Cree_Contact%,Menu_Gestion_Contact% caption Menu_Cree_Contact%," Créer un Contact " ' Menu_Modif_Contact%=18 :' 18 sub_menu Menu_Modif_Contact% parent Menu_Modif_Contact%,Menu_Gestion_Contact% caption Menu_Modif_Contact%, " Modifier ou Supprimer un Contact " ' on_click Menu_Start%,Start
end_sub ' Fiche_indiv: ' FICHE INDIVIDUELLE DU CONTACT: tous les objets de la fiche individuelle du contact Print "Fiche individuelle" ' FORM_FICHE Form_Fiche%=20 :' 20 form Form_Fiche% caption Form_Fiche%,"Fiche Individuelle n°" width Form_Fiche%,500 height Form_Fiche%,500 border_small Form_Fiche% top Form_Fiche%,100 left Form_Fiche%,100 ' SAISIE DU NOM alpha_nom%=21 :' 21 alpha alpha_nom% parent alpha_nom%,Form_Fiche% top alpha_nom%,20 font_bold alpha_nom% Caption alpha_nom%,"NOM *" left alpha_nom%,120 ' edit_nom%=22 :' 22 edit edit_nom% parent edit_nom%,Form_Fiche% top edit_nom%,40 left edit_nom%,50 width edit_nom%,180 return ' Start: Print "Start" show Menu_Gestion_Contact% on_click Menu_Gestion_Contact%,Fiche_indiv return
Je recommence depuis le début et ça ne passe quand même pas. | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: La nuit porte conseil, même pour PANORAMIC ! Jeu 10 Nov 2016 - 8:30 | |
| Je me réponds à moi-même puisque le code que j'ai posté hier passe sans problème aujourd'hui !! SUFFICIT CUIQUE DIEI MALITIA SUA Bonne journée aux PANORAMICIEN(NE)S | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Même message d'erreur qu'hier Jeu 10 Nov 2016 - 10:14 | |
| Msg (29) Expression arithmétique incorrecte ligne 94 hier, c'était sur le nom, aujourd'hui c'est sur le prénom ? - Code:
-
' Carnet_d'adresse_06_Coordonnées_absolues_des_Contrôles Error_french Rem No du dernier objet 27 dim form_menu%, menu_form_menu%, menu_fichier%, menu_start%, menu_quitter% DIM Menu_Gestion_Contact%, Menu_Cree_Contact%, Menu_Modif_Contact% DIM alpha_adr1%, alpha_nom%, alpha_prenom%, edit_adr1%, edit_nom%, edit_prenom%, Form_Fiche% dim bton_valid_fich% LABEL Fiche_indiv, Start Debut() ' ...... END ' Sub Debut() print " Sub Debut()" ' Le menu du formulaire Carnet d'adresses ' FORM 0 height 0, 750 width 0,500 ' full_space 0 ' hide 0 ' FORM_MENU
Form_Menu%=11 :' 11 form Form_Menu% caption Form_Menu%,"Carnet d'adresse" ' command_target_is Form_Menu% ' Menu_Form_Menu%=12 :' 12 main_menu Menu_Form_Menu% ' Menu_Fichier%=13 :' 13 sub_menu Menu_Fichier% parent Menu_Fichier%,Menu_Form_Menu% caption Menu_Fichier%," Fichier " ' Menu_Start%=14 :' 14 sub_menu Menu_Start% parent Menu_Start%,Menu_Fichier% caption Menu_Start%," Démarrer " ' Menu_Quitter%=15 :' 15 sub_menu Menu_Quitter% parent Menu_Quitter%,Menu_Fichier% caption Menu_Quitter%," Quitter " ' Menu_Gestion_Contact%=16 :' 16 sub_menu Menu_Gestion_Contact% parent Menu_Gestion_Contact%,Menu_Form_Menu% caption Menu_Gestion_Contact%," Gestion des Contacts " hide 16 ' Menu_Cree_Contact%=17 :' 17 sub_menu Menu_Cree_Contact% parent Menu_Cree_Contact%,Menu_Gestion_Contact% caption Menu_Cree_Contact%," Créer un Contact " ' Menu_Modif_Contact%=18 :' 18 sub_menu Menu_Modif_Contact% parent Menu_Modif_Contact%,Menu_Gestion_Contact% caption Menu_Modif_Contact%, " Modifier ou Supprimer un Contact " ' on_click Menu_Start%,Start end_sub ' Fiche_indiv: ' FICHE INDIVIDUELLE DU CONTACT: tous les objets de la fiche individuelle du contact Print "Fiche individuelle" ' FORM_FICHE Form_Fiche%=20 :' 20 form Form_Fiche% caption Form_Fiche%,"Fiche Individuelle n°" width Form_Fiche%,500 height Form_Fiche%,500 border_small Form_Fiche% top Form_Fiche%,100 left Form_Fiche%,100 ' SAISIE DU NOM alpha_nom%=21 :' 21 alpha alpha_nom% parent alpha_nom%,Form_Fiche% top alpha_nom%,20 font_bold alpha_nom% Caption alpha_nom%,"NOM *" left alpha_nom%,120 ' edit_nom%=22 :' 22 edit edit_nom% parent edit_nom%,Form_Fiche% top edit_nom%,40 left edit_nom%,50 width edit_nom%,180 ' SAISIE DU PRENOM alpha_prenom%=23 :' 23 alpha alpha_prenom% parent alpha_prenom%,Form_Fiche% top alpha_prenom%,20 font_bold alpha_prenom% Caption alpha_prenom%,"PRENOM *" left alpha_prenom%,280 ' edit_prenom%=24 :' 24 edit edit_prenom% parent edit_prenom%,Form_Fiche% top edit_prenom%,40 left edit_prenom%,250 width edit_prenom%,180 ' SAISIE ADRESSE 1 alpha_adr1%=25 :' 25 alpha alpha_adr1% parent alpha_adr1%,Form_Fiche% top alpha_adr1%,80 font_bold alpha_adr1% Caption alpha_adr1%,"ADRESSE 1" left alpha_adr1%,210 ' edit_adr1%=26 :' 26 edit edit_adr1% parent edit_adr1%,Form_Fiche% top edit_adr1%,100 left edit_adr1%,50 width edit_adr1%,400 ' VALIDATION de LA FICHE bton_valid_fich%=27 :' 27 button bton_valid_fich% parent bton_valid_fich%,Form_Fiche% font_bold bton_valid_fich% caption bton_valid_fich%,"Valider" top bton_valid_fich%,230 left bton_valid_fich%,50 width bton_valid_fich%,110 ' return ' Start: show Menu_Gestion_Contact% on_click Menu_Gestion_Contact%,Fiche_indiv ' … return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 10 Nov 2016 - 13:18 | |
| - Code:
-
' Carnet_d'adresse_06_Coordonnées_absolues_des_Contrôles Error_french
Rem No du dernier objet 27 dim no% : no%=10
dim form_menu% : no%=no%+1 : form_menu%=no% dim menu_form_menu% : no%=no%+1 : menu_form_menu%=no% dim menu_fichier% : no%=no%+1 : menu_fichier%=no% dim menu_start% : no%=no%+1 : menu_start%=no% dim menu_quitter% : no%=no%+1 : menu_quitter%=no% dim Menu_Gestion_Contact% : no%=no%+1 : Menu_Gestion_Contact%=no% dim Menu_Cree_Contact% : no%=no%+1 : Menu_Cree_Contact%=no% dim Menu_Modif_Contact% : no%=no%+1 : Menu_Modif_Contact%=no%
dim Form_Fiche% : no%=no%+1 : Form_Fiche%=no% dim alpha_adr1% : no%=no%+1 : alpha_adr1%=no% dim alpha_nom% : no%=no%+1 : alpha_nom%=no% dim alpha_prenom% : no%=no%+1 : alpha_prenom%=no% dim edit_adr1% : no%=no%+1 : edit_adr1%=no% dim edit_nom% : no%=no%+1 : edit_nom%=no% dim edit_prenom% : no%=no%+1 : edit_prenom%=no% dim bton_valid_fich% : no%=no%+1 : bton_valid_fich%=no%
LABEL Clic
Fen_0() print "- Sub Fen_0()" Fen_Menu() print "- Sub Fen_Menu()" END
sub Fen_0() height 0,750 width 0,500 font_name 0,"arial" font_size 0,8 end_sub
' ------------------------------------------------------------------------------
sub Fen_Menu() if object_exists(Form_Menu%)=1 show Form_Menu% else form Form_Menu% caption Form_Menu%,"Carnet d'adresse"
command_target_is Form_Menu%
main_menu Menu_Form_Menu%
sub_menu Menu_Fichier% parent Menu_Fichier%,Menu_Form_Menu% caption Menu_Fichier%," Fichier "
sub_menu Menu_Start% parent Menu_Start%,Menu_Fichier% caption Menu_Start%," Démarrer "
sub_menu Menu_Quitter% parent Menu_Quitter%,Menu_Fichier% caption Menu_Quitter%," Quitter "
sub_menu Menu_Gestion_Contact% parent Menu_Gestion_Contact%,Menu_Form_Menu% caption Menu_Gestion_Contact%," Gestion des Contacts " hide Menu_Gestion_Contact%
sub_menu Menu_Cree_Contact% parent Menu_Cree_Contact%,Menu_Gestion_Contact% caption Menu_Cree_Contact%," Créer un Contact "
sub_menu Menu_Modif_Contact% parent Menu_Modif_Contact%,Menu_Gestion_Contact% caption Menu_Modif_Contact%, " Modifier ou Supprimer un Contact "
on_click Menu_Start%,Clic on_click Menu_Gestion_Contact%,Clic end_if end_sub
' ------------------------------------------------------------------------------
sub Fen_Fiche() if object_exists(Form_Fiche%)=1 show Form_Fiche% else form Form_Fiche% caption Form_Fiche%,"Fiche Individuelle n°" width Form_Fiche%,500 height Form_Fiche%,500 border_small Form_Fiche% top Form_Fiche%,100 left Form_Fiche%,100 ' SAISIE DU NOM alpha alpha_nom% parent alpha_nom%,Form_Fiche% top alpha_nom%,20 font_bold alpha_nom% Caption alpha_nom%,"NOM *" left alpha_nom%,120
edit edit_nom% parent edit_nom%,Form_Fiche% top edit_nom%,40 left edit_nom%,50 width edit_nom%,180 ' SAISIE DU PRENOM alpha alpha_prenom% parent alpha_prenom%,Form_Fiche% top alpha_prenom%,20 font_bold alpha_prenom% Caption alpha_prenom%,"PRENOM *" left alpha_prenom%,280
edit edit_prenom% parent edit_prenom%,Form_Fiche% top edit_prenom%,40 left edit_prenom%,250 width edit_prenom%,180 ' SAISIE ADRESSE 1 alpha alpha_adr1% parent alpha_adr1%,Form_Fiche% top alpha_adr1%,80 font_bold alpha_adr1% Caption alpha_adr1%,"ADRESSE 1" left alpha_adr1%,210
edit edit_adr1% parent edit_adr1%,Form_Fiche% top edit_adr1%,100 left edit_adr1%,50 width edit_adr1%,400 ' VALIDATION de LA FICHE button bton_valid_fich% parent bton_valid_fich%,Form_Fiche% font_bold bton_valid_fich% caption bton_valid_fich%,"Valider" top bton_valid_fich%,230 left bton_valid_fich%,50 width bton_valid_fich%,110 end_if print "Fiche individuelle" end_sub
' ------------------------------------------------------------------------------
Clic: if number_click = Menu_Start% show Menu_Gestion_Contact% return end_if if number_click = Menu_Gestion_Contact% Fen_Fiche() return end_if return | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Merci Jeu 10 Nov 2016 - 16:16 | |
| @ Ygeronimi
1) Ton code est passé sans problème avec PANORAMIC EDITOR mais pas avec GEANY qui lance PANORAMIC sans edit.
2) Je n'ai pas encore regardé pourquoi ton code passe et pas le mien. Ça fait un an que je suis sur le carnet d'adresses et je pense encore en avoir pour 10 ans.
3) Il est regrettable que l'onglet forum de PANORAMIC (que je laisse ouvert toute la journée) ne se mette pas à jour automatiquement. Je n 'ai pas trouvé d’icône d'actualisation si bien que je dois cliquer sur un sujet puis remonter la page de ce sujet pour savoir si quelqu'un a répondu à ma question. Pas pratique.
Bonne soirée à tou(te)s | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Jeu 10 Nov 2016 - 16:24 | |
| Il suffit simplement re "raffraichir" la page affichée. Sous Firefox, c'est l'icône "flèche en cercle" juste à droite de la barre URL: Pour d'autres navigateurs, c'est peut-être différent, mais ils ont tous une fonction "Raffraichissement". | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Jeu 10 Nov 2016 - 17:08 | |
| Sous chrome, c’est juste à gauche de la barre URL: Sinon, tu peux toujours faire un clic-droit dans la page et choisir actualiser | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: C'est comme l'oeuf Jeu 10 Nov 2016 - 17:43 | |
| de Christophe Colomb Il suffisait d'y penser ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 10 Nov 2016 - 17:57 | |
| - Code:
-
dim PictMenu1$ : PictMenu1$="MenuCarnetNouveau.bmp" dim Carnet$ : Carnet$="Carnet.txt"
dim i%,no% dim form_carnet% : no%=no%+1 : form_carnet%=no% dim pan_dim% : no%=no%+1 : pan_dim%=no% dim pict_menu1% : no%=no%+1 : pict_menu1%=no% dim alph_onglet%(26): for i%=1 to 26 : no%=no%+1 : alph_onglet%(i%)=no% : next i% dim pict_onglet%(26): for i%=1 to 26 : no%=no%+1 : pict_onglet%(i%)=no% : next i% dim liste_nom% : no%=no%+1 : liste_nom%=no% dim alph_nom% : no%=no%+1 : alph_nom%=no% dim alph_prenom% : no%=no%+1 : alph_prenom%=no% dim alph_adr1% : no%=no%+1 : alph_adr1%=no% dim edi_nom% : no%=no%+1 : edi_nom%=no% dim edi_prenom% : no%=no%+1 : edi_prenom%=no% dim edi_adr1% : no%=no%+1 : edi_adr1%=no% dim bton_nouv_fiche%: no%=no%+1 : bton_nouv_fiche%=no% dim memory% : no%=no%+1 : memory%=no%
dim SelectOnglet%
label clic_carnet,Dclic_carnet
dlist memory% if file_exists(Carnet$)=1 : file_load memory%,Carnet$ : end_if
Carnet_Adresses() end
sub Carnet_Adresses() dim_local w%,h%,i%,t%
if object_exists(form_carnet%)=1 show form_carnet% else form form_carnet% height form_carnet%,450 width form_carnet%,650 top form_carnet%,(screen_y-height(form_carnet%))/2 left form_carnet%,(screen_x-width(form_carnet%))/2 caption form_carnet%,"Carnet d' adresses" color form_carnet%,234,217,164 panel pan_dim% parent pan_dim%,form_carnet% full_space pan_dim% h%=height(pan_dim%) w%=width(pan_dim%) delete pan_dim% picture pict_menu1% parent pict_menu1%,form_carnet% height pict_menu1%,24 width pict_menu1%,24 if file_exists(PictMenu1$)=1 file_load pict_menu1%,PictMenu1$ else color pict_menu1%,230,230,230 end_if top pict_menu1%,1 left pict_menu1%,1 cursor_point pict_menu1% on_click pict_menu1%,Clic_carnet hint pict_menu1%,"Nouveau" list liste_nom% parent liste_nom%,form_carnet% height liste_nom%,h%-26 width liste_nom%,200 top liste_nom%,26 left liste_nom%,0 color liste_nom%,247,234,192 font_name liste_nom%,"Arial" font_size liste_nom%,8 font_bold liste_nom% font_color liste_nom%,155,0,0 on_double_click liste_nom%,Dclic_carnet t%=26 for i%=1 to 26
picture pict_onglet%(i%) parent pict_onglet%(i%),form_carnet% alpha alph_onglet%(i%) parent alph_onglet%(i%),form_carnet%
caption alph_onglet%(i%),chr$(i%+64) top alph_onglet%(i%),t% font_name alph_onglet%(i%),"Times" font_size alph_onglet%(i%),10 font_bold alph_onglet%(i%) cursor_point alph_onglet%(i%) color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 on_click alph_onglet%(i%),clic_carnet
height pict_onglet%(i%),height(alph_onglet%(i%)) width pict_onglet%(i%),20 top pict_onglet%(i%),t% left pict_onglet%(i%),200 color pict_onglet%(i%),155,0,0
left alph_onglet%(i%),200+((width(pict_onglet%(i%))-width(alph_onglet%(i%)))/2) t%=t%+height(alph_onglet%(i%)) next i% alpha alph_nom% parent alph_nom%,form_carnet% caption alph_nom%,"Nom" top alph_nom%,46 left alph_nom%,240 font_name alph_nom%,"Times" font_size alph_nom%,10 font_bold alph_nom% font_color alph_nom%,155,0,0
edit edi_nom% parent edi_nom%,form_carnet% width edi_nom%,200 top edi_nom%,61 left edi_nom%,240 font_name edi_nom%,"Arial" font_size edi_nom%,8 color edi_nom%,247,234,192
alpha alph_prenom% parent alph_prenom%,form_carnet% caption alph_prenom%,"Prénom" top alph_prenom%,91 left alph_prenom%,240 font_name alph_prenom%,"Times" font_size alph_prenom%,10 font_bold alph_prenom% font_color alph_prenom%,155,0,0 edit edi_prenom% parent edi_prenom%,form_carnet% width edi_prenom%,200 top edi_prenom%,106 left edi_prenom%,240 font_name edi_prenom%,"Arial" font_size edi_prenom%,8 color edi_prenom%,247,234,192 alpha alph_adr1% parent alph_adr1%,form_carnet% caption alph_adr1%,"Adresse" top alph_adr1%,136 left alph_adr1%,240 font_name alph_adr1%,"Times" font_size alph_adr1%,10 font_bold alph_adr1% font_color alph_adr1%,155,0,0 edit edi_adr1% parent edi_adr1%,form_carnet% width edi_adr1%,300 top edi_adr1%,151 left edi_adr1%,240 font_name edi_adr1%,"Arial" font_size edi_adr1%,8 color edi_adr1%,247,234,192 button bton_nouv_fiche% parent bton_nouv_fiche%,form_carnet% caption bton_nouv_fiche%,"Enregistrer" font_name bton_nouv_fiche%,"Arial" top bton_nouv_fiche%,h%-(height(bton_nouv_fiche%)+5) left bton_nouv_fiche%,w%-(width(bton_nouv_fiche%)+5) cursor_point bton_nouv_fiche% on_click bton_nouv_fiche%,clic_carnet inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive bton_nouv_fiche% end_if end_sub
clic_carnet: if number_click = pict_menu1% active edi_nom% active edi_prenom% active edi_adr1% active bton_nouv_fiche% return end_if
if number_click = bton_nouv_fiche% AjoutNameToCarnet() return end_if
if number_click>(alph_onglet%(1)-1) or number_click<(alph_onglet%(26)+1) for i%=1 to 26 if number_click = alph_onglet%(i%) SelectOnglet%= alph_onglet%(i%) color pict_onglet%(i%),247,234,192 color alph_onglet%(i%),247,234,192 font_color alph_onglet%(i%),0,0,0 RempListCarnet(caption$(alph_onglet%(i%))) else color pict_onglet%(i%),155,0,0 color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 end_if next i% return end_if return
Dclic_carnet: if count(liste_nom%)>0 findNameInCarnet(item_index$(liste_nom%)) else message "Liste vide..." end_if return
sub RempListCarnet(l$) dim_local i%,line$,n$,pn$ clear liste_nom% if count(memory%)>0 for i%=1 to count(memory%) line$=item_read$(memory%,i%) if left$(line$,1)=l$ n$= left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn$= left$(line$,instr(line$,"|")-1) item_add liste_nom%,n$+" "+pn$ end_if next i% else message "Liste vide..." end_if end_sub
sub AjoutNameToCarnet() if text$(edi_nom%)="" or text$(edi_prenom%)="" or text$(edi_adr1%)="" if message_warning_yes_no("Tous les champs doivent être rempli !"+chr$(13)+"Souhaitez vous abandonner l' enregistrement ?")=1 InitialiseFormulaire() exit_sub end_if else VerifNameExist(text$(edi_nom%)+"|"+text$(edi_prenom%)) if Ret_VerifNameExist%=1 message "Ce nom est déjà enregistré !" InitialiseFormulaire() exit_sub else item_add memory%,text$(edi_nom%)+"|"+text$(edi_prenom%)+"|"+text$(edi_adr1%) file_save memory%,Carnet$ if SelectOnglet%>0 : trigger_click SelectOnglet% : end_if InitialiseFormulaire() end_if end_if end_sub
sub InitialiseFormulaire() text edi_nom%,"" text edi_prenom%,"" text edi_adr1%,"" inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive bton_nouv_fiche% end_sub
sub FindNameInCarnet(i$) dim_local i%,n$,pn$,line$,n2$,pn2$,ad$,l$ l$=i$ n$=left$(l$,instr(l$,chr$(32))-1) pn$=right$(l$,len(l$)-instr(l$,chr$(32))) if count(memory%)>0 for i%=1 to count(memory%) line$=item_read$(memory%,i%) n2$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn2$=left$(line$,instr(line$,"|")-1) ad$=right$(line$,len(line$)-instr(line$,"|")) if n$=n2$ and pn$=pn2$ text edi_nom%,n2$ text edi_prenom%,pn2$ text edi_adr1%,ad$ exit_for end_if next i% end_if end_sub
sub VerifNameExist(n$) dim_local i%,a$,b$ b$=n$ if variable("Ret_VerifNameExist%")=0 : dim Ret_VerifNameExist% : end_if if count(memory%)>0 for i%=1 to count(memory%) a$=item_read$(memory%,i%) a$=left$(a$,len(b$)) if b$=a$ Ret_VerifNameExist%=1 exit_for end_if next i% end_if end_sub Cadeau de la maison... pour les dix ans à venir | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Merci du cadeau Jeu 10 Nov 2016 - 18:29 | |
| @ Ygeronimi mais là, ça va me prendre plus que 10 ans ! Déjà que je dois comprendre ta Gestion de Compte Facile et - le carnet d'adresses de Jean-Claude - le Gestionnaire de Projets Panoramic de Minibug - la fourmi et le jeu de la vie de Papydall, Jean Debord et Klaus - la valse des planètes de Jean Debord - l'IDE de Klaus (je ne parle pas des DLLs) - les classements de Papydall - les différentes structures de fichier par toute la communauté des Seigneurs des PANO et j'en oublie Ça va être chaud. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Nov 2016 - 13:32 | |
| Tiens, je t' en rajoute pour 5 ans... ...avec le formatage automatique des noms et prénoms. - Code:
-
dim PictMenu1$ : PictMenu1$="MenuCarnetNouveau.bmp" dim Carnet$ : Carnet$="Carnet.txt"
dim i%,no% dim form_carnet% : no%=no%+1 : form_carnet%=no% dim pan_dim% : no%=no%+1 : pan_dim%=no% dim pict_menu1% : no%=no%+1 : pict_menu1%=no% dim alph_onglet%(26): for i%=1 to 26 : no%=no%+1 : alph_onglet%(i%)=no% : next i% dim pict_onglet%(26): for i%=1 to 26 : no%=no%+1 : pict_onglet%(i%)=no% : next i% dim liste_nom% : no%=no%+1 : liste_nom%=no% dim alph_nom% : no%=no%+1 : alph_nom%=no% dim alph_prenom% : no%=no%+1 : alph_prenom%=no% dim alph_adr1% : no%=no%+1 : alph_adr1%=no% dim edi_nom% : no%=no%+1 : edi_nom%=no% dim edi_prenom% : no%=no%+1 : edi_prenom%=no% dim edi_adr1% : no%=no%+1 : edi_adr1%=no% dim bton_nouv_fiche%: no%=no%+1 : bton_nouv_fiche%=no% dim memory% : no%=no%+1 : memory%=no%
dim SelectOnglet%
label clic_carnet,Dclic_carnet,change
dlist memory% if file_exists(Carnet$)=1 : file_load memory%,Carnet$ : end_if
Carnet_Adresses() end
' ------------------------------------------------------------------------------
sub Carnet_Adresses() dim_local w%,h%,i%,t%
if object_exists(form_carnet%)=1 show form_carnet% else form form_carnet% height form_carnet%,450 width form_carnet%,650 top form_carnet%,(screen_y-height(form_carnet%))/2 left form_carnet%,(screen_x-width(form_carnet%))/2 caption form_carnet%,"Carnet d' adresses" color form_carnet%,234,217,164 panel pan_dim% parent pan_dim%,form_carnet% full_space pan_dim% h%=height(pan_dim%) w%=width(pan_dim%) delete pan_dim% picture pict_menu1% parent pict_menu1%,form_carnet% height pict_menu1%,24 width pict_menu1%,24 if file_exists(PictMenu1$)=1 file_load pict_menu1%,PictMenu1$ else color pict_menu1%,230,230,230 end_if top pict_menu1%,1 left pict_menu1%,1 cursor_point pict_menu1% on_click pict_menu1%,Clic_carnet hint pict_menu1%,"Nouveau" list liste_nom% parent liste_nom%,form_carnet% height liste_nom%,h%-26 width liste_nom%,200 top liste_nom%,26 left liste_nom%,0 color liste_nom%,247,234,192 font_name liste_nom%,"Arial" font_size liste_nom%,8 font_bold liste_nom% font_color liste_nom%,155,0,0 on_click liste_nom%,Clic_carnet on_double_click liste_nom%,Dclic_carnet t%=26 for i%=1 to 26
picture pict_onglet%(i%) parent pict_onglet%(i%),form_carnet% alpha alph_onglet%(i%) parent alph_onglet%(i%),form_carnet%
caption alph_onglet%(i%),chr$(i%+64) top alph_onglet%(i%),t% font_name alph_onglet%(i%),"Times" font_size alph_onglet%(i%),10 font_bold alph_onglet%(i%) cursor_point alph_onglet%(i%) color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 on_click alph_onglet%(i%),clic_carnet
height pict_onglet%(i%),height(alph_onglet%(i%)) width pict_onglet%(i%),20 top pict_onglet%(i%),t% left pict_onglet%(i%),200 color pict_onglet%(i%),155,0,0
left alph_onglet%(i%),200+((width(pict_onglet%(i%))-width(alph_onglet%(i%)))/2) t%=t%+height(alph_onglet%(i%)) next i% alpha alph_nom% parent alph_nom%,form_carnet% caption alph_nom%,"Nom" top alph_nom%,46 left alph_nom%,240 font_name alph_nom%,"Times" font_size alph_nom%,10 font_bold alph_nom% font_color alph_nom%,155,0,0
edit edi_nom% parent edi_nom%,form_carnet% width edi_nom%,200 top edi_nom%,61 left edi_nom%,240 font_name edi_nom%,"Arial" font_size edi_nom%,8 font_bold edi_nom% color edi_nom%,247,234,192 on_change edi_nom%,change hint edi_nom%,"Seuls les caractères non accentués sont autorisés..."
alpha alph_prenom% parent alph_prenom%,form_carnet% caption alph_prenom%,"Prénom" top alph_prenom%,91 left alph_prenom%,240 font_name alph_prenom%,"Times" font_size alph_prenom%,10 font_bold alph_prenom% font_color alph_prenom%,155,0,0 edit edi_prenom% parent edi_prenom%,form_carnet% width edi_prenom%,200 top edi_prenom%,106 left edi_prenom%,240 font_name edi_prenom%,"Arial" font_size edi_prenom%,8 font_bold edi_prenom% color edi_prenom%,247,234,192 on_change edi_prenom%,change hint edi_prenom%,"Seuls les caractères non accentués sont autorisés..." alpha alph_adr1% parent alph_adr1%,form_carnet% caption alph_adr1%,"Adresse" top alph_adr1%,136 left alph_adr1%,240 font_name alph_adr1%,"Times" font_size alph_adr1%,10 font_bold alph_adr1% font_color alph_adr1%,155,0,0 edit edi_adr1% parent edi_adr1%,form_carnet% width edi_adr1%,300 top edi_adr1%,151 left edi_adr1%,240 font_name edi_adr1%,"Arial" font_size edi_adr1%,8 color edi_adr1%,247,234,192 button bton_nouv_fiche% parent bton_nouv_fiche%,form_carnet% caption bton_nouv_fiche%,"Enregistrer" font_name bton_nouv_fiche%,"Arial" top bton_nouv_fiche%,h%-(height(bton_nouv_fiche%)+5) left bton_nouv_fiche%,w%-(width(bton_nouv_fiche%)+5) cursor_point bton_nouv_fiche% on_click bton_nouv_fiche%,clic_carnet inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive bton_nouv_fiche% end_if end_sub
' ------------------------------------------------------------------------------
clic_carnet: if number_click = pict_menu1% InitialiseFormulaire() active edi_nom% active edi_prenom% active edi_adr1% active bton_nouv_fiche% return end_if if number_click = liste_nom% inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive bton_nouv_fiche% return end_if if number_click = bton_nouv_fiche% AjoutNameToCarnet() return end_if
if number_click>(alph_onglet%(1)-1) or number_click<(alph_onglet%(26)+1) for i%=1 to 26 if number_click = alph_onglet%(i%) SelectOnglet%= alph_onglet%(i%) color pict_onglet%(i%),247,234,192 color alph_onglet%(i%),247,234,192 font_color alph_onglet%(i%),0,0,0 RempListCarnet(caption$(alph_onglet%(i%))) else color pict_onglet%(i%),155,0,0 color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 end_if next i% return end_if return
' ------------------------------------------------------------------------------
Dclic_carnet: if count(liste_nom%)>0 findNameInCarnet(item_index$(liste_nom%)) else message "Liste vide..." end_if return
' ------------------------------------------------------------------------------
Change: if number_change = edi_nom% off_change edi_nom% FormatTexte(edi_nom%) on_change edi_nom%,change return end_if if number_change = edi_prenom% off_change edi_prenom% FormatTexte(edi_prenom%) on_change edi_prenom%,change return end_if return
' ------------------------------------------------------------------------------
sub RempListCarnet(l$) dim_local i%,line$,n$,pn$ clear liste_nom% if count(memory%)>0 for i%=1 to count(memory%) line$=item_read$(memory%,i%) if left$(line$,1)=l$ n$= left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn$= left$(line$,instr(line$,"|")-1) item_add liste_nom%,n$+" "+pn$ end_if next i% else message "Liste vide..." end_if end_sub
' ------------------------------------------------------------------------------
sub AjoutNameToCarnet() if text$(edi_nom%)="" or text$(edi_prenom%)="" or text$(edi_adr1%)="" if message_warning_yes_no("Tous les champs doivent être rempli !"+chr$(13)+"Souhaitez vous abandonner l' enregistrement ?")=1 InitialiseFormulaire() exit_sub end_if else VerifNameExist(text$(edi_nom%)+"|"+text$(edi_prenom%)) if Ret_VerifNameExist%=1 message "Ce nom est déjà enregistré !" InitialiseFormulaire() exit_sub else item_add memory%,text$(edi_nom%)+"|"+text$(edi_prenom%)+"|"+text$(edi_adr1%) file_save memory%,Carnet$ if SelectOnglet%>0 : trigger_click SelectOnglet% : end_if InitialiseFormulaire() end_if end_if end_sub
' ------------------------------------------------------------------------------
sub InitialiseFormulaire() text edi_nom%,"" text edi_prenom%,"" text edi_adr1%,"" inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive bton_nouv_fiche% end_sub
' ------------------------------------------------------------------------------
sub FindNameInCarnet(i$) dim_local i%,n$,pn$,line$,n2$,pn2$,ad$,l$ l$=i$ n$=left$(l$,instr(l$,chr$(32))-1) pn$=right$(l$,len(l$)-instr(l$,chr$(32))) if count(memory%)>0 for i%=1 to count(memory%) line$=item_read$(memory%,i%) n2$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn2$=left$(line$,instr(line$,"|")-1) ad$=right$(line$,len(line$)-instr(line$,"|")) if n$=n2$ and pn$=pn2$ text edi_nom%,n2$ text edi_prenom%,pn2$ text edi_adr1%,ad$ exit_for end_if next i% end_if end_sub
' ------------------------------------------------------------------------------
sub VerifNameExist(n$) dim_local i%,a$,b$ b$=n$ if variable("Ret_VerifNameExist%")=0 : dim Ret_VerifNameExist% : end_if if count(memory%)>0 for i%=1 to count(memory%) a$=item_read$(memory%,i%) a$=left$(a$,len(b$)) if b$=a$ Ret_VerifNameExist%=1 exit_for end_if next i% end_if end_sub
' ------------------------------------------------------------------------------
sub FormatTexte(obj%) dim_local t$,oui%
t$=text$(obj%) if asc(right$(t$,1))>64 and asc(right$(t$,1))<91 : oui%=1 : end_if if asc(right$(t$,1))>96 and asc(right$(t$,1))<123 : oui%=1 : end_if if asc(right$(t$,1))=32 : oui%=1 : end_if
if oui%=0 if len(t$)>0 t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) message "Seuls les caractères non accentués sont autorisés !" exit_sub else caret_position obj%,1 exit_sub end_if else if obj%=edi_nom% t$=upper$(t$) text obj%,t$ caret_position obj%,len(t$) exit_sub end_if
if obj%=edi_prenom% if len(t$)>0 if len(t$)=1 t$=upper$(left$(t$,1))+right$(t$,len(t$)-1) end_if if len(t$)>3 if mid$(t$,len(t$)-1,1)=chr$(32) t$=left$(t$,len(t$)-1)+upper$(right$(t$,1)) end_if end_if text obj%,t$ caret_position obj%,len(t$) exit_sub end_if end_if end_if end_sub | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Ven 11 Nov 2016 - 16:16 | |
| - ygeronimi a écrit:
- Tiens, je t' en rajoute pour 5 ans...
A mon tour de te proposer une réduction de 3 ans. Dans le dernier code de Ygeronimi : Remplacer Ligne 36 - Code:
-
height form_carnet%,450
par - Code:
-
height form_carnet%,500
Pour éviter ces inesthétiques barres de défilement. NB : positionner d’abord le curseur de la souris sur le petit carrée (haut gauche) de la FORM Carnet d' adresses pour «HINTer» Nouveau puis cliquer. Et pour une autre réduction de 2 ans, ajouter avant la ligne 200 RETURN du s/p clic_carnet :, ajouter - Code:
-
set_focus edi_nom%
Voilà, tu n'a plus que pour une petite année | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Nov 2016 - 17:30 | |
| Et j' en rajoute 5 de plus ! (attention il faut virer le fichier Carnet.txt pour éviter les erreurs) - Code:
-
dim PictMenu1$ : PictMenu1$="MenuCarnetNouveau.bmp" dim PictMenu2$ : PictMenu2$="MenuCarnetModifier.bmp" dim Carnet$ : Carnet$="Carnet.txt"
dim i%,no% dim form_carnet% : no%=no%+1 : form_carnet%=no%
dim pan_dim% : no%=no%+1 : pan_dim%=no% dim pict_menu1% : no%=no%+1 : pict_menu1%=no% dim pict_menu2% : no%=no%+1 : pict_menu2%=no% dim alph_onglet%(26): for i%=1 to 26 : no%=no%+1 : alph_onglet%(i%)=no% : next i% dim pict_onglet%(26): for i%=1 to 26 : no%=no%+1 : pict_onglet%(i%)=no% : next i% dim liste_nom% : no%=no%+1 : liste_nom%=no%
dim alph_nom% : no%=no%+1 : alph_nom%=no% dim alph_prenom% : no%=no%+1 : alph_prenom%=no% dim alph_adr1% : no%=no%+1 : alph_adr1%=no% dim alph_adr2% : no%=no%+1 : alph_adr2%=no% dim alph_codp% : no%=no%+1 : alph_codp%=no% dim alph_ville% : no%=no%+1 : alph_ville%=no% dim alph_telf% : no%=no%+1 : alph_telf%=no% dim alph_telp% : no%=no%+1 : alph_telp%=no% dim alph_mail% : no%=no%+1 : alph_mail%=no%
dim edi_nom% : no%=no%+1 : edi_nom%=no% dim edi_prenom% : no%=no%+1 : edi_prenom%=no% dim edi_adr1% : no%=no%+1 : edi_adr1%=no% dim edi_adr2% : no%=no%+1 : edi_adr2%=no% dim edi_codp% : no%=no%+1 : edi_codp%=no% dim edi_ville% : no%=no%+1 : edi_ville%=no% dim edi_telf% : no%=no%+1 : edi_telf%=no% dim edi_telp% : no%=no%+1 : edi_telp%=no% dim edi_mail% : no%=no%+1 : edi_mail%=no%
dim bton_nouv_fiche%: no%=no%+1 : bton_nouv_fiche%=no% dim memory% : no%=no%+1 : memory%=no%
dim mode% dim SelectOnglet% dim Entree% dim view%
label clic_carnet,Dclic_carnet,change
dlist memory% if file_exists(Carnet$)=1 : file_load memory%,Carnet$ : end_if Entree%=count(memory%)
Carnet_Adresses() end
' ------------------------------------------------------------------------------
sub Carnet_Adresses() dim_local w%,h%,i%,t%
if object_exists(form_carnet%)=1 show form_carnet% else form form_carnet% height form_carnet%,450 width form_carnet%,650 top form_carnet%,(screen_y-height(form_carnet%))/2 left form_carnet%,(screen_x-width(form_carnet%))/2 caption form_carnet%,"Carnet d' adresses" color form_carnet%,234,217,164 panel pan_dim% parent pan_dim%,form_carnet% full_space pan_dim% h%=height(pan_dim%) w%=width(pan_dim%) delete pan_dim% picture pict_menu1% parent pict_menu1%,form_carnet% height pict_menu1%,24 width pict_menu1%,24 if file_exists(PictMenu1$)=1 file_load pict_menu1%,PictMenu1$ else color pict_menu1%,230,230,230 end_if top pict_menu1%,1 left pict_menu1%,1 cursor_point pict_menu1% on_click pict_menu1%,Clic_carnet hint pict_menu1%,"Nouveau"
picture pict_menu2% parent pict_menu2%,form_carnet% height pict_menu2%,24 width pict_menu2%,24 if file_exists(PictMenu2$)=1 file_load pict_menu2%,PictMenu2$ else color pict_menu2%,230,230,230 end_if top pict_menu2%,1 left pict_menu2%,26 cursor_point pict_menu2% on_click pict_menu2%,Clic_carnet hint pict_menu2%,"Modifier" list liste_nom% parent liste_nom%,form_carnet% height liste_nom%,h%-26 width liste_nom%,200 top liste_nom%,26 left liste_nom%,0 color liste_nom%,247,234,192 font_name liste_nom%,"Arial" font_size liste_nom%,8 font_bold liste_nom% font_color liste_nom%,155,0,0 on_click liste_nom%,Clic_carnet on_double_click liste_nom%,Dclic_carnet t%=26 for i%=1 to 26
picture pict_onglet%(i%) parent pict_onglet%(i%),form_carnet% alpha alph_onglet%(i%) parent alph_onglet%(i%),form_carnet%
caption alph_onglet%(i%),chr$(i%+64) top alph_onglet%(i%),t% font_name alph_onglet%(i%),"Times" font_size alph_onglet%(i%),10 font_bold alph_onglet%(i%) cursor_point alph_onglet%(i%) color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 on_click alph_onglet%(i%),clic_carnet
height pict_onglet%(i%),height(alph_onglet%(i%)) width pict_onglet%(i%),20 top pict_onglet%(i%),t% left pict_onglet%(i%),200 color pict_onglet%(i%),155,0,0
left alph_onglet%(i%),200+((width(pict_onglet%(i%))-width(alph_onglet%(i%)))/2) t%=t%+height(alph_onglet%(i%)) next i% alpha alph_nom% parent alph_nom%,form_carnet% caption alph_nom%,"Nom" top alph_nom%,36 left alph_nom%,240 font_name alph_nom%,"Times" font_size alph_nom%,10 font_bold alph_nom% font_color alph_nom%,155,0,0
edit edi_nom% parent edi_nom%,form_carnet% width edi_nom%,200 top edi_nom%,51 left edi_nom%,240 font_name edi_nom%,"Arial" font_size edi_nom%,8 font_bold edi_nom% color edi_nom%,247,234,192 on_change edi_nom%,change hint edi_nom%,"Seuls les caractères non accentués sont autorisés..."
alpha alph_prenom% parent alph_prenom%,form_carnet% caption alph_prenom%,"Prénom" top alph_prenom%,81 left alph_prenom%,240 font_name alph_prenom%,"Times" font_size alph_prenom%,10 font_bold alph_prenom% font_color alph_prenom%,155,0,0 edit edi_prenom% parent edi_prenom%,form_carnet% width edi_prenom%,200 top edi_prenom%,96 left edi_prenom%,240 font_name edi_prenom%,"Arial" font_size edi_prenom%,8 font_bold edi_prenom% color edi_prenom%,247,234,192 on_change edi_prenom%,change hint edi_prenom%,"Seuls les caractères non accentués sont autorisés..." alpha alph_adr1% parent alph_adr1%,form_carnet% caption alph_adr1%,"Adresse" top alph_adr1%,126 left alph_adr1%,240 font_name alph_adr1%,"Times" font_size alph_adr1%,10 font_bold alph_adr1% font_color alph_adr1%,155,0,0 edit edi_adr1% parent edi_adr1%,form_carnet% width edi_adr1%,300 top edi_adr1%,141 left edi_adr1%,240 font_name edi_adr1%,"Arial" font_size edi_adr1%,8 font_bold edi_adr1% color edi_adr1%,247,234,192
alpha alph_adr2% parent alph_adr2%,form_carnet% caption alph_adr2%,"Complément d' adresse" top alph_adr2%,171 left alph_adr2%,240 font_name alph_adr2%,"Times" font_size alph_adr2%,10 font_bold alph_adr2% font_color alph_adr2%,155,0,0
edit edi_adr2% parent edi_adr2%,form_carnet% width edi_adr2%,300 top edi_adr2%,186 left edi_adr2%,240 font_name edi_adr2%,"Arial" font_size edi_adr2%,8 font_bold edi_adr2% color edi_adr2%,247,234,192 alpha alph_codp% parent alph_codp%,form_carnet% caption alph_codp%,"C.P" top alph_codp%,216 left alph_codp%,240 font_name alph_codp%,"Times" font_size alph_codp%,10 font_bold alph_codp% font_color alph_codp%,155,0,0
edit edi_codp% parent edi_codp%,form_carnet% width edi_codp%,60 top edi_codp%,231 left edi_codp%,240 font_name edi_codp%,"Arial" font_size edi_codp%,8 font_bold edi_codp% color edi_codp%,247,234,192 on_change edi_codp%,change alpha alph_ville% parent alph_ville%,form_carnet% caption alph_ville%,"Ville" top alph_ville%,216 left alph_ville%,305 font_name alph_ville%,"Times" font_size alph_ville%,10 font_bold alph_ville% font_color alph_ville%,155,0,0
edit edi_ville% parent edi_ville%,form_carnet% width edi_ville%,235 top edi_ville%,231 left edi_ville%,305 font_name edi_ville%,"Arial" font_size edi_ville%,8 font_bold edi_ville% color edi_ville%,247,234,192 on_change edi_ville%,change
alpha alph_telf% parent alph_telf%,form_carnet% caption alph_telf%,"Tel" top alph_telf%,276 left alph_telf%,240 font_name alph_telf%,"Times" font_size alph_telf%,10 font_bold alph_telf% font_color alph_telf%,155,0,0
edit edi_telf% parent edi_telf%,form_carnet% width edi_telf%,90 top edi_telf%,291 left edi_telf%,240 font_name edi_telf%,"Arial" font_size edi_telf%,8 font_bold edi_telf% color edi_telf%,247,234,192 on_change edi_telf%,change
alpha alph_telp% parent alph_telp%,form_carnet% caption alph_telp%,"Portable" top alph_telp%,321 left alph_telp%,240 font_name alph_telp%,"Times" font_size alph_telp%,10 font_bold alph_telp% font_color alph_telp%,155,0,0
edit edi_telp% parent edi_telp%,form_carnet% width edi_telp%,90 top edi_telp%,336 left edi_telp%,240 font_name edi_telp%,"Arial" font_size edi_telp%,8 font_bold edi_telp% color edi_telp%,247,234,192 on_change edi_telp%,change alpha alph_mail% parent alph_mail%,form_carnet% caption alph_mail%,"Adresse mail" top alph_mail%,366 left alph_mail%,240 font_name alph_mail%,"Times" font_size alph_mail%,10 font_bold alph_mail% font_color alph_mail%,155,0,0
edit edi_mail% parent edi_mail%,form_carnet% width edi_mail%,300 top edi_mail%,381 left edi_mail%,240 font_name edi_mail%,"Arial" font_size edi_mail%,8 font_bold edi_mail% color edi_mail%,247,234,192 on_change edi_mail%,change button bton_nouv_fiche% parent bton_nouv_fiche%,form_carnet% caption bton_nouv_fiche%,"Enregistrer" font_name bton_nouv_fiche%,"Arial" top bton_nouv_fiche%,h%-(height(bton_nouv_fiche%)+5) left bton_nouv_fiche%,w%-(width(bton_nouv_fiche%)+5) cursor_point bton_nouv_fiche% on_click bton_nouv_fiche%,clic_carnet end_if InitialiseFormulaire() if Entree%>0 : caption form_carnet%,"Carnet d' adresses ["+str$(Entree%)+" Entrées ]" : end_if end_sub
' ------------------------------------------------------------------------------
clic_carnet: if number_click = pict_menu1% mode%=1 view%=0 InitialiseFormulaire() active edi_nom% active edi_prenom% active edi_adr1% active edi_adr2% active edi_codp% active edi_ville% active edi_telf% active edi_telp% active edi_mail% active bton_nouv_fiche% return end_if
if number_click = pict_menu2% mode%=2 active edi_nom% active edi_prenom% if text$(edi_adr1%)="-" : text edi_adr1%,"" : end_if : active edi_adr1% if text$(edi_adr2%)="-" : text edi_adr2%,"" : end_if : active edi_adr2% if text$(edi_codp%)="-" : text edi_codp%,"" : end_if : active edi_codp% if text$(edi_ville%)="-" : text edi_ville%,"" : end_if : active edi_ville% if text$(edi_telf%)="-" : text edi_telf%,"" : end_if : active edi_telf% if text$(edi_telp%)="-" : text edi_telp%,"" : end_if : active edi_telp% if text$(edi_mail%)="-" : text edi_mail%,"" : end_if : active edi_mail% active bton_nouv_fiche% return end_if
if number_click = liste_nom% inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive edi_adr2% inactive edi_codp% inactive edi_ville% inactive edi_telf% inactive edi_telp% inactive edi_mail% inactive bton_nouv_fiche% return end_if if number_click = bton_nouv_fiche% AjoutNameToCarnet() return end_if
if number_click>(alph_onglet%(1)-1) or number_click<(alph_onglet%(26)+1) for i%=1 to 26 if number_click = alph_onglet%(i%) SelectOnglet%= alph_onglet%(i%) color pict_onglet%(i%),247,234,192 color alph_onglet%(i%),247,234,192 font_color alph_onglet%(i%),0,0,0 RempListCarnet(caption$(alph_onglet%(i%))) else color pict_onglet%(i%),155,0,0 color alph_onglet%(i%),155,0,0 font_color alph_onglet%(i%),255,255,255 end_if next i% return end_if return
' ------------------------------------------------------------------------------
Dclic_carnet: if count(liste_nom%)>0 findNameInCarnet(item_index$(liste_nom%)) else message "Liste vide..." end_if return
' ------------------------------------------------------------------------------
Change: if number_change = edi_nom% off_change edi_nom% FormatTexte(edi_nom%) on_change edi_nom%,change return end_if if number_change = edi_prenom% off_change edi_prenom% FormatTexte(edi_prenom%) on_change edi_prenom%,change return end_if if number_change = edi_codp% off_change edi_codp% FormatTexte(edi_codp%) on_change edi_codp%,change return end_if if number_change = edi_ville% off_change edi_ville% FormatTexte(edi_ville%) on_change edi_ville%,change return end_if if number_change = edi_telf% off_change edi_telf% FormatNumTel(edi_telf%) on_change edi_telf%,change return end_if if number_change = edi_telp% off_change edi_telp% FormatNumTel(edi_telp%) on_change edi_telp%,change return end_if return
' ------------------------------------------------------------------------------
sub RempListCarnet(l$) dim_local i%,line$,n$,pn$ clear liste_nom% if count(memory%)>0 for i%=1 to count(memory%) line$=item_read$(memory%,i%) if left$(line$,1)=l$ n$= left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn$= left$(line$,instr(line$,"|")-1) item_add liste_nom%,n$+" "+pn$ end_if next i% else message "Liste vide..." end_if end_sub
' ------------------------------------------------------------------------------
sub AjoutNameToCarnet() dim_local Ne$,ad1$,ad2$,cp$,vil$,t1$,t2$,m$ if text$(edi_nom%)="" or text$(edi_prenom%)="" if message_warning_yes_no("Tous les champs doivent être rempli !"+chr$(13)+"Souhaitez vous abandonner l' enregistrement ?")=1 InitialiseFormulaire() exit_sub end_if else VerifNameExist(text$(edi_nom%)+"|"+text$(edi_prenom%)) if mode%=1 and Ret_VerifNameExist%=1 message "Ce nom est déjà enregistré !" InitialiseFormulaire() exit_sub else ad1$=text$(edi_adr1%) ad2$=text$(edi_adr2%) cp$=text$(edi_codp%) vil$=text$(edi_ville%) t1$=text$(edi_telf%) t2$=text$(edi_telp%) m$=text$(edi_mail%) if ad1$="": ad1$="-": end_if if ad2$="": ad2$="-": end_if if cp$="" : cp$="-" : end_if if vil$="": vil$="-": end_if if t1$="" : t1$="-" : end_if if t2$="" : t2$="-" : end_if if m$="" : m$="-" : end_if Ne$ = text$(edi_nom%)+"|"+text$(edi_prenom%)+"|"+ad1$+"|" Ne$ = Ne$+ad2$+"|"+cp$+"|"+vil$+"|"+t1$+"|"+t2$+"|"+m$ if mode%=1 item_add memory%,Ne$ file_save memory%,Carnet$ Entree%=Entree%+1 caption form_carnet%,"Carnet d' adresses ["+str$(Entree%)+" Entrées ]" else item_delete memory%,view% item_insert memory%,view%,Ne$ file_save memory%,Carnet$ end_if if SelectOnglet%>0 : trigger_click SelectOnglet% : end_if view%=0 InitialiseFormulaire() end_if end_if end_sub
' ------------------------------------------------------------------------------
sub InitialiseFormulaire() text edi_nom%,"" text edi_prenom%,"" text edi_adr1%,"" text edi_adr2%,"" text edi_codp%,"" text edi_ville%,"" text edi_telf%,"" text edi_telp%,"" text edi_mail%,"" inactive edi_nom% inactive edi_prenom% inactive edi_adr1% inactive edi_adr2% inactive edi_codp% inactive edi_ville% inactive edi_telf% inactive edi_telp% inactive edi_mail% inactive bton_nouv_fiche% end_sub
' ------------------------------------------------------------------------------
sub FindNameInCarnet(i$) dim_local i%,n$,pn$,line$,n2$,pn2$,ad$,l$,ad2$,cp$,vil$,t1$,t2$,mail$ l$=i$ n$=left$(l$,instr(l$,chr$(32))-1) pn$=right$(l$,len(l$)-instr(l$,chr$(32))) if count(memory%)>0 off_change edi_nom% off_change edi_prenom% off_change edi_adr1% off_change edi_adr2% off_change edi_codp% off_change edi_ville% off_change edi_telf% off_change edi_telp% off_change edi_mail% for i%=1 to count(memory%) line$=item_read$(memory%,i%) n2$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) pn2$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) ad$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) ad2$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) cp$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) vil$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) t1$=left$(line$,instr(line$,"|")-1) line$=right$(line$,len(line$)-instr(line$,"|")) t2$=left$(line$,instr(line$,"|")-1) mail$=right$(line$,len(line$)-instr(line$,"|")) if n$=n2$ and pn$=pn2$ view%=i% text edi_nom%,n2$ text edi_prenom%,pn2$ text edi_adr1%,ad$ text edi_adr2%,ad2$ text edi_codp%,cp$ text edi_ville%,vil$ text edi_telf%,t1$ text edi_telp%,t2$ text edi_mail%,mail$ exit_for end_if next i% on_change edi_nom%,change on_change edi_prenom%,change on_change edi_adr1%,change on_change edi_adr2%,change on_change edi_codp%,change on_change edi_ville%,change on_change edi_telf%,change on_change edi_telp%,change on_change edi_mail%,change end_if end_sub
' ------------------------------------------------------------------------------
sub VerifNameExist(n$) dim_local i%,a$,b$ b$=n$ if variable("Ret_VerifNameExist%")=0 : dim Ret_VerifNameExist% : end_if if count(memory%)>0 for i%=1 to count(memory%) a$=item_read$(memory%,i%) a$=left$(a$,len(b$)) if b$=a$ Ret_VerifNameExist%=1 exit_for end_if next i% end_if end_sub
' ------------------------------------------------------------------------------
sub FormatTexte(obj%) dim_local t$,oui%
t$=text$(obj%) if obj%=edi_codp% if len(t$)>0 if len(t$)<6 if numeric(right$(t$,1))=0 t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) exit_sub end_if else message "Code Postal"+chr$(13)+"5 caractères seulement !" t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) exit_sub end_if else caret_position obj%,1 exit_sub end_if else if asc(right$(t$,1))>64 and asc(right$(t$,1))<91 : oui%=1 : end_if if asc(right$(t$,1))>96 and asc(right$(t$,1))<123 : oui%=1 : end_if if asc(right$(t$,1))=32 : oui%=1 : end_if
if oui%=0 if len(t$)>0 t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) message "Seuls les caractères non accentués sont autorisés !" exit_sub else caret_position obj%,1 exit_sub end_if else if obj%=edi_nom% t$=upper$(t$) text obj%,t$ caret_position obj%,len(t$) exit_sub end_if
if obj%=edi_prenom% or obj%=edi_ville% if len(t$)>0 if len(t$)=1 t$=upper$(left$(t$,1))+right$(t$,len(t$)-1) end_if if len(t$)>3 if mid$(t$,len(t$)-1,1)=chr$(32) t$=left$(t$,len(t$)-1)+upper$(right$(t$,1)) end_if end_if text obj%,t$ caret_position obj%,len(t$) exit_sub end_if end_if end_if end_if end_sub
' ------------------------------------------------------------------------------
sub FormatNumTel(obj%) dim_local t$,l%,i$,l$ if scancode =8 : exit_sub : end_if t$=text$(obj%) l%=len(t$) i$=right$(t$,1) if l%>0 and l%<15 if numeric(i$)=0 and i$<>chr$(32) t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) exit_sub else if l%=3 or l%=6 or l%=9 or l%=12 if i$<>"-" t$=left$(t$,len(t$)-1)+chr$(32)+i$ text obj%,t$ caret_position obj%,len(t$) exit_sub end_if end_if end_if else if l%>14 t$=left$(t$,len(t$)-1) text obj%,t$ caret_position obj%,len(t$) exit_sub else caret_position obj%,1 end_if end_if end_sub
Dernière édition par ygeronimi le Sam 12 Nov 2016 - 12:27, édité 1 fois (Raison : petite rectification) | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: POURQUOI Y VEUT PAS ? Mer 23 Nov 2016 - 16:56 | |
| J'ai fait comme dans la doc. (Enfin, je crois) - Code:
-
dim i%,nb_enreg%,list_select% : list_select%=1 dim contact$(10,3) contact$(1,1)="a" contact$(2,1)="b" contact$(3,1)="c" nb_enreg%=3 list_select%=12 ' form 11 list list_select% parent List_select%,11 height List_select%, 270 top List_select%,5 left List_select%, 75 ' for i%=1 to nb_enreg% item_add list_select%,contact$(i%,1) next i% stop [b] print item_index()list_select% no_fiche%=item_index()List_select% print no_fiche%[/b] end
Cordialement les PANORAMICIEN(NE)S | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 24 Nov 2016 - 15:42 | |
| 1/ pourquoi un tableau à deux dimensions (inutile dans cette demo mais bon peut être pour plus tard... ) 2/ il faut déclarer toutes les variables ( no_fiche% n' est pas déclarée ) 3/ item_index(N%) pas item_index()N% ( donc : item_index(List_select%) et pas item_index()List_select% ) 4/ dim i%,nb_enreg%,list_select% : list_select%=1dim contact$(10,3) contact$(1,1)="a" contact$(2,1)="b" contact$(3,1)="c" nb_enreg%=3 list_select%=12 tu vas droit au sac de noeuds.Pour le début, déclares d' abord et initialises ensuite. Cela t' évitera des surprises. N' hésites pas à te mettre une ligne "post-it" en commentaire, tu verras, au bout de quelques centaines de lignes et quelques heures de repos cela te sera très utile pour te rappeler ce que tu voulais faire ou as fait... N' hésites pas non plus à mettre une ligne séparation. Si il est inutile de faire en 50 lignes de code ce qui peut l' être en 10, on ne paie pas les lignes vides et cela éclairci le code. il devient plus facile de s' y retrouver et de savoir qui correspond à quoi. - Code:
-
' déclarations des variables système dim i% dim nb_enreg% dim contact$(10,3) dim no_fiche% ' déclarations des variables objets dim list_select%
' initialisation des variables système contact$(1,1)="a" contact$(2,1)="b" contact$(3,1)="c" nb_enreg%=3
' initialisation des variables objets list_select%=12
' déclaration des labels label clic
' formulaire annexe form 11 top 11,0 left 11,width(0)
list list_select% parent List_select%,11 height List_select%,270 top List_select%,5 left List_select%,75 on_click List_select%,clic
' initialisation de l' objet list for i%=1 to nb_enreg% item_add list_select%,contact$(i%,1) next i%
end
' menu clic / recuperation de la ligne sélectionnée clic: no_fiche%=item_index(List_select%) print no_fiche% return | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Merci à Ygeronimi de m'avoir répondu Ven 25 Nov 2016 - 8:46 | |
| @ Ygeronimi
Tout ce que tu dis est juste. J'ai beau cliquer sur l'item du LIST à l'écran, il ne se passera rien tant que je n'ai pas programmé un événement on click.
"To learn by trials and errors."
Et il y en aura d'autres.
J'ai compris que je devais me fier plus à l'AIDE, qui est plus explicite, qu'au manuel utilisateur du site que j'avais téléchargé il y a un an pour connaître les 600 mots clés de PANORAMIC
Bonne journée à tou(te)s les PANORAMICIEN(NE)S de la part de Ouf_ca_passe autosurnommé le Calimero de l'informatique. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Ven 25 Nov 2016 - 11:09 | |
| @Ouf_ca_passe Si ça t'intéresse, je peux te passer un programme d'aide panoramic que j'ai écrit et dont je me sers très souvent, quand j'ai un doute sur un mot-clé (recherche, paramètres, etc.), avec quelques autres possibilités à explorer. La liste des mots-clés est affichée à gauche, en ordre alphabétique, il suffit de cliquer sur un mot donné pour avoir le développement à droite. Pour chaque mot-clé on peut créer un petit fichier annexe de remarques personnelles, retour d'expérience, etc. dont le contenu apparaîtra au-dessous du développement panoramic à droite. Ce programme constitue la liste des mots-clés à partir de Panoramic-Editor (donc liste à mettre à jour éventuellement en fonction des évolutions: menu Reinit). Il y a quelques fichiers (texte) annexes à créer et à tenir à jour, c'est prévu dans le programme, mais pour démarrer je peux te passer les miens. Évidemment tous les chemins de fichiers sont à modifier en fonction de ta configuration personnelle. Ces chemins de fichiers sont précisés dans les lignes 29 à 43 du programme. Le programme est un peu long (~1000 lignes...), il s'appelle tout simplement Aide.bas : Bon, il dépasse la limite autorisée alors je le mets en 2 fois. 1ère partie: - Code:
-
' Aide.bas: gestion de l'aide des mots-clés Panoramic LABEL Detol, detolf, Detail, detex, Reinit, Docweb, Objets, Objets1, Clobj, Nmc LABEL News, Recher, Afrec, Afrec1, Faff, Affiche, Vtt, Vtts, Vcel, Ajout LABEL Astuces, Kgf, Aide LABEL Majcat, Exec, Sauve, Clkc, Inil, Clkl, Fmaj, Dmc, Edmc, Vlc, Vlcok, Dtx
DIM a$, b$, d$, ra$, rm$, fa$, fc$,fl$, ff$, fmc$, s$, v$, Edipan$ DIM i%, j%, w0, h0, wl, hl, wf, wa, ncl, k%, fnm$, fnews$ DIM seq$, rec, tr, nc, lc, hc, x%, y%, cc%, cr$, maj%, q$ DIM Cat$(50), Typ$(50), ncat, n1, n2, ini%, fas$, kgp$, fct$(10), obj% q$ = CHR$(34) cr$ = CHR$(13)+CHR$(10) ' Catégories des mots-clés (à chaque catégorie correspond un libellé au-dessous) DATA "G2D","G3D","DPR","E/S","STR","FNT","SYS","MOC","LKB","MAT","OBJ","FIL" DATA "SPR","VIS","EXC","EVE","XXX","F" ' DATA "Graphismes 2D","Graphismes 3D","Déroulement du programme","Entrées/Sorties" DATA "Fonctions chaînes","Fonctions polices","Fonctions système","Souris et curseur" DATA "Lecture du clavier","Mathématiques et logique","Gestion des objets" DATA "Répertoires et fichiers","Sprites","Vidéo et son","Fonctions Excel et grilles" DATA "Événements","Divers (non classé)" ncat = 0: READ a$ WHILE a$ <> "F": ncat = ncat+1: Cat$(ncat) = a$: READ a$: END_WHILE FOR i% = 1 TO ncat: READ Typ$(i%): NEXT i% DATA "","","DÉFINITION","FONCTION","SYNTAXE","USAGE","CAS D'ERREUR" DATA "EXEMPLES","EN RAPPORT" FOR i% = 1 TO 9: READ fct$(i%): NEXT i%: ' rubriques des fiches mots-clés
' ================== RÉPERTOIRES CI-DESSOUS A AJUSTER ! =======================+ ra$ = "C:\PANORAMIC": ' Répertoire des sources Panoramic |||| kgp$ = ra$ + "KLAUS\DLLs\KGF.pdf": ' doc de KGF.dll |||| Edipan$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' |||| ' =============================================================================+ ' Les fichiers d'aide créés le seront dans un sous-répertoire 'Manuel' du répertoire ' des fichiers sources Panoramic. rm$ = ra$ + "Manuel": ' répertoire des fichiers d'aide (sera créé si inexistant) fa$ = rm$ + "Aide.txt": ' doc des mots-clés (créé) fl$ = rm$ + "Listmc.lst": ' liste brute des mots-clés (créée) ff$ = rm$ + "Listmc.cat": ' liste des catégories de mots-clés fc$ = rm$ + "FonctMC.txt": ' liste des fonctions par mot-clé (créée) fnews$ = rm$ + "News.rtf": ' ce qui est en cours (à créer, ou créé vide) fas$ = rm$ + "Astuces_Pano.rtf": ' fichier trucs et astuces (à créer, ou créé vide) fmc$ = rm$ + "Mcnr.txt": ' mots-clés non encore répertoriés
fnm$ = "http://panoramic-language.pagesperso-orange.fr/French/HISTORY.htm": ' FORUM
rec = 0 IF DIR_EXISTS(ra$) = 0 MESSAGE "Chemin des sources Panoramic non trouvé ! (variable ra$)" TERMINATE END_IF IF INSTR(ra$, " ") > 0 ' Nomcourt(ra$): ra$ = CLIPBOARD_STRING_PASTE$ END_IF IF FILE_EXISTS(Edipan$) = 0 MESSAGE "Éditeur Panoramic non trouvé ! (variable Edipan$)" TERMINATE END_IF
IF DIR_EXISTS(rm$) = 0 THEN DIR_MAKE rm$: ' création du sous-répertoire Manuel\ ' ------------------------------------------------------------------------------ w0 = 800: h0 = SCREEN_Y-40 WIDTH 0, w0: HEIGHT 0, h0: BORDER_SMALL 0 CAPTION 0, " - "+CAPTION$(0)+" : MANUEL DE RÉFÉRENCE -" wl = 200: hl = h0-60 BUTTON 8: TOP 8,2: LEFT 8,5: WIDTH 8,wl-40: HEIGHT 8,20: CAPTION 8,"MC non encore répertoriés" ON_CLICK 8,Dmc BUTTON 9: TOP 9,TOP(8): LEFT 9,WIDTH(8)+5: WIDTH 9,40: HEIGHT 9,HEIGHT(8) CAPTION 9,"Edit": ON_CLICK 9,Edmc LIST 10: TOP 10, 25: LEFT 10, 5: WIDTH 10, wl: HEIGHT 10, hl-25: ' liste des mots-clés COLOR 10,200,255,200: ON_CLICK 10, Detail
wf = w0-wl-30 LIST 11: TOP 11, 20: LEFT 11, wl+10: WIDTH 11, wf: HEIGHT 11, hl-25: ' description FONT_NAME 11, "Lucida Console": FONT_SIZE 11, 10 i% = 1+TEXT_WIDTH("ABCDEF",11)/6: ncl = INT(wf/i%)-1 COLOR 11, 255,255,200: ON_CLICK 11, Afrec ' BAR_VERTICAL 11 ALPHA 12: TOP 12, 0: LEFT 12, wl+10: WIDTH 12, wf: HEIGHT 12, 25: ' en-tête FONT_NAME 12, "Consolas": FONT_SIZE 12, 12: FONT_BOLD 12 COLOR 12, 255,255,200 BUTTON 13: TOP 13,hl-30: LEFT 13,wl+wf-100: WIDTH 13,100: CAPTION 13,"Ajouter" ON_CLICK 13, Ajout MAIN_MENU 15 SUB_MENU 16: PARENT 16, 15: CAPTION 16, "Réinit": ON_CLICK 16, Reinit SUB_MENU 25: PARENT 25, 15: CAPTION 25, "Doc en ligne": ON_CLICK 25, Docweb SUB_MENU 17: PARENT 17, 15: CAPTION 17, "Objets": ON_CLICK 17, Objets SUB_MENU 18: PARENT 18, 15: CAPTION 18, "Historique": ON_CLICK 18, Nmc SUB_MENU 19: PARENT 19, 15: CAPTION 19, "Nouveautés": ON_CLICK 19, News SUB_MENU 20: PARENT 20, 15: CAPTION 20, "Rechercher": ON_CLICK 20, Recher SUB_MENU 21: PARENT 21, 15: CAPTION 21, "Voir" SUB_MENU 22: PARENT 22, 15: CAPTION 22, "Maj catégories": ON_CLICK 22, Majcat SUB_MENU 23: PARENT 23, 15: CAPTION 23, "Astuces": ON_CLICK 23, Astuces SUB_MENU 24: PARENT 24, 15: CAPTION 24, "KGF.dll": ON_CLICK 24, Kgf SUB_MENU 28: PARENT 28, 15: CAPTION 28, "Aide": ON_CLICK 28, Aide
SUB_MENU 50: PARENT 50,21: CAPTION 50, "Liste détaillée": ON_CLICK 50, Vlc SUB_MENU 51: PARENT 51,21: CAPTION 51, "Tous les mots-clés d'un coup" ON_CLICK 51, Vtt ' affichage éventuel par catégorie de mot-clé FOR i% = 1 TO ncat j% = i%+51 SUB_MENU j%: PARENT j%,21: CAPTION j%,Typ$(i%): ON_CLICK j%, Vtt NEXT i%
DLIST 80: ' liste parallèle, catégories des mots-clés (catégorie + mot-clé)
FORM 70: WIDTH 70,1000: HEIGHT 70,HEIGHT(0): HIDE 70 LIST 71: PARENT 71, 70: TOP 71,0: LEFT 71,0: HEIGHT 71,hl: WIDTH 71,WIDTH(70)-34 FONT_NAME 71, "Consolas": FONT_SIZE 71, 10 COLOR 71,255,255,190: ON_CLICK 71, Dtx BUTTON 72: PARENT 72,70: TOP 72,HEIGHT(70)-60: LEFT 72,WIDTH(70)/2: CAPTION 72,"OK" ON_CLICK 72, Vlcok ' affichage d'une fiche de mot-clé: FORM 90: TOP 90,0: LEFT 90,100: WIDTH 90,wf+50: HEIGHT 90,950: HIDE 90 COLOR 90,200,255,200: ON_CLOSE 90, Faff: BORDER_SMALL 90 LIST 91: PARENT 91,90:TOP 91,20: WIDTH 91,WIDTH(90)-16 HEIGHT 91,HEIGHT(90)-58: COLOR 91,255,255,200: ' FONT_BOLD 91 FONT_NAME 91,"Lucida Console": FONT_SIZE 91,10: FONT_COLOR 91,0,0,128 BUTTON 92: PARENT 92,90: TOP 92,0: WIDTH 92,100: LEFT 92,WIDTH(90)-116 CAPTION 92, "OK": ON_CLICK 92,Faff BUTTON 93: PARENT 93,90: TOP 93,HEIGHT(91)-30: LEFT 93,WIDTH(91)-100 WIDTH 93,100: CAPTION 93,"Ajouter": ON_CLICK 93, Ajout ALPHA 94: PARENT 94,90: LEFT 94,100: FONT_BOLD 94: FONT_SIZE 94,12
' Tableau de tous les mots-clés: FORM 200: HIDE 200: CAPTION 200, " - LISTE DES MOTS-CLÉS PANORAMIC -" WIDTH 200,1500: HEIGHT 200,950 PICTURE 201: PARENT 201,200: TOP 201,0: LEFT 201,0: ON_CLICK 201, Vcel BUTTON 202: PARENT 202,200: CAPTION 202,"OK": ON_CLICK 202, Vtts
' -------- Structure pour mise à jour des catégories de mots-clés: ------------- FORM 300: HEIGHT 300,1100: WIDTH 300,540: HIDE 300 FONT_BOLD 300: COLOR 300,255,200,255: ON_CLOSE 300, Fmaj CAPTION 300, " - MISE À JOUR DES CATÉGORIES DES MOTS-CLÉS (fichier Listmc.cat) -" LIST 301: PARENT 301,300: HEIGHT 301,HEIGHT(300)-38: WIDTH 301,300 FONT_NAME 301,"Lucida Console": FONT_BOLD_OFF 301: ON_CLICK 301, Clkl ALPHA 310: PARENT 310,300: LEFT 310,305: TOP 310, 22: CAPTION 310, "De la ligne:" EDIT 311: PARENT 311,300: TOP 311,20: LEFT 311,370: WIDTH 311,75: ON_CLICK 311,Inil ALPHA 312: PARENT 312,300: LEFT 312,315: TOP 312,52: CAPTION 312,"à la ligne:" EDIT 313: PARENT 313,300: TOP 313,50: LEFT 313,370: WIDTH 313,75: ON_CLICK 313,Inil ALPHA 318: PARENT 318,300: TOP 318,80: LEFT 318,360 CAPTION 318, "Clic une catégorie:" LIST 319: PARENT 319,300: TOP 319,TOP(318)+20: LEFT 319,305: WIDTH 319,210 i% = TEXT_HEIGHT("ABC",319): HEIGHT 319,i%*(ncat+1) ON_CLICK 319,Clkc FOR i% = 1 TO ncat: ITEM_ADD 319,cat$(i%)+" "+typ$(i%): NEXT i% ALPHA 314: PARENT 314,300: TOP 314, TOP(319)+HEIGHT(319)+20: LEFT 314, 330: CAPTION 314," Cat." EDIT 315: PARENT 315,300: TOP 315,TOP(314)-2: LEFT 315, 370: WIDTH 315,75 BUTTON 316: PARENT 316,300: TOP 316, TOP(314)+30: LEFT 316, 370: CAPTION 316, "Appliquer" ON_CLICK 316, Exec BUTTON 317: PARENT 317,300: TOP 317,TOP(316)+50: LEFT 317, 370: CAPTION 317, "Enregistrer" ON_CLICK 317, Sauve LIST 320: PARENT 320,300: TOP 320,TOP(317)+100: LEFT 320,305: WIDTH 320,210 HEIGHT 320, 160: COLOR 320,190,255,190 ITEM_ADD 320," - USAGE: -": ITEM_ADD 320,"" ITEM_ADD 320,"Cliquer la 1ère ligne à modifier": ITEM_ADD 320," (liste de gauche)." ITEM_ADD 320,"Si plusieurs lignes consécutives," ITEM_ADD 320," cliquer la dernière ligne.": ITEM_ADD 320,"Cliquer une catégorie." ITEM_ADD 320,"Valider par 'Appliquer'.": ITEM_ADD 320,"" ITEM_ADD 320,"A la fin, sauvegarder":ITEM_ADD 320," par 'Enregistrer'" ' .............................................................................. CLEAR 80: ' dlist: catégories associées aux mots-clés
' -------------------------- LISTE DES OBJETS PANORAMIC ------------------------ FORM 400: WIDTH 400,640: HEIGHT 400,860: BORDER_SMALL 400: HIDE 400 CAPTION 400,STRING$(80," ")+"- OBJETS SYSTÈME -" FONT_NAME 400,"Consolas": FONT_SIZE 400,11: FONT_BOLD 400: COLOR 400,200,255,200 tr = 20 i%=401: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Classiques:" wa = 110 tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"ALPHA" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"BUTTON" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"FORM" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"GRID" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"MEMO" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SPIN" tr = tr+23 i%=411: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Listes:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"COMBO" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"DLIST" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"EDIT" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"LIST" tr = tr+23 i%=421: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Scènes:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"SCENE2D" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SCENE3D" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SPRITE" tr = tr+23 i%=431: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Multimédia:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"HVIEWER" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"IMAGE" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"MOVIE" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"PICTURE" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SOUND" tr = tr+23 i%=441: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Choix:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"OPTION" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"CHECK" tr = tr+23 i%=451: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Menus:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"MAIN_MENU" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SUB_MENU" tr = tr+23 i%=461: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Barres:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"PROGRESS_BAR" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SCROLL_BAR" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"TRACK_BAR" tr = tr+23 i%=471: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Dialogue:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"OPEN_DIALOG" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"SAVE_DIALOD" tr = tr+23 i%=481: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Horloge:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"TIMER" tr = tr+23 i%=491: ALPHA i%: PARENT i%,400: TOP i%,tr: CAPTION i%,"- Conteneur:" tr = tr+18 i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,10: CAPTION i%,"CONTAINER" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa: CAPTION i%,"CONTAINER_OPTION" i%=i%+1: ALPHA i%: PARENT i%,400: TOP i%,tr: LEFT i%,LEFT(i%-1)+wa+40: CAPTION i%,"PANEL" FOR i% = 401 TO 499 IF OBJECT_EXISTS(i%) = 1 IF RIGHT$(STR$(i%),1) = "1" FONT_COLOR i%,255,0,0 ELSE FONT_COLOR i%,0,0,255 ON_CLICK i%,Objets1 END_IF END_IF NEXT i% ALPHA 497: PARENT 497,400: LEFT 497,200: CAPTION 497,"( clic sur un nom d'objet )" FONT_COLOR 497,128,128,128 MEMO 498: PARENT 498,400: TOP 498,tr+30: WIDTH 498,WIDTH(400)-16: HEIGHT 498,HEIGHT(400)-tr-65 FONT_SIZE 498,10: FONT_BOLD_OFF 498: COLOR 498,255,255,180: FONT_COLOR 498,0,0,0 BAR_VERTICAL 498 BUTTON 499: PARENT 499,400: TOP 499,0: LEFT 499,WIDTH(400)-100 CAPTION 499,"Quitter": ON_CLICK 499,Clobj
maj% = 0 GOSUB Detol: ' Extraction du manuel d'aide, de l'Editeur Panoramic (si utile) IF FILE_EXISTS(ff$) = 0 FOR i% = 1 TO COUNT(10) ' catégorie XXX partout (initialisation), à mettre à jour ITEM_ADD 80, "XXX " + ITEM_READ$(10, i%) NEXT i% FILE_SAVE 80, ff$: ' création initiale du fichier des associations ELSE FILE_LOAD 80, ff$ IF maj% = 1 AND COUNT(10) > COUNT(80) ' il y a eu une mise à jour (nouveaux mots-clés), mise à niveau des deux listes FOR i% = 1 TO COUNT(10) a$ = ITEM_READ$(10, i%) IF a$ <> RIGHT_POS$(ITEM_READ$(80,i%),5): ' c'est un nouveau mot ITEM_INSERT 80, i%+1, "XXX "+a$: ' catégorie sera à mettre à jour END_IF NEXT i% FILE_SAVE 80, ff$: ' sauvegarde END_IF END_IF ' ============================================================================== END: ' ========================================================================= ' =========================== SOUS-PROGRAMMES ================================== Detol: IF DIR_EXISTS(rm$) = 0 THEN DIR_MAKE rm$ EXECUTE_WAIT "cmd.exe /c FIND "+q$+"PANORAMIC Version"+q$+" "+q$+Edipan$+q$+" | clip" ' -> "Utilise PANORAMIC Version 0.9.27i8 du 2 juin 2016" par exemple" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"Utilise"): a$ = RIGHT_POS$(a$,k%+8) k% = INSTR(a$,CHR$(0)): IF k%>0 THEN a$ = LEFT$(a$,k%-1) a$ = TRIM$(a$) b$ = "" IF FILE_EXISTS(fa$) = 1 FILE_OPEN_READ 1,fa$: FILE_READLN 1,b$: FILE_CLOSE 1: ' Version actuelle ' -> par exemple: "PANORAMIC Version 0.9.27i8 du 2 juin 2016" b$ = TRIM$(b$) END_IF IF b$ <> a$: ' version différente detolf: ' Date Editeur plus récente, ou création initiale CLEAR 10: ITEM_ADD 10,"Reconstitution de la liste ..." Chronos(1,40,80): ' affichage d'un chrono circulaire MotsClesPano(Edipan$,fl$,fa$,fc$): ' Création initiale, ou mise à jour de la doc Chronos(0): ' fin chrono maj% = 1: ' mise à jour de la liste des mots-clés effectuée END_IF CAPTION 0," - "+a$+" - MANUEL DE RÉFÉRENCE -" FILE_LOAD 10,fl$ s$ = ITEM_READ$(10,1): GOSUB detex: ' affichage du premier (#INCLUDE) RETURN ' ============================================================================== Detail: ' Clic sur un mot-clé rec = 0: HIDE 90 s$ = ITEM_INDEX$(10) detex: CAPTION 12,STRING$(30," ")+"MOM...": CLEAR 11 FILE_OPEN_READ 1,fa$: ' Liste des mots-clés (Aide.txt) FILE_READLN 1,b$ ' WHILE MID$(b$,4,50)<>s$: FILE_READLN 1,b$: END_WHILE WHILE INSTR(b$,"1_ "+s$)<1: FILE_READLN 1,b$: END_WHILE a$ = TRIM$(MID$(b$,4,50)): i% = WIDTH(11)/TEXT_WIDTH(" ",12): ' nb car CAPTION 12, STRING$(INT((i%-LEN(a$))/2)," ")+a$ FILE_CLOSE 1 obj% = 11: GOSUB Affiche: ' afficher le mot-clé s$ sur le List 11 RETURN ' ============================================================================== Affiche: ' Affichage de la fiche du mot-clé s$ dans l'objet obj% FILE_OPEN_READ 1,fa$ FILE_READLN 1,b$: WHILE INSTR(b$,"1_ "+s$)<1: FILE_READLN 1,b$: END_WHILE a$ = TRIM$(MID$(b$,4,50)): i% = WIDTH(11)/TEXT_WIDTH(" ",12): ' nb car FILE_READLN 1,b$ CLEAR obj% j% = WIDTH(obj%) i% = 1+TEXT_WIDTH("ABCDEF",11)/6: ncl = INT(j%/i%)-1 WHILE LEFT$(b$,3)<>"1_ " AND FILE_EOF(1)=0 IF MID$(b$,2,2) = "_ " i% = VAL(LEFT$(b$,1)): ITEM_ADD obj%,"" IF i%>2 d$ = fct$(i%): j% = (66-LEN(d$))/2 ITEM_ADD obj%,STRING$(j%,"=")+" "+d$+" "+STRING$(j%,"=") END_IF b$ = RIGHT_POS$(b$,4) END_IF WHILE LEN(b$)>ncl FOR k% = ncl TO 1 STEP -1 IF MID$(b$,k%,1)=" " THEN EXIT_FOR NEXT k% ITEM_ADD obj%,LEFT$(b$,k%-1): b$ = RIGHT_POS$(b$,k%+1) END_WHILE ITEM_ADD obj%,b$ FILE_READLN 1,b$ END_WHILE FILE_CLOSE 1 IF FILE_EXISTS(rm$+a$+".txu") = 1: ' fichier de commentaire perso pour ce mot-clé ITEM_ADD obj%,"" ITEM_ADD obj%,STRING$(37,CHR$(7))+"( COMMENTAIRES PERSO )"+STRING$(37,CHR$(7)) FILE_ADD obj%, q$+rm$+a$+ ".txu"+q$ END_IF RETURN ' ============================================================================== Dmc: CAPTION 12," - Mots-clés non encore documentés -" FILE_LOAD 11,fmc$ RETURN ' ============================================================================== Edmc: EXECUTE_WAIT "Notepad.exe "+fmc$ RETURN ' ============================================================================== Vlc: ' Liste détaillée complète avec fonctions FILE_LOAD 71,fc$ SHOW 70: TO_FOREGROUND 70 RETURN ' ============================================================================== Vlcok: ' clic bouton OK rec = 0: HIDE 70: s$ = ITEM_READ$(10, 1): GOTO detex RETURN ' ============================================================================== Dtx: rec = 0: HIDE 70: s$ = ITEM_INDEX$(71) k% = INSTR(s$,":"): s$ = TRIM$(LEFT$(s$,k%-1)) GOTO detex: ' doc du mot-clé cliqué RETURN ' ============================================================================== Reinit: a$ = "Reconstituer l'aide complète à partir de l'Éditeur Panoramic ?" IF MESSAGE_CONFIRMATION_YES_NO(a$) = 1 GOSUB detolf END_IF RETURN ' ============================================================================== Docweb: EXECUTE_WAIT "http://panoramic-language.pagesperso-orange.fr/French/DOCUMENTS.htm" RETURN ' ============================================================================== Objets: SHOW 400 RETURN ' ============================================================================== Clobj: HIDE 400 RETURN ' ============================================================================== Objets1: i% = NUMBER_CLICK SELECT i% CASE 402: ' ALPHA a$ = "Objet 6 : ALPHA" + cr$ a$ = a$ + cr$ + "Visualisation d'un texte statique, non modifiable" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 65 x 17" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Texte à afficher: CAPTION n,chaîne" CASE 403: ' BUTTON a$ = "Objet 2 : BUTTON" + cr$ a$ = a$ + cr$ + "Affichage d'un bouton cliquable" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 75 x 25" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Intitulé: CAPTION n,chaîne" a$ = a$ + cr$ + "Lecture: par ON_CLICK n,adresse" a$ = a$ + "Événements: IF CLICKED(n) = 1, ON_KEY_UP, ON_KEY_DOWN" CASE 404: ' FORM a$ = "Objet 7 : FORM" + cr$ a$ = a$ + cr$ + "Création d'un conteneur d'objets" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 320 x 240" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Intitulé: CAPTION n,string" a$ = a$ + cr$ + "Modifier la bordure: BORDER_HIDE, BORDER_SMALL, BORDER_NORMAL" a$ = a$ + cr$ + "Événements: ON_CLICK, ON_KEY_UP, ON_KEY_DOWN, ON_CLOSE" CASE 405: ' GRID a$ = "Objet 22 : GRID" + cr$ a$ = a$ + cr$ + "Création d'un objet grille (tableau)" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 320 x 120 (1+4 lignes, 1+4 colonnes)" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Caractéristiques:" a$ = a$ + cr$ + " HINT, HINT_HIDE, FULL_SPACE" a$ = a$ + cr$ + " GRID_COLUMN, GRID_COLUMN_FIXED, GRID_COLUMN_WIDTH" a$ = a$ + cr$ + " GRID_ROW, GRID_ROW_FIXED, GRID_ROW_HEIGHT" a$ = a$ + cr$ + " GRID_ONE_COLUMN_WIDTH, GRID_ONE_ROW_HEIGHT" a$ = a$ + cr$ + " GRID_FIXED_COLOR, GRID_WRITE, GRID_READ$" a$ = a$ + cr$ + " GRID_X_TO_COLUMN, GRID_Y_TO_ROW" a$ = a$ + cr$ + " GRID_COLUMN_SIZING_ON, GRID_COLUMN_SIZING_OFF" a$ = a$ + cr$ + " GRID_ROW_SIZING_ON, GRID_ROW_SIZING_OFF" a$ = a$ + cr$ + "Gestion de l'événement: ON_CLICK n, étiquette" CASE 406: ' MEMO a$ = "Objet 4 : MEMO" + cr$ a$ = a$ + cr$ + "Visualisation d'une zone multilignes, modifiable par l'utilisateur" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 185 x 89" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Barres de défilement: BAR_HORIZONTAL, BAR_VERTICAL, BAR_BOTH, BAR_NONE" a$ = a$ + cr$ + "Nettoyage du Memo: CLEAR n" a$ = a$ + cr$ + "Charger un fichier: FILE_LOAD n, fichier" a$ = a$ + cr$ + "Ajouter un fichier: FILE_ADD n, fichier" a$ = a$ + cr$ + "Sauvegarder la liste dans un fichier: FILE_SAVE n, fichier" a$ = a$ + cr$ + "Ajouter du texte: ITEM_ADD n, chaîne" a$ = a$ + cr$ + "Insérer du texte (après x): ITEM_INSERT n, x, chaîne" a$ = a$ + cr$ + "Supprimer une ligne: ITEM_DELETE n, x" a$ = a$ + cr$ + "Lire une ligne (x): ITEM_READ$(n, x)" a$ = a$ + cr$ + "Nombre d'éléments: COUNT(n)" CASE 407: ' SPIN a$ = "Objet 21 : SPIN" + cr$ a$ = a$ + cr$ + "Choix d'une valeur numérique par incrémentation ou décrémentation" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 121 x 21" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Forçage de la valeur initiale: POSITION n,v" a$ = a$ + cr$ + "Forçage des valeurs maxi et mini: MAX n,x MIN n,y" a$ = a$ + cr$ + "Lecture de la position: POSITION(n), TOP(n), LEFT(n)" CASE 412: ' COMBO a$ = "Objet 5 : COMBO" + cr$ a$ = a$ + cr$ + "Choix d'une ligne modifiable par l'utilisateur dans une zone multilignes" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 145 x 21" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Charger un fichier: FILE_LOAD n, fichier" a$ = a$ + cr$ + "Ajouter un fichier: FILE_ADD n, fichier" a$ = a$ + cr$ + "Ajouter du texte: ITEM_ADD n, chaîne" a$ = a$ + cr$ + "Insérer du texte (après x): ITEM_INSERT n, x, chaîne" a$ = a$ + cr$ + "Supprimer une ligne: ITEM_DELETE n, x" a$ = a$ + cr$ + "Lire une ligne (x): ITEM_READ$(n, x)" a$ = a$ + cr$ + "Ligne sélectionnée: ITEM_INDEX(n), ITEM_INDEX$(n)" a$ = a$ + cr$ + "Visualiser un texte: TEXT n,a$" a$ = a$ + cr$ + "Nombre d'éléments: COUNT(n)" a$ = a$ + cr$ + "Effacement total: CLEARn" a$ = a$ + cr$ + "Charger la liste des polices système: FONT_NAMES_LOAD" a$ = a$ + cr$ + "Ajouter la liste des polices système: FONT_NAMES_ADD" a$ = a$ + cr$ + "Sauvegarder la liste dans un fichier: FILE_SAVE n, fichier" CASE 413: ' DLIST a$ = "Objet 26 : DLIST" + cr$ a$ = a$ + cr$ + "Liste d'articles chaîne non visibles" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Charger un fichier: FILE_LOAD n, fichier" a$ = a$ + cr$ + "Ajouter un fichier: FILE_ADD n, fichier" a$ = a$ + cr$ + "Sauvegarder la liste dans un fichier: FILE_SAVE n, fichier" a$ = a$ + cr$ + "Ajouter du texte: ITEM_ADD n, chaîne" a$ = a$ + cr$ + "Insérer du texte (après x): ITEM_INSERT n, x, chaîne" a$ = a$ + cr$ + "Supprimer une ligne: ITEM_DELETE n, x" a$ = a$ + cr$ + "Lire une ligne (x): ITEM_READ$(n, x)" a$ = a$ + cr$ + "Nombre d'éléments: COUNT(n)" a$ = a$ + cr$ + "Effacement total: CLEAR n" a$ = a$ + cr$ + "Charger la liste des polices système: FONT_NAMES_LOAD" a$ = a$ + cr$ + "Ajouter la liste des polices système: FONT_NAMES_ADD" CASE 414: ' EDIT a$ = "Objet 3 : EDIT" + cr$ a$ = a$ + cr$ + "Saisie et/ou modification d'une ligne de texte" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 121 x 21" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Visualiser un texte: TEXT n, chaîne" a$ = a$ + cr$ + "Lire le texte entré par l'utilisateur: TEXT$(n)" a$ = a$ + cr$ + "Événements: ON_CLICK, ON_CHANGE, ON_KEY_UP, ON_KEY_DOWN" CASE 415: ' LIST a$ = "Objet 8 : LIST" + cr$ a$ = a$ + cr$ + "Choix d'une ligne dans une zone multilignes (non modifiable)" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 121 x 97" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Charger un fichier: FILE_LOAD n, fichier" a$ = a$ + cr$ + "Ajouter d'un fichier: FILE_ADD n, fichier" a$ = a$ + cr$ + "Ajouter du texte: ITEM_ADD n, chaîne" a$ = a$ + cr$ + "Insérer du texte (après x): ITEM_INSERT n, x, chaîne" a$ = a$ + cr$ + "Supprimer une ligne: ITEM_DELETE n, x" a$ = a$ + cr$ + "Lire une ligne (x): ITEM_READ$(n, x)" a$ = a$ + cr$ + "Ligne sélectionnée: x = ITEM_INDEX(n) ou a$ = ITEM_INDEX$(n)" a$ = a$ + cr$ + "Nombre d'éléments: COUNT(n)" a$ = a$ + cr$ + "Effacement total: CLEAR n" a$ = a$ + cr$ + "Charger la liste des polices système: FONT_NAMES_LOAD" a$ = a$ + cr$ + "Ajouter la liste des polices système: FONT_NAMES_ADD" a$ = a$ + cr$ + "Sauvegarder la liste dans un fichier: FILE_SAVE n, fichier" CASE 422: ' SCENE2D a$ = "Objet 27 : SCENE2D" + cr$ a$ = a$ + cr$ + "Visualisation d'un univers 2D" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 200 x 200" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "TOP, LEFT, WIDTH, HEIGHT, COLOR, FULL_SPACE, STRETCH_ON, STRETCH_OFF" a$ = a$ + cr$ + "FILE_LOAD" CASE 423: ' SCENE3D a$ = "Objet 1 : SCENE3D" + cr$ a$ = a$ + cr$ + "Visualisation d'un monde 3D" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 200 x 200" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "TOP, LEFT, WIDTH, HEIGHT, COLOR, HINT, HINT_HIDE, FULL_SPACE, ON_CLICK" CASE 424: ' SPRITE a$ = "Objet 27: SPRITE" + cr$ a$ = a$ + cr$ + "Image déplaçable sur un SCENE2D sans perturber celui-ci"+cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): " + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "SPRITE_FILE_LOAD, SPRITE_IMAGE_LOAD, SPRITE_X_POSITION, SPRITE_Y_POSITION" a$ = a$ + cr$ + "SPRITE_POSITION, SPRITE_HIDE, SPRITE_SHOW, SPRITE_DELETE" CASE 432: ' HVIEWER a$ = "Objet 36 : HVIEWER" + cr$ a$ = a$ + cr$ + "Pour visualiser un fichier au format HTML" a$ = a$ + cr$ + "Dimensions implicites (pixels): 185 x 105" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "FILE_LOAD" CASE 433: ' IMAGE a$ = "Objet 41 : IMAGE" + cr$ a$ = a$ + cr$ + "Création d'un objet IMAGE en mémoire" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "FILE_LOAD, FILE_SAVE, 2D_IMAGE_COPY, 2D_IMAGE_PASTE," a$ = a$ + cr$ + "CLIPBOARD_COPY, CLIPBOARD_PASTE, SPRITE_IMAGE_LOAD, 2D_IMAGE_TEXTURE" CASE 434: ' MOVIE a$ = "Objet 15 : MOVIE" + cr$ a$ = a$ + cr$ + "Création d'un objet MOVIE" + cr$ a$ = a$ + "pour jouer une vidéo multimédia chargée par FILE_LOAD" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 100 x 80" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "TOP, LEFT, WIDTH, HEIGHT, HINT, HINT_HIDE, FULL_SPACE, COLOR," a$ = a$ + cr$ + "ON_CLICK, FILE_LOAD" CASE 435: ' PICTURE a$ = "Objet 9 : PICTURE" + cr$ a$ = a$ + cr$ + "Création d'une zone d'affichage d'une image BMP ou JPG" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 105 x 105" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Chargement d'une image dans le picture: FILE_LOAD n, Image" a$ = a$ + cr$ + "Ajuster l'image à la fenêtre: STRETCH_ON n" a$ = a$ + cr$ + " (inverse: STRETCH_OFF n)" a$ = a$ + cr$ + "Position de la souris sur le picture: MOUSE_X_POSITION, MOUSE_Y_POSITION" a$ = a$ + cr$ + "Effacement total (doit être la cible du 2D_TARGET): CLS" CASE 436: ' SOUND a$ = "Objet 14 : SOUND" + cr$ a$ = a$ + cr$ + "Création d'un objet SOUND" + cr$ a$ = a$ + "pour jouer un fichier son chargé par FILE_LOAD" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "FILE_LOAD, PLAY" CASE 442: ' OPTION a$ = "Objet 11 : OPTION" + cr$ a$ = a$ + cr$ + "Sous-ensemble de CONTAINER_OPTION" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 113 x 117" + cr$ a$ = a$ + cr$ + " Commandes associées:" + cr$ a$ = a$ + cr$ + "PARENT n (n = le CONTAINER_OPTION)" a$ = a$ + cr$ + "Intitulé: CAPTION n, chaîne" a$ = a$ + cr$ + "Forçage d'une option: MARK_ON, MARK_OFF" CASE 443: ' CHECK a$ = "Objet 10 : CHECK" + cr$ a$ = a$ + cr$ + "Case à cocher" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 97 x 17" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Forçage de l'option: MARK_ON ou MARK_OFF" a$ = a$ + cr$ + "Intitulé: CAPTION" a$ = a$ + cr$ + "Lecture: IF CHECKED(n) = 1" CASE 452: ' MAIN_MENU a$ = "Objet 12 : MAIN_MENU" + cr$ a$ = a$ + cr$ + "Création d'un système de menus" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "ON_CLICK" CASE 453: ' SUB_MENU a$ = "Objet 13 : SUB_MENU" + cr$ a$ = a$ + cr$ + "Création des sous-menus d'un MAIN_MENU" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "PARENT, CAPTION, HIDE, SHOW, ACTIVE, INACTIVE, ON_CLICK" CASE 462: ' PROGRESS_BAR a$ = "Objet 20 : PROGRESS_BAR" + cr$ a$ = a$ + cr$+ "Visualisation d'un indicateur de progression" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 150 x 17" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Orientation: HORIZONTAL n, VERTICAL n " a$ = a$ + cr$ + "Valeurs limites: MIN n, v et MAX n, v" a$ = a$ + cr$ + "Fixation de la position initiale: POSITION n, v" a$ = a$ + cr$ + "Lecture de la position actuelle: POSITION(n)" CASE 463: ' SCROLL_BAR a$ = "Objet 19 : SCROLL_BAR" + cr$ a$ = a$ + cr$ + "Déplacement d'un curseur carré vers une valeur choisie" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 121 x 17" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Orientation: HORIZONTAL n, VERTICAL n " a$ = a$ + cr$ + "Valeurs limites: MIN n, v et MAX n, v" a$ = a$ + cr$ + "Fixation de la position initiale: POSITION n, v" a$ = a$ + cr$ + "Lecture de la position actuelle: POSITION(n)" CASE 464: ' TRACK_BAR a$ = "Objet 16 : TRACK_BAR" + cr$ + cr$ a$ = a$ + "Choix d'une valeur par déplacement d'un curseur" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 150 x 45" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Orientation: HORIZONTAL n, VERTICAL n " a$ = a$ + cr$ + "Valeurs limites: MIN n, v et MAX n, v" a$ = a$ + cr$ + "Fixation de la position initiale: POSITION n, v" a$ = a$ + cr$ + "Lecture de la position actuelle: POSITION(n)" CASE 472: ' OPEN_DIALOG a$ = "Objet 17 : OPEN_DIALOG" + cr$ a$ = a$ + cr$ + "Création d'un OPEN_DIALOG pour choix de fichier ultérieur" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "FILTER, FILE_NAME$, DIR_DIALOG" CASE 473: ' SAVE_DIALOG a$ = "Objet 18 : SAVE_DIALOG" + cr$ a$ = a$ + cr$ + "Création d'un SAVE_DIALOG pour sauvegarde ultérieure de fichier" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "FILTER, FILE_NAME$, DIR_DIALOG" CASE 482: ' TIMER a$ = "Objet 28 : TIMER" + cr$ a$ = a$ + cr$ + "Déclenchement d'une interruption périodique" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Période (implicite 1000ms): TIMER_INTERVAL" a$ = a$ + cr$ + "Désactivation/Réactivation: TIMER_OFF, TIMER_ON" a$ = a$ + cr$ + "Gestion de l'événement: ON_TIMER n, étiquette" CASE 492: ' CONTAINER a$ = "Objet 23 : CONTAINER" + cr$ a$ = a$ + cr$ + "Création d'un conteneur d'objets système" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "TOP, LEFT, WIDTH, HEIGHT, HINT, HINT_HIDE, FULL_SPACE," a$ = a$ + cr$ + "PARENT, ON_CLICK" CASE 493: ' CONTAINER_OPTION a$ = "Objet 32 : CONTAINER_OPTION" + cr$ a$ = a$ + cr$ + "Choix d'une option parmi plusieurs (choix exclusif)" + cr$ a$ = a$ + cr$ + "Dimensions implicites (pixels): 185 x 105" + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "Positionnement et dimensions: TOP, LEFT, HEIGHT, WIDTH" a$ = a$ + cr$ + "Intitulé: CAPTION n, chaîne" a$ = a$ + cr$ + "Événements: ON_CLICK n, étiquette" CASE 494: ' PANEL a$ = "Objet 29 : PANEL" + cr$ a$ = a$ + cr$ + "- Dimensions implicites (pixels): 185 x 105" + cr$ a$ = a$ + cr$ + "Création d'un conteneur d'objets système." a$ = a$ + cr$ + "Ce conteneur ne possède pas de contour." + cr$ a$ = a$ + cr$ + "- Commandes associées:" + cr$ a$ = a$ + cr$ + "CAPTION, CAPTION$(), ON_CLICK, ON_DOUBLE_CLICK" END_SELECT CLEAR 498: ITEM_ADD 498,a$ RETURN
Dernière édition par JL35 le Ven 25 Nov 2016 - 11:16, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) Ven 25 Nov 2016 - 11:11 | |
| 2ème partie (à coller derrière la 1ère ci-dessus): - Code:
-
' ============================================================================== Nmc: EXECUTE_WAIT fnm$ RETURN ' ============================================================================== News: EXECUTE_WAIT "Write.exe " + fnews$ RETURN ' ============================================================================== Recher: ' rechercher une expression seq$ dans la documentation complète seq$ = MESSAGE_INPUT$("Recherche d'une séquence dans les fiches","Séquence cherchée:","") IF seq$ = "" THEN RETURN CLEAR 11 CAPTION 12, "RECHERCHE DE LA SÉQUENCE: " + seq$ seq$ = UPPER$(seq$): tr = 0 FILE_OPEN_READ 1,fa$ WHILE FILE_EOF(1)=0 FILE_READLN 1,a$ IF LEFT$(a$,3)="1_ " THEN b$ = MID$(a$,4,50): ' nom du mot-clé IF LEFT$(a$,3)="2_ " k% = INSTR(UPPER$(a$),seq$) IF k%>0 THEN ITEM_ADD 11,b$: tr = 1 END_IF END_WHILE FILE_CLOSE 1 d$ = " ***** RECHERCHE TERMINÉE: " IF tr = 0 d$ = d$ + "Non trouvé ! *****" ELSE d$ = d$ + " Clic un article pour détails *****" END_IF ITEM_ADD 11, "": ITEM_ADD 11, d$ rec = 1 RETURN ' ============================================================================== Afrec: IF rec = 0 OR tr = 0 THEN RETURN IF ITEM_INDEX(11) >= (COUNT(11)-1) THEN RETURN s$ = ITEM_INDEX$(11) Afrec1: ' visualisation d'une fiche dans le List 91 SHOW 90: TO_FOREGROUND 90: CLEAR 91 CAPTION 94,s$ obj% = 91: GOSUB Affiche RETURN ' ============================================================================== Faff: HIDE 90 RETURN ' ============================================================================== Vtt: ' Voir tous les mots-clés ou une catégorie seulement i% = NUMBER_CLICK IF i% = 51 ' Voir tous les mots-clés FILE_LOAD 10, fl$ SHOW 200 WIDTH 201,WIDTH(200)-16: HEIGHT 201,HEIGHT(200)-38: COLOR 201,200,255,200 TOP 202,HEIGHT(200)-70: LEFT 202,WIDTH(201)/2-40 nc = 10: lc = INT(WIDTH(201)/nc): hc = 15 x% = 0: y% = 0: d$ = "": cc% = -1 2D_TARGET_IS 201: 2D_FILL_COLOR 255,255,200 PRINT_TARGET_IS 201: FONT_SIZE 201,8: ' font_bold 201 FONT_NAME 201,"Arial" HIDE 201 FILE_OPEN_READ 1, fl$ WHILE FILE_EOF(1) = 0 FILE_READLN 1, a$ IF LEFT$(a$,2) <> d$ THEN cc% = -1 * cc% FONT_COLOR 201,0,0,0: IF cc% <> 1 THEN FONT_COLOR 201,0,0,255 d$ = LEFT$(a$, 2) PRINT_LOCATE x%, y%: PRINT a$ x% = x%+lc: IF x%>=(WIDTH(201)-20) THEN x% = 0: y% = y% + hc END_WHILE FILE_CLOSE 1 SHOW 201 ELSE ' Voir une catégorie seulement k% = i% - 51: d$ = Cat$(k%): ' catégorie cliquée CLEAR 10 FOR i% = 1 TO COUNT(80) a$ = ITEM_READ$(80, i%) IF LEFT$(a$, 3) = d$ ITEM_ADD 10, RIGHT_POS$(a$,5) END_IF NEXT i% END_IF RETURN ' ============================================================================== Vcel: ' Clic sur un élément de la liste complète x% = MOUSE_X_LEFT_DOWN(201): y% = MOUSE_Y_LEFT_DOWN(201) i% = 1 + nc*INT(y%/hc) + INT(x%/lc) s$ = ITEM_READ$(10, i%) IF x% < WIDTH(200)/2 ' LEFT 90,WIDTH(200)/2+40 ELSE ' LEFT 90,40 END_IF GOTO Afrec1 ' ============================================================================== Vtts: HIDE 200 RETURN ' ============================================================================== Ajout: ' Ajout de commentaires personnels à une fiche (création fichier spécial txu) a$ = q$ + rm$ + s$ + ".txu" + q$ EXECUTE_WAIT "Notepad.exe " + a$ RETURN ' ============================================================================== Astuces: EXECUTE_WAIT "Wordpad.exe " + fas$: ' trucs et astuces RETURN ' ============================================================================== Kgf: EXECUTE_WAIT kgp$: ' Affichage de KGF.pdf dans Acrobat: doc de KGF.dll RETURN ' ============================================================================== Aide: v$ = CHR$(13)+CHR$(10) a$ = " - VISUALISATION DE LA DOCUMENTATION SUR LES MOTS-CLÉS PANORAMIC -"+v$+v$ a$ = a$+"Aide succincte :"+v$+v$ a$ = a$+"La liste et l'aide des mots-clés sont extraits de Panoramic_Editor."+v$ a$ = a$+"Cette extraction est refaite automatiquement à chaque nouvelle version de"+v$ a$ = a$+"l'Éditeur, mais on peut également forcer la mise à jour (menu 'Réinit')."+v$ a$ = a$+"Le programme d'extraction génère trois fichiers : un fichier liste brute des mots-"+v$ a$ = a$+"clés, un fichier contenant l'ensemble de la documentation pour tous les mots-clés,"+v$ a$ = a$+"et un fichier de correspondance entre chaque mot-clé et sa fonction. L'ensemble"+v$ a$ = a$+"est rangé dans un répertoire particulier à définir (voir les chemins des répertoires"+v$ a$ = a$+"en début de programme, à adapter à ses conditions locales)."+v$ a$ = a$+"Affichage : à gauche la liste complète des mots-clés, à droite la fiche du mot-clé"+v$ a$ = a$+"cliqué dans la liste."+v$+v$ a$ = a$+"- Menu 'Réinit' : régénération des fichiers (voir plus haut)."+v$ a$ = a$+"- Menu 'Objets' : affichage d'une page présentant les caractéristiques principales"+v$ a$ = a$+"des différents objets Panoramic, pour mémoire."+v$ a$ = a$+"- Menu 'Historique' : lance la connexion sur la rubrique 'Historique' (évolution"+v$ a$ = a$+"du langage) du forum Panoramic."+v$ a$ = a$+"- Menu 'Nouveautés' : affichage d'un fichier au format .rtf (Wordpad), aide-"+v$ a$ = a$+"mémoire à tenir à jour soi-même, extrait de la rubrique 'Ce qui est en cours' du"+v$ a$ = a$+"forum."+v$ a$ = a$+"- Menu 'Rechercher' : permet de rechercher un mot ou une série de mots dans"+v$ a$ = a$+"toutes les fiches mots-clés, pour rechercher par exemple un mot-clé particulier."+v$ a$ = a$+"- Menu 'Voir' : Il est possible de visualiser l'ensemble des mots-clés dans une"+v$ a$ = a$+"seule fenêtre. En cliquant sur un élément, on obtient la fiche correspondant à"+v$ a$ = a$+"cet élément."+v$ a$ = a$+"Il est possible également de ne visualiser que les mots-clés appartenant à une"+v$ a$ = a$+"catégorie donnée, il faut avoir préalablement classé les mots-clés selon ces"+v$ a$ = a$+"critères (voir plus loin)."+v$ a$ = a$+"- Menu 'Maj catégories' : classement des mots-clés, voir plus loin."+v$+v$ a$ = a$+"Il a été ajouté la possibilité d'associer à un 'mot-clé' une fiche"+v$ a$ = a$+"'commentaire personnel', dans laquelle on peut consigner ses remarques"+v$ a$ = a$+"personnelles, exemples de programmes, aide-mémoire, etc. concernant ce mot-"+v$ a$ = a$+"clé particulier. Ce 'commentaire perso' sera affiché automatiquement à chaque"+v$ a$ = a$+"appel de la fiche du mot-clé correspondant."+v$ a$ = a$+"Pour créer et/ou modifier une fiche de commentaire perso, il suffit de cliquer"+v$ a$ = a$+"le bouton 'Ajouter' en bas à droite, au moment de l'affichage de la fiche."+v$+v$ a$ = a$+"Classement des mots-clés par catégories :"+v$ a$ = a$+"Un classement arbitraire par catégorie d'usage peut être réalisé: il est créé"+v$ a$ = a$+"au lancement un fichier des mots-clés avec leur catégorie (tous XXX au départ)."+v$ a$ = a$+"Mise à jour : Menu 'Maj catégorie', modifier le mot clé ou une série de mots-clés,"+v$ a$ = a$+"puis enregistrer le résultat, qui sera conservé."+v$ a$ = a$+"A chaque nouveau mot-clé, (nouvelles versions) il faudra faire son classement."+v$ a$ = a$+"On peut adapter les catégories à sa guise: série de DATAs en tête du programme,"+v$ a$ = a$+"le menu 'Voir' sera adapté en conséquence." MESSAGE a$ RETURN ' ============================================================================== Majcat: ' gestion des catégories des mots-clés SHOW 300 CLEAR 301 FOR i% = 1 TO COUNT(80) ITEM_ADD 301, RIGHT$(" "+STR$(i%),3)+" "+ITEM_READ$(80,i%) NEXT i% RETURN ' ============================================================================== Exec: n1 = VAL(TEXT$(311)): n2 = VAL(TEXT$(313)) IF n2 = 0 THEN n2 = n1: ' une seule ligne IF n2 < n1 THEN RETURN IF n1<1 OR n1>COUNT(301) THEN RETURN IF n2<1 OR n2>COUNT(301) THEN RETURN d$ = TEXT$(315) FOR i% = n1 TO n2 a$ = ITEM_READ$(301, i%) b$ = LEFT$(a$, 4) + d$ + RIGHT_POS$$(a$, ITEM_DELETE 301, i%: ITEM_INSERT 301, i%, b$ NEXT i% ini% = 0 RETURN ' ============================================================================== Sauve: CLEAR 80 FOR i% = 1 TO COUNT(301) a$ = RIGHT_POS$(ITEM_READ$(301, i%), 5) ITEM_ADD 80, a$ NEXT i% FILE_SAVE 80, ff$ RETURN ' ============================================================================== Clkl: i% = VAL(LEFT$(ITEM_INDEX$(301),3)): ' ligne cliquée IF ini% = 0 TEXT 311, STR$(i%): TEXT 313, STR$(i%): ini% = 1 ELSE IF ini% = 1 TEXT 313, STR$(i%): ini% = 2 ELSE IF ini% = 2 ' on recommence à la 1ère ligne TEXT 311, STR$(i%): TEXT 313, STR$(i%): ini% = 1 END_IF END_IF END_IF RETURN ' ============================================================================== Inil: IF CLICKED(311) = 1 THEN ini% = 0: TEXT 311,"": TEXT 313,"" IF CLICKED(313) = 1 THEN ini% = 1 RETURN ' ============================================================================== Clkc: a$ = LEFT$(ITEM_INDEX$(319), 3) TEXT 315, a$ RETURN ' ============================================================================== Fmaj: HIDE 300 RETURN ' ============================================================================== ' ============================================================================== SUB MotsClesPano(Edp$,fl$,fa$,fc$) ' Extraction depuis Edp$ (Panoramic_Editor.exe) de la documentation des mots-clés ' Panoramic. ' Résultats dans: ' - fl$: liste brute des mots-clés ' - fa$: documentation complète, par mot-clé ' - fc$: liste des fonctions par mot_clé (parallèle à fl$) DIM_LOCAL rm$,sd$,sf$,q$,p%,fz$,a$,b$,sz%,k%,k1%,nmc%,dl% rm$ = FILE_EXTRACT_PATH$(fl$): ' répertoire de travail provisoire fz$ = rm$+"ppp.txt": ' fichier provisoire de travail (créé puis supprimé) sd$ = "300D0A23494E434C554445": ' séquence début de recherche = 0<=#INCLUDE sf$ = "0D0A460D0A46": ' séquence fin de recherche = <=F<=F q$ = CHR$(34) p% = 0: ' recherche à partir du début de l'Éditeur FILEBIN_OPEN_READ 8,Edp$: FILEBIN_OPEN_WRITE 9,fz$: sz% = FILEBIN_SIZE(8) FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) WHILE k% < 1 IF FILEBIN_POS(8) >= sz% CLIPBOARD_STRING_COPY STRING$(16,"0"): ' séquence début non trouvée FILEBIN_CLOSE 8: FILEBIN_CLOSE 9: EXIT_SUB END_IF p% = p%+2000-LEN(sd$): FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) END_WHILE k1% = INSTR_POS(a$,sf$,k%) IF k1% > 0 a$ = MID$(a$,k%,k1%+LEN(sf$)-k%) FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$) ELSE a$ = RIGHT_POS$(a$,k%): k% = 0 WHILE k% < 1 FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ p% = p%+2000-LEN(sf$) FILEBIN_HEXA_READ 8,2000,a$: k%=INSTR(a$,sf$) END_WHILE a$ = LEFT$(a$,k%-1)+sf$ FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ END_IF FILEBIN_CLOSE 8: FILEBIN_CLOSE 9 FILE_OPEN_READ 8, fz$: FILE_OPEN_WRITE 9,fa$: FILE_OPEN_WRITE 6,fl$ FILE_OPEN_WRITE 7,fc$ EXECUTE_WAIT "cmd.exe /c FIND /N "+q$+"Utilise PANORAMIC Version"+q$+" "+Edp$+" | clip" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"]") FILE_WRITELN 9,RIGHT_POS$(a$,k%+9): ' Version de l'Editeur FILE_READLN 8,a$: nmc% = 0 WHILE FILE_EOF(8) = 0 FILE_READLN 8,a$ IF LEN(a$) = 1 AND NUMERIC(a$) = 1 WHILE a$<>"1": FILE_READLN 8,a$: END_WHILE: FILE_WRITELN 9,"": ' saut de ligne FILE_READLN 8,a$: FILE_WRITELN 9,"1_ "+a$: nmc%=nmc%+1: ' MOT-CLÉ COMPLET IF LEFT$(a$,1) = "(" IF INSTR(a$,"STEP") > 0 a$ = "STEP" ELSE a$ = "TO" END_IF END_IF FILE_WRITELN 6,a$: b$ = a$ WHILE a$<>"2": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"2_ "+a$: ' RÉSUMÉ IF LEN(b$)<24 THEN b$=b$+STRING$(24-LEN(b$)," ") FILE_WRITELN 7,b$+" :"+a$: ' fonction globale WHILE a$<>"3": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"3_ "+a$: ' DÉFINITION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"4": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"4_ "+a$: ' FONCTION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"5": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"5_ "+a$: ' SYNTAXE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"6": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"6_ "+a$: ' USAGE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"7": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"7_ "+a$: ' CAS D'ERREUR FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"8": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"8_ "+a$: ' EXEMPLES FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"9": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"9_ "+a$: ' EN RAPPORT FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE END_IF END_WHILE FILE_CLOSE 8: FILE_CLOSE 9: FILE_CLOSE 6: FILE_CLOSE 7 FILE_DELETE fz$ dl%=1000: WHILE OBJECT_EXISTS(dl%)=1: dl%=dl%+1: END_WHILE DLIST dl%: FILE_LOAD dl%,fl$: SORT dl%: FILE_SAVE dl%,fl$: DELETE dl% END_SUB ' ============================================================================== SUB Chronos(fct%,x%,y%) ' Affichage d'un chrono à aiguille tournante en x%,y% de l'écran ' fct%=1: lancement, fct%=0: arrêt DIM_LOCAL Chron$, fpa$ Chron$ = ra$+"Chronos.exe": ' affichage d'un chrono circulaire fpa$ = ra$+"Fminut.txt": ' fichier paramètres pour Chronos.exe IF FILE_EXISTS(Chron$) = 0 THEN EXIT_SUB IF fct% = 1 FILE_OPEN_WRITE 1,fpa$ FILE_WRITELN 1,STR$(x%): FILE_WRITELN 1,STR$(y%) FILE_CLOSE 1 CLIPBOARD_STRING_COPY fpa$ EXECUTE Chron$: ' programme d'affichage du chrono ELSE FILE_DELETE fpa$: ' arrêt du chrono END_IF END_SUB ' ============================================================================== SUB Nomcourt(Path$) ' Conversion de Path long en Path court (sans espace) -> clipboard DIM_LOCAL u$ FILE_OPEN_WRITE 9, "C:\TEMP\nc.bat" FILE_WRITELN 9, "@echo off" FILE_WRITELN 9, "for %%A in ("+CHR$(34)+Path$+CHR$(34)+") do echo.%%~sfA | clip" FILE_CLOSE 9 EXECUTE_WAIT "C:\TEMP\nc.bat": FILE_DELETE "C:\TEMP\nc.bat" ' suppression des 3 caractères: espace, retour chariot, interligne de fin u$=CLIPBOARD_STRING_PASTE$: u$=LEFT$(u$,LEN(u$)-3): CLIPBOARD_STRING_COPY u$ END_SUB ' ============================================================================== Je répète, si ça t'intéresse je te passerai mes fichiers annexes de travail, pour démarrer. | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Oui Oui Ven 25 Nov 2016 - 14:44 | |
| @ JL 35
Merci pour ta proposition.
Je suis preneur.
Cordialement et bon we | |
| | | Contenu sponsorisé
| Sujet: Re: PANORAMIC et informatique de gestion (les tableaux) | |
| |
| | | | PANORAMIC et informatique de gestion (les tableaux) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |