FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Button_picture
par pascal10000 Aujourd'hui à 11:41

» Pourquoi le compilateur stagne
par Minibug Aujourd'hui à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Aujourd'hui à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Aujourd'hui à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Aujourd'hui à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Hier à 17:27

» Mah-Jong européen new-look
par Minibug Mar 12 Déc 2017 - 22:31

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 PANORAMIC et informatique de gestion (les tableaux)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Merci Jean-Claude   Lun 3 Oct 2016 - 13:16

Cordialement
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Lun 3 Oct 2016 - 21:46

Tu peux utiliser la commande SORT de l’invite de commande.
Syntaxe :
 


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:
 

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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Froggy One

avatar

Nombre de messages : 395
Date d'inscription : 06/01/2012

MessageSujet: Re   Lun 3 Oct 2016 - 23: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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gaeldwest.wordpress.com
Froggy One

avatar

Nombre de messages : 395
Date d'inscription : 06/01/2012

MessageSujet: Re Re   Lun 3 Oct 2016 - 23:34

Quelle buse je fais, des fois ! C'était facile à trouver, je l'ai. Désolé, bonne soirée !!!
Rolling Eyes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gaeldwest.wordpress.com
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Mar 4 Oct 2016 - 0: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Merci à tou(te)s   Mer 5 Oct 2016 - 14:38

pour vos réponses qui me requinquent.

Je vais regarder cela soigneusement.

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Ca ne passe pas   Mer 9 Nov 2016 - 18: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. pale
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: La nuit porte conseil, même pour PANORAMIC !    Jeu 10 Nov 2016 - 10: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 Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Même message d'erreur qu'hier   Jeu 10 Nov 2016 - 12:14

Msg (29) Expression arithmétique incorrecte ligne 94 pale
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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 10 Nov 2016 - 15: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

Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Merci   Jeu 10 Nov 2016 - 18: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Jeu 10 Nov 2016 - 18: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".
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Jeu 10 Nov 2016 - 19: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: C'est comme l'oeuf   Jeu 10 Nov 2016 - 19:43

de Christophe Colomb

Il suffisait d'y penser ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 10 Nov 2016 - 19: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 Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Merci du cadeau   Jeu 10 Nov 2016 - 20: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. Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 11 Nov 2016 - 15:32

Tiens, je t' en rajoute pour 5 ans...
...avec le formatage automatique des noms et prénoms.
lol!
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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Ven 11 Nov 2016 - 18: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 Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 11 Nov 2016 - 19: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 - 14:27, édité 1 fois (Raison : petite rectification)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: POURQUOI Y VEUT PAS ?   Mer 23 Nov 2016 - 18: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 24 Nov 2016 - 17:42

1/ pourquoi un tableau à deux dimensions (inutile dans cette demo mais bon peut être pour plus tard... scratch )
2/ il faut déclarer toutes les variables ( no_fiche% n' est pas déclarée Wink )
3/ item_index(N%) pas item_index()N% ( donc : item_index(List_select%) et pas item_index()List_select%  geek )


4/
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
scratch  Suspect 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... Twisted Evil
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 Laughing 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Merci à Ygeronimi de m'avoir répondu   Ven 25 Nov 2016 - 10: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Ven 25 Nov 2016 - 13: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 - 13:16, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    Ven 25 Nov 2016 - 13: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Oui Oui   Ven 25 Nov 2016 - 16:44

@ JL 35

Merci pour ta proposition.

Je suis preneur.

Cordialement et bon we
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: PANORAMIC et informatique de gestion (les tableaux)    

Revenir en haut Aller en bas
 
PANORAMIC et informatique de gestion (les tableaux)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Aide des Pros en Informatique
» Gestion de collisions entre sprites en 2D
» Gestion de fichiers: Panoramic versus QBasic
» Un exemple de gestion d'un sprite vaisseau avec panoramic
» Lexique informatique

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: