Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME VII. Version Windows

4. Les modifications des objets

Cette section est par essence régulièrement modifiée. Elle reprend les modifications des syntaxes ou de comportement des objets décrits dans les .f.

Ces modifications seront intégrées dans les prochaines versions des manuels.

Elles sont classées ici de la façon suivante:

4.1 Nouvelles directives GLOBAL

Les instructions suivantes sont acceptées dans les directives GLOBAL :

    GLOBAL WIN_VLINE {Yes | No}
GLOBAL WIN_HLINE {Yes | No}
GLOBAL WIN_NCP nn
GLOBAL WIN_FIXED {Yes | No}
GLOBAL CHECK_BOX_TXT "string"
GLOBAL CHECK_BOX_CHAR "letter"
GLOBAL RADIO_TXT "string"
GLOBAL RADIO_CHAR "letter"
GLOBAL WIN_SKIP nn
GLOBAL WIN_NLPFLD nn
GLOBAL WIN_NLPTXT nn
GLOBAL WIN_NLPVLINE nn
GLOBAL WIN_NLPHLINE nn
GLOBAL WIN_NLPNULL nn
GLOBAL WIN_ATTR color attr
GLOBAL WIN_NCPFLD nc ncp

4.2 Nouvelles directives PAGE

Les instructions suivantes sont acceptées dans les PAGES. Elles remplacent la valeur du GLOBAL courant pour les mêmes valeurs.

    GLOBAL WIN_VLINE {Yes | No}
GLOBAL WIN_HLINE {Yes | No}
GLOBAL WIN_NCP nn
GLOBAL WIN_FIXED {Yes | No}
GLOBAL WIN_SKIP nn
GLOBAL WIN_NLPFLD nn
GLOBAL WIN_NLPTXT nn
GLOBAL WIN_NLPVLINE nn
GLOBAL WIN_NLPHLINE nn
GLOBAL WIN_NLPNULL nn

4.3 Positionnement et taille des champs

Les instructions suivantes permettent de modifier les positions et tailles des champs dans les PAGES. En modifiant de la sorte les valeurs générées par scr4_e, on s'assure de conserver ces informations d'une compilation à l'autre.

Quatre mots-clés sont acceptés dans les champs à cette fin :

    WX [+ | -] nn : modifie la position horizontale
WY [+ | -] nn : modifie la position verticale
WW [+ | -] nn : modifie la largeur (width)
WH [+ | -] nn : modifie la hauteur

On a donc trois façon de modifier chaque valeur :

L'unité utilisée pour nn est spécifique aux boîtes de dialogue de Windows. Il ne s'agit pas de pixels ou de points. En fait, 4 unités horizontales correspondent à la largeur d'un caractère "moyen" dans la police de caractère par défaut. Verticalement, 8 unités correspondent à un caractère.

4.4 Nouveaux champs

De nouveaux types de champs font leur apparition sous Windows. Ils sont également définis en mode caractère.

Radio buttons

Ces champs sont nécessairement groupés car un seul peut être coché. On founit donc une liste de champs entre deux instructions

    BEGIN_RADIO
définition des champs
END_RADIO

Exemple

    BEGIN_RADIO
FIELD Prompt " Votre choix .. 1 " name c1
FIELD Prompt " 2 " name c2
FIELD Prompt " 3 " name c3
FIELD Prompt " 4 " name c4
END_RADIO

Les fonctions standards fonctionnent parfaitement pour ces champs et les valeurs directes pointent toutes vers le même champ (le premier). La valeur de ces champs est le numéro d'ordre du bouton coché (0 pour le premier).

Elles sont représentées en mémoire par des short. Les fonctions à utiliser sont donc SCR_set_short() et SCR_get_short().

Les directives GLOBAL permettent de modifier en mode caractère les caractères qui encadrent le bouton et le caractère qui indique que le bouton est coché. Par défaut, il s'agit de parenthèses et d'un X.

On peut les modifier comme dans l'exemple suivant.

Exemple

    GLOBAL RADIO_TXT  "{ }"
GLOBAL RADIO_CHAR "+"

Check_box

Les check_box remplacent avantageusement les menus "Yes_No" souvent utilisés dans les applications.

Exemple

   FIELD Prompt "Backup avant sauvegarde" check_box Name Backup

De même que pour les Radio buttons, on peut utiliser les fonctions classiques SCR_get_short() et SCR_set_short() pour exploiter les valeurs de ces champs. Les valeurs sont fixées à 0 pour les boutons non cochés et à 1 pour les boutons cochés.

Les directives GLOBAL permettent de modifier en mode caractère les caractères qui encadrent le bouton et le caractère qui indique que le bouton est coché. Par défaut, il s'agit des crochets et d'un X.

On peut les modifier comme dans l'exemple suivant.

Exemple

    GLOBAL CHECK_BOX_TXT  "| |"
GLOBAL CHECK_BOX_CHAR "O"

4.5 Groupement de champs

Les champs peuvent aisément être groupés dans une PAGE. Un groupe est défini comme contenant un ensemble de FIELDS et de DRAWS.

La syntaxe des groupes est :

        GROUP [name] {
TITLE "text"
hot_key
FIELDS {
FIELD field_defn
...
}
}

Un rectangle entoure le groupe dans l'écran. Le titre d'affiche dans le coin supérieur gauche du rectangle.

La hot_key doit être une touche Alt_* où * est une lettre. Si cette lettre se trouve dans le titre, elle est soulignée. Lors de l'édition de la page, presser Alt+lettre place automatiquement en édition du premier champ du groupe.

4.6 TOOLBAR

Les TOOLBARS sont des objets qui peuvent être ajoutés à n'importe quelle PAGE ou APPL. Un Toolbar se présente comme une liste d'icônes placées en haut d'une fenêtre. A chaque icône est associée une ACTION et un texte explicatif. Comme il s'agit d'un nouvel objet, il peut être nommé et réutilisé dans d'autres contextes.

La syntaxe des TOOLBARS est la suivante :

    TOOLBAR [name] {
type ident "text" action
...
}


type est :
- BUTTON : bouton normal
- CHECK_BUTTON : bouton qui reste enfoncé si on clique dessus
- SPACE : espace entre deux groupes de boutons

ident est :
- un entier qui est le numéro d'ordre de l'image dans le fichier
bitmap scr4w.bmp

- un des mots-clés suivants (qui représente un entier) :
NEW
OPEN
SAVE
CUT
COPY
PASTE
HELP
CONTEXT_HELP
PRINT

text est un texte (court) qui s'affiche dans une mini-fenêtre
lorsque la souris passe sur le bouton

action et la définition de l'action associée

Il est à noter qu'un bouton sans ACTION n'a pas vraiment de sens et que par conséquent, le texte d'un bouton sans ACTION n'est pas affiché lorsque la souris passe sur le bouton. La raison en est que l'identifiant du bouton est en fait le numéro de l'ACTION associée.

4.7 TPAGES

Les TPAGES sont des objets qui regroupent plusieurs PAGES pour les présenter sous la forme de fiches. Sous Windows, on trouve de plus en plus d'applications offrant sous cette forme des pages de propriétés.

Dans l'environnement SCR4/AL1, il suffit de créer les PAGES qui doivent composer la TPAGES et de les assembler dans ce nouvel objet.

On pourra également définir une Begin_FN et une End_FN comme dans les autres objets.

La syntaxe de TPAGES est :

TPAGES [nom] {
TITLE "texte"
[BACK attr]
[RATTR attr]
[BOX nn]
[WIZARD]
[Begin_FN act_defn]
[End_FN act_defn]
PAGE pg_defn "TITLE"
...
}
}

Le TITLE sera toujours visible en superposition de toutes les PAGES. Les titres des pages seront courts et apparaîtront dans les signets présents au-dessus des PAGES.

BACK permet de spécifier la couleur du fond, RATTR la couleur du signet sélectionné. BOX indique la taille du cadre entourant les PAGES.

La Begin_FN est exécutée avant l'affichage des TPAGES. Si la valeur de retour est non nulle, il n'y a pas d'édition.

La End_Fn est exécutée à la fin de l'édition (bouton Exécuter). Si l'Action retourne une valeur non nulle, l'édition reprend.

Les Begin_FN et End_Fn des PAGES elles-mêmes s'exécutent à chaque entrée ou sortie d'édition d'une PAGE. Le traitement est habituel : une valeur non nulle empêche l'entrée en édition ou la fin de l'édition.

eL'action TP_EDIT permet d'éditer une TPAGES:

    TP_EDIT tpage_defn

Le mot-clé WIZARD dans une TPAGES permet d'exploiter les TPAGES comme WIZARD au lieu de pages de propriétés.

Les boutons qui se trouvent sous la PAGE courante (Précédent, Suivant) sont automatiquement adaptés à la position de la PAGE courante dans la TPAGES. "Précédent" n'existe pas dans la première PAGE, "Suivant" est remplacé par "Terminer" dans la dernière. Le bouton "Help" est toujours présent.

4.8 Scrolls

Les structures SCROLLS se sont largement développées et sont notamment exploitées sous Windows pour l'affichage des LPG des MPAGES et de BC.

Une nouvelle structure WSCROLL a vu le jour et la structure ancienne SCROLL va se voir modifiée pour incorporer ce qui peut l'être de cette nouvelle version Windows.

L'objectif est toujours de conserver des programmes compatibles entre les versions caractères et Windows.

Une fonction de transfert permet de créer dynamiquement une structure WSCROLL à partir d'une structure SCROLL:

    WSCROLL *WscrSCROLLToWSCROLL(SCROLL *scrl)

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be