DDS graphiques

BoTTom |   
 
 VERSION 2 EDITION 3.0                      ############################### 
                                       !->  #  Fichier Format Action      # 
 ° DDS graphiques                      !    # ---------:...........------ # 
                                       !    #          :  Caract. :       # 
   - Barre de menu     (fmt MNUBAR) ---!    #      !-> :  Héxa    :       # 
                                            #      !   :..........:       # 
   - Menus déroulants  (fmt PULLDOWN) ----- # -----!                      # 
                                            #                             # 
                                            ############################### 
                R BARRE                     MNUBAR
                  CHOIX          2Y 0B  1  2MNUBARCHC(1 MD01 '>Fichier')
                                            MNUBARCHC(2 MD02 'Forma>t')
                                            MNUBARCHC(3 MD03 '>Action')
 
  Le format BARRE est une barre de menu (mot-clé MNUBAR)
 
  La zone CHOIX contiendra après saisie le n° du menu déroulant
     (1=fichier/2=format/3=action)
 
  Si le curseur est positionné devant "Format" le format MD02 sera affiché
   (sans action de la part du pgm), ... etc ...


|   
                R MD01                      PULLDOWN
                  MD1CHX         2Y 0B  1  2SNGCHCFLD
                                            CHOICE(1 '>Ouvrir')
                                            CHOICE(2 '>Fermer')
                                            CHOICE(3 '>Quitter' *SPACEB)
 
                R MD02                      PULLDOWN
                  MD2CHX         2Y 0B  1  2SNGCHCFLD
                                            CHOICE(1 '>Caractère')
                                            CHOICE(2 '>Hexa')
                R MD03                      PULLDOWN
                  MD3CHX         2Y 0B  1  2SNGCHCFLD
                                            CHOICE(1 '>Add')
                                            CHOICE(2 '>Delete')
 
 MD01,MD02 et MD03 sont des menus déroulants (mot-clé PULLDOWN)
  associés au format BARRE (cf plus haut)
 
  MD1CHX contiendra le n° du choix dans ce format 1=ouvrir,2=fermer,etc..
 
         la ligne "Quitter" sera précédée d'une ligne blanche (*SPACEB)
 


|   
 # Fichier   Format   Action   
  ----------------------------------------------------------------------------- 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Résultat, Appuyez sur <<ENTREE>>
 
 


|   
   Fichier   Format   Action. 
  :--------------------:------------------------------------------------------- 
  :    1. Ouvrir       : 
  :    2. Fermer       : 
  :                    : 
  :    3. Quitter      : 
  :....................: 
 
 
 
 
 
 
 
 
 
 
 
 
  Si l'utilisateur déplace le curseur vers la droite
 
 


|   
   Fichier   Format   Action 
  ----------.-----------------------.------------------------------------------ 
            :    1. Caractère       : 
            :    2. Hexa            : 
            :.......................: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Ainsi de suite ...
 
 


|   
              Interaction avec un format traditionnel 
 
