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

SCR/AL1 - Evolutions récentes

19. Modifications apportées dans la version 4.31 (novembre 96)

UCHAR vs U_ch

En raison du fait que UCHAR est défini comme un typedef dans <windows.h>, toutes les déclarations faisant apparaître UCHAR sont remplacées par des U_ch.

WIN_VLINE, WIN_HLINE et WIN_FIXED

WIN_VLINE et WIN_HLINE permettent d'éliminer les lignes verticales et horizontales dans les Dialog Box générés par scr4_e -w. WIN_FIXED demande d'utiliser une police de caractères de largeur fixe dans les Dialog boxes.

    GLOBAL WIN_HLINE Yes | No
GLOBAL WIN_VLINE Yes | No
GLOBAL WIN_FIXED Yes | No

Fonctions de librairie

SCR_load_prof_pwd()

Correction dans la lecture et le sauvetage des mots de passe.

Debug()

Cette fonction permet d'accumuler des messages dans un fichier local (en général à des fins de test ou de debugging. Elle prend des paramètres comparables à ceux de printf().

Sa syntaxe est identique à celle de printf. Elle écrit par défaut dans le fichier debug.win.

Le fichier est à chaque fois ouvert et fermé pour permettre d'arrêter le programme n'importe tout en conservant les résultats dans le fichier. Cela peut être un facteur de lenteur dans les applications.

On peut changer le nom du fichier en fixant la variable

    char  *DebugFilename;

Si cette variable est nulle, le fichier est debug.win. Sinon, elle contient le nom du fichier contenant les messages.

Comme le fichier est à chaque appel ouvert et fermé, on peut sans problème changer le nom du fichier à n'importe quel moment.

SCR_FindStringPos()

Cette fonction recherche le string str de longeur lg dans le fichier filename et retourne la position du début du string.

    long SCR_FindStringPos(char *filename, U_ch *str, int lg)

Retourne :

Les cas délicats comme la recherche de "12123" dans "1212123" sont correctement traités.

PR_string()

Le buffer interne passe de 256 à 512 bytes en espérant régler certains problèmes.

SCR_full_path()

Correction : free de tableaux internes.

IS_search()

Lorsqu'une recherche est effectuée sur un ISAM qui n'a pas d'index, la recherche s'effectue toujours dans l'ordre de la DB (SCR_DB). Auparavant, il fallait le spécifier sinon un plantage était possible.

Impressions sous DOSWIN, DOSWIN32 et WINDOWS

Le programme d'impression classique (PR_select(), .. PR_send()) imprime dans les versions Windows sur l'imprimante par défaut de Windows.

Les caractères semi-graphiques sont traités correctement, en deux épaisseurs de trait.

Pour réaliser ce travail, un nouveau groupe de fonctions, disponible uniquement sous Windows a été développé. Ce groupe (Wpr*) offre des possibilités plus étendues que le groupe PR_*, en exploitant les outils fournis par l'environnement Windows.

Programmes

scr4_sbs

Ce programme remplace dans une liste de fichiers la partie du fichier comprise entre deux tags par le contenu d'un fichier. Il est nécessaire pour modifier automatiquement les barres navigationnelles dans les fichiers HTML.

scr4_spl

Ce programme permet de diviser un fichier HTML en sous-fichiers en découpant sur les titres <Hn>.

scr4_toc

Ce programme crée la table des matières d'un fichier HTML et de ses sous-fichiers (fichiers référencés).

scr4_chk

Ce programme vérifie les liens présents dans un fichier HTML et les sous-fichiers. Il établit un rapport reprenant tous les fichiers référencés et les classe par type.

Il n'y a pas de recherche en dehors du système de fichiers locaux.

scr4_ar

La syntaxe SCR4_AR WIN équivaut à SCR4_AR D : dans les deux cas, c'est tlib qui est utilisé.

Beep sous DOSWIN

Le message sonore utilisé lors de l'affichage d'une boîte de question est supprimé.

Corrections

Champs non nommés

L'édition des champs dans une page dont le nom n'est pas défini pouvait planter un programme.

CODEISAM

Correction des champs avec CODEISAM avec application à une liste limitée de champs :

        ISAM is_post CODE {adres1}

Le programme plantait en Windows lors de la lecture du fichier .scr.

SCR_OemToAnsi() et SCR_AnsiToOem()

Si les pointeurs de ces fonctions sont nuls, aucune opération n'a lieu. Les vérifications ne sont donc plus nécessaires.

Couleurs dans DOSW32 et DOSWIN

Le choix des couleurs dans une application DOSWIN est possible comme dans les applications DOS standard. L'utisateur peut donc adapter les couleurs de son application comme il le souhaite. Le fichier qui mémorise la configuration des couleurs est le même qu'en DOS: \scr4cnf.00.

Pour assurer la compatibilité avec le DOS, seize couleurs de base ont été choisies dans la palette de base de Windows. Ces couleurs peuvent être modifiées par le programmeur dans la fonction WscrDOSUserInit().

Pour modifier les couleurs de base, il faut changer la variable WSCR_COLORS de la façon suivante.:

        #include <scr4w.h>

extern COLORREF WSCR_COLORS[];
...
WSCR_COLORS[0] = RGB(red, green, blue);
...
WSCR_COLORS[15] = RGB(red, green, blue);

où red, green et blue sont des valeurs comprises entre 0 et 255. Il y a 16 éléments dans le tableau WSCR_COLORS, chacun définissant une couleur.

Couleur des MENUS

Lors de l'affichage des OPTIONS OFF d'un MENU, trois cas sont distingués (au lieu de deux auparavant).

Nouvel Objet TPages

Ce nouvel objet consiste en une série de PAGES auxquelles sont adjointes quelques informations complémentaires.

Toutes les pages sont présentées soit sous forme d'une boîte de fiches (Properties), soit successivement (Wizard).

Il suffit de passer les informations suivantes :

Ces pages ne comportent pas en principe de boutons, les boutons étant proposés par défaut en-dessous de chaque fiche.

        typedef struct _tpgs_ {
short tp_type;
short tp_nb;
short *tp_pgsnbs;
U_ch *tp_title;
U_ch **tp_pgstitles;
} TPAGES;

Fonction de création et d'édition :

    WscrEditTabbedPages(HWND hwndOwner, TPAGES *tpgs)

Les boutons OK et Cancel sont présents par défaut.

Si help vaut 1, le bouton HELP est activé.

Exemple

        MyPropertySheet(HWND hwndOwner)
{
TPAGES tpg;
short pgsnbs[10];
U_ch **titles[10];

titles[0] = "Titre page 1";
titles[1] = "Page 2";
titles[2] = "Page 3";
pgsnbs[0] = SCR_NU(pg1);
pgsnbs[1] = SCR_NU(pg2);
pgsnbs[2] = SCR_NU(pg3);

tpg.tp_type = 0;
tpg.tp_nb = 3;
tpg.tp_pgsnbs = pgsnbs;
tpg.tp_title = "Titre général";
tpg.tp_pgstitles = titles;


WscrEditTabbedPages(hMainWnd, &tpg);
}

Dans une version future, une action TP_EDIT sera implémentée.

Introduction d'un première versions Win'95 opérationnelle

Un nouveau manuel fait son apparition et concerne les portages et les spécificités de la versions Win32 de SCR/AL1.

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