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

SCR/AL1 - Evolutions récentes

10. Modifications apportées dans la version 4.41 (janvier 1998)

Support d'Informix

Les bases de données d'Informix sont implémentées à partir de cette version de SCR. L'exécutable de gestion des bases Informix est:

La librairie à linker pour utiliser Informix est :

Plus d'informations seront fournies dans la version prochaine.

Version Microsoft Visual C des librairies

Les librairies Win32 sont disponibles en version VC 5.0. Elles se nomment

Les formats des fichiers .scr, .cmt, etc sont identiques. Les exécutables en version VC 5.0 peuvent également être fournis.

Prototypage des fonctions

Il est dorénavant possible (et recommandé lorsque c'est toléré par le compilateur) d'inclure les prototypes de fonctions dans les fichiers C. Cette pratique garantit que le nombre correct de paramètres est passé à chaque appel de fonction et que les conversions de types sont effectuées correctement.

En C++, toutes les fonctions doivent être déclarées avant leur utilisation.

Pour inclure les prototypes, il suffit de définir la macro SCRPROTO:

    #define SCRPROTO
ou
bcc32 -DSCRPROTO ... test.c
cl -DSCRPROTO ... test.c

Les fichiers contenant les déclarations se nomment s_pro*.h. Ces fichiers sont automatiquement inclus dans les header files de SCR.

Utilisation de SCR en C++

Les librairies de SCR peuvent être exploitées dans un programme C++. Pour cela, il est nécessaire de "prototyper" toutes les fonctions utilisées dans le programme C++. Un define spécial est prévu pour le C++ :

    SCRCPP

Ce define implique SCRPROTO (voir scr4.h). On ne peut cependant pas définir SCRCPP pour compiler des sources C: des mots-clés C++ ne passeraient pas à la compilation.

De même, il est insuffisant de définir SCRPROTO pour le C++. En effet, le compilateur doit savoir que les fonctions référencés sont des fonctions C et non C++ (les références générées par le compilateur C sont différentes de celles générées par le compilateur C++).

On compilera des sources C++ en utilisant la commande :

    bcc32 -DSCRCPP ... test.cpp
cl -DSCRCPP ... test.cpp

Exemple d'utilisation en C++ des fonctions de SCR

    #include <iostream.h>
#include <scr.h>

class myclass {
public:
int x, y, z;
char *str;

virtual void print()
{
cout << x << endl;
};
};

main()
{
myclass *ptr;

ptr = new myclass;
ptr->x = 2;
cout << SCR_upper("titre") << endl;
ptr->print();
}

Résultat

    TITRE
2

Version Win32

TOOLBARS

Les textes associés aux boutons des TOOLBARS sont à nouveau affichés lorsque la souris est positionnée sur un bouton.

FNKEYS de l'APPL

Les FNKEYS des APPL sont exécutées comme en mode caractère, c'est-à-dire n'importe où dans l'application (y compris dans les MENUS).

WDDLG : boîtes de dialogue dynamiques

Les fonctions associées aux boîtes de dialogue dynamiques se sont considérablement étendues dans cette version. Différentes améliorations de comportement sont également apparues.

Attention, certaines syntaxes de fonctions ont été changées pour étendre les possibilités. Reportez-vous au manuel pour obtenir la liste de toutes les fonctions définies.

Icon et BMP clickables

Les contrôles de type ICON ou BITMAP sont "clickables" lorsqu'une fonction leur est associée. Cette fonction a la même syntaxe que pour les autres contrôles. Lorsque la souris passe sur ce type de contrôle et qu'une fonction est définie, le pointeur change d'aspect pour indiquer qu'une action est sous-jacente.

    WDDlgAddIcon(WDDLG *wddlg, int x, int y, int res, int (*fn)())
WDDlgAddBmp(WDDLG *wddlg, int x, int y, int res, int (*fn)())

Nouvelles fonctions

    WDDlgSetFocus(WDDLG *wddlg, int fld_nb)
WDDlgLBChangeText(WDDLG *wddlg, int fld_nb, int opt_nb, U_ch * txt)
WDDlgGetCurSel(WDDLG *wddlg, int fld_nb)
WDDlgSetCurSel(WDDLG *wddlg, int fld_nb, int opt_nb)
WDDlgSetBeginFn(WDDLG *wddlg, int (*fn)())
WDDlgSetEndFn(WDDLG *wddlg, int (*fn)())
WDDlgSetOkFn(WDDLG *wddlg, int (*fn)())
WDDlgSetEscFn(WDDLG *wddlg, int (*fn)())
WDDlgShowField(WDDLG *wddlg, int fld_nb)
WDDlgHideField(WDDLG *wddlg, int fld_nb)
WDDlgAddGroupbox(WDDLG *wddlg, int x, int y, int cx, int cy,
U_ch *title)
WDDlgAsk(U_ch *title, U_ch *qu, U_ch *rep, int lg)
WDDlgDisplayField(WDDLG *wddlg, int fld_nb)
WDDlgAddProgress(WDDLG *wddlg, ...)

Version DOSW32

Buffer clavier

Les touches saisies au clavier sont bufferisées dans l'application. Auparavant, en fonction de la charge du système sur lequel tournait l'application DOSW32, on pouvait perdre des touches.

Tailles des caractères

De nouvelles tailles de caractères disponibles dans le menu Système de la fenêtre de l'application. Leur disponibilité dépend des polices installées sur la machine.

Caractères semi-graphiques

Sous Windows NT, les caractères semi-graphiques et les accents sont dorénavant affichées correctement.

Programmes

SCR4W_AT : corrections et implémentation du format csv

Les corrections A2M reprises plus bas sont exploitées au niveau de scr4w_at. Elles permettent entre autre:

SCR4_A2R : nouvelles options

L'option -gif2bmp permet de remplacer toutes les références à des images GIF en référence aux images BMP correspondantes. Pour que cela fonctionne, il faut évidemment que les deux fichiers existent avec la même racine de nom.

SCR4_APP : opérationnel pour Win32

Ce programme qui permet de joindre à un exécutable un nombre quelconque de sous-fichiers (par exemple les .scr et .cmt) est également exploitable dans un applicatif Win32. Il faut cependant d'abord "linker" les ressources (brc32) avant de concaténer les fichier nécessaires.

Donc, dans le makefile :

    $(EXEDIR)iode$(X) : iode.res c o_objs.$(O) iode.$(O) iode.$(LB)
$(LNK) iode.$(O) o_objs.$(O) iode.$(LB) $(SCRO) $(XLIBS)
$(STRIP) a.out
$(MV) a.out iode$(X)
$(RC2) iode.res
$(APP) iode$(X) o_objs.cmt
$(APP) iode$(X) o_objs.scr
$(APP) iode$(X) iode.msg

SCR4_MKI : installation/désinstallation sous Win32

Nouveaux paramètres :

Sous Windows, le programme est nouveau et diffère de la version DOS: plusieurs fonctions spécifiques à Win32 ont été ajoutées et certaines possibilités DOS n'ont pas (encore) été implémentées.

Nouvelles sections sous Windows

Enregistrement de types de fichiers:

            REGISTER code {
FILE référence d'un fichier_installé
EXT ".eqs"
CODE "IODE.EQS"
ICON "$maindir\\iode.exe,2"
TITLE "IODE Equations"
OPEN "$maindir\\iode.exe -l %1"
PRINT "$maindir\\iode.exe -p %1"
NEW "$maindir\\iode.exe -n"
}

Le recours à cette section permet d'associer les extensions de fichiers à une application et à une icône.

Groupes du menu START

Cette section permet d'ajouter des options dans le sous-menu Programmes du menu Start.

GROUPMENU {
TITLE "Titre de l'option du groupe"
OPTION {
FILE référence d'un fichier_installé
TITLE "texte de l'option"
CMD "commande à exécuter avec paramètres éventuels"
DIR "répertoire de démarrage du programme"
}
OPTION ...
}

Désinstallation

Cette section permet d'installer un programme de désinstallation du groupe de fichiers ou de programme en cours d'installation. Si cette section est définie, une option supplémentaire est installée dans le groupe de programme.

Un fichier contenant l'ensemble des fichiers installé est automatiquement créé lors de l'installation. Ce fichier est utilisé lors de la désinstallation. Si une installation est effectuée en plusieurs passes, les installations antérieures sont mémorisées poour permettre une désinstallation complète.

Utiliser ce programme permet d'enregistrer dans le système Windows 95 le fait que l'application est installée. On pourra dès lors désinstaller par le Control Panel (Add/remove Programs).

    UNINSTALL {
CODE code du programme
TITLE "titre de l'application"
DIR directory definition
}

Description du programme

Cette section est acceptée par le programme scr4_mki mais n'a pas encore d'effet.

    DESCRIPTION {
PROVIDER "Federal Planning Bureau"
PROGRAM "IODE 5"
TITLE "IODE Version 5"
VERSION "5.01"
}

Limites du programme scr4_mki

1. UNINSTALL, REGISTER et GROUPMENU ne sont opérationnels que sous Windows. Ces options sont cependant acceptées sous DOS.

2. Les NOTES de fin d'installation ne sont affichées pour l'instant que sous DOS.

3. SYSTEM n'est opérationnel pour l'instant que sous DOS.

4. Les NOTES (INTRO) sont limitées à 12 lignes sous Windows.

SCR_MKH : gestion des conditions ifdef

Les constructions du type

    #ifdef
...
#else
...
#endif

sont acceptées dans les headers des fonctions C. En effet, pour rendre les sources compatibles C et C++, ce type de construction est incontournable.

Exemple

    /* comment
*/
#ifdef SCRCPP
YYFILE *YY_open(
char *filename,
YYKEYS *table,
int size,
int type
)
#else
YYFILE *YY_open(filename, table, size, type)
char *filename;
YYKEYS *table;
int size;
int type;
#endif
{
...
}

SCR4_O2T : conversion en ANSI lisible

Nouveau programme de transformation d'un texte ASCII PC-8 en texte ANSI lisible (remplacement des semi-graphiques par des '-' '=' '+' et '|').

SCR4_TAR : portage en Watcom C

Le programme scr4_tar fonctionne en DOS 32 bits.

MT version 3.10

Cette version incorpore les modifications suivantes :

Langage SCR

SCREEN

Il est dorénavant possible de rendre certaines parties d'un SCREEN conditionnelles. C'est particulitèrement utile dans le cas des applications qui doivent être portées en Windows et en DOS.

On utilisera pour ce faire les directives classiques #ifdef, #include, ... colonne 1 de la définition du SCREEN.

SCR_CMT_FILE

Cette variable contient le nom du fichier .cmt exploité par les applications SCR. Auparavant, sa valeur était fixée dans la fonction SCR_init(). Ce n'est plus le cas dorénavant et on peut fixer la valeur avant l'appel à SCR_init().

TPAGES

La première PAGE des TPAGES est éditée directement (sans devoir presser ENTER) comme auparavant.

Fonctions de librairies

Pour des raisons de limitations de différentes versions de Unix, la librairie scr4o a été découpée en deux parties : scr4o et scr4ox.

La librairie scr4ox contient les modules suivants (qui ont été retirés de scr4o):

Modifications de fonctions

Nouvelles fonctions

Les fonctions suivantes ont été ajoutées dans les librairies scr4o, scr4ox et scr4i:

Lecture des fichiers concaténés par scr4_app

Dump/Load en format interne

SWAP

Les limites des fonctions de gestion de SWAP ont été étendues:

Système

Exploitation des registres en Win32

Impressions Windows sans driver

Fonction Tar*()

Ces fonctions ont été portées en Watcom C (DOS 32 bits).

Langage A2M

Correction dans la génération des fichiers au format MIF (Frame):

Variables

NT 4.0

Deux corrections spécifiques à Windows NT ont été apportées dans cette version:

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