un format MNUBAR peut ne pas être traité par EXFMT, il est alors associé
 à un format traditionnel. (dans l'exemple F1 )
 
Il peut être écrit avant affichage (pour renseigner un texte)
 
 
un format PULLDOWN est assimilé à une fenêtre, il peut être écrit avant
 affichage (renseignement de zone, autorisation ou interdiction d'option)
 
Il peut être lu après (récupération de choix complexes)
 
Traitement:
                R F1                        MNUBARDSP(BARRE &mnu &opt)
                  MNU            2Y 0H      TEXT('N° du menu choisi)
                  OPT            2S 0H      TEXT('N° option dans menu')
 
le pgm affiche et lit F1 (barre d'action "BARRE" associée)
 
c'est le système qui gère la barre d'action et les menus déroulants
 


|   
 
le système affiche le format et la barre de menu associée
           gère les menus déroulants si besoin
puis passe la main au programme
           sur utilisation d'une touche de fonction (MNU contient alors 0)
           ou choix valide dans un menu déroulant
(MNU contient le n° du menu déroulant et OPT le N° du choix dans le menu)
 
 
                           EXFMTF1
                 MNU       IFEQ 3  (menu action)
                           SELEC
                 OPT       WHEQ 1
                           ...   (ajout)
                 OPT       WHEQ 2
                           ...   (supression)
                           ENDSL
                           ENDIF
                           ...
rappel :        R FMT                       MNUBARDSP(BARRE &mnu &opt)
       :          MNU            2Y 0H      TEXT('N° du menu choisi)
       :          OPT            2S 0H      TEXT('N° option dans menu')


|   
 
 Il est possible d'avoir la main avant l'affichage du menu déroulant
 
                R BARRE                     MNUBAR
                  CHOIX          2Y 0B  1  2MNUBARCHC(1 MD01 '>Fichier' &RT)
                   ...
           -->    RT             2Y 0H
 
 Votre programme reçoit le contrôle AVANT affichage de MD01 et doit
  l'afficher (après avoir renseigné certains indicateurs par exemple.)
 
 MNUBARSW(CAxx) niveau fichier,  définit une touche permettant de passer
  de la barre d'action au format principal
  (position curseur sauvegardée)
 
 MNUCNL(CAxx) niveau fichier , définit une touche annulant l'affichage
  d'un menu déroulant.
  (menu déroulant effacé, retour à la barre de menu)
 
 Les choix simples sont représentés sur un écran graphique par des boutons
  radio
 


|   
 Il est possible de définir des choix multiples (cases à cocher) MLTCHCFLD 
 
                  xxxx           2Y 0H  1  2MLTCHCFLD
                                            CHOICE(1 '>oui/non'
                                            CHCCTL(1 &ouinon)
                  OUINON         1Y 0H      TEXT('1= oui, 0=non')
 
 Sur le format traditionnel (F1) MNU contient le n° de menu
                                 OPT contient -1 (choix complexe)
 
il faut alors lire le menu déroulant choisi.
 et traiter chaque zone associée à un CHCCTL
 
   1 = cette option est cochée
   0 = cette option n'est pas cochée.
 
cette zone peut être pré-renseignée avant affichage (1 = pré-cochée)
 
Pour un choix simple, vous pouvez associer CHCCTL au mot-clé SNGCHCFDL
 
Dans tous les cas la valeur 2 permet d'indiquer une option indisponible
 


|   
 
                R MD01                      PULLDOWN
                  MD1CHX         2Y 0B  1  2SNGCHCFLD
                                        !-> CHOICE(1 '>Ouvrir')
                                        !   CHOICE(2 '>Fermer') <--------!
                                        !   CHOICE(3 '>Quitter' *SPACEB) !
                                        --- CHCCTL(1 &MD1CT1)            !
                                            CHCCTL(2 &MD1CT2) -----------!
                  MD1CT1         1Y 0H      TEXT('2=ouvrir interdit') 
                  MD1CT2         1Y 0H      TEXT('2=fermer interdit') 
 exemple (à lire de gauche à droite) :                                      
   ouvrir = dft         Z-ADD1      MD1CHX !        Z-ADD2      MD1CT1
   fermer = interdit    Z-ADD2      MD1CT2 !* autoriser "fermer"
                        WRITEMD01          !        Z-ADD0      MD1CT2
 * jusqu'à "QUITTER"                       !*répercuter les modifs à l'écran
                  MNU   DOUEQ1             !        WRITEMD01
                  OPT   ANDEQ3             !         ...
                        EXFMTF1            !         ...
 * ouverture demandée                      !        ENDIF
                  MNU   IFEQ 1             !         ...
                  OPT   ANDEQ1             !        ENDDO
 * interdir "ouvrir"                       !        MOVE*ON      *INLR


|   
 
Le texte d'un menu déroulant (sur une barre d'action)
 "   "   d'une option dans un menu déroulant peut être défini dynamiquement
 
                                            CHOICE(1 &TXT )
                  TXT           10A  P
 
Vous pouvez associer à un texte d'option un libellé indiquant une touche
 de fonction équivalente à cette option.(raccourci clavier)
 
                                            CHOICE(3 '>Quitter')
                                            CHCACCEL(3 'F3')
 
 MNUBARSEP permet de définir les caractéristiques de la ligne de séparation:
 
 ((*COLOR xx) (*DSPATR xx) (*CHAR ' '))
                                   !-- le caractère de votre choix.
 
 CHCAVAIL   ((*COLOR xx) (*DSPATR( xx))   = idem pour un choix disponible
 CHCUNAVAIL ((*COLOR xx) (*DSPATR( xx))   =      pour un choix indisponible
 CHCSLT     ((*COLOR xx) (*DSPATR( xx))   =      pour un élément choisi
 





©AF400