	8 .	Le fichier .DEF



Ce fichier est le plus important bien qu'aussi le plus petit. Il d‚finit 
quels ‚vŠnements et quels modules vous allez utiliser dans votre projet. 
Si votre cahier des charges est bien pr‚par‚, vous devez l'‚diter en d‚but 
de projet puis ne plus y toucher par la suite.
Ces options sont des options de compilation. Elles influent donc direc-
tement sur la taille de votre code g‚n‚r‚, alors choisissez les bien. Par 
cons‚quent, une application destin‚e … fonctionner indiff‚remment en 
tant qu'accessoire ou en tant que programme, et qui possŠde une barre de 
menu lorsqu'il est ex‚cut‚ en programme, devra ˆtre assembl‚e avec l'op-
tion MDL_MENU.


	8.1 Les d‚finitions possibles


GWVA_APP_OBJECT_STACK_SIZE = 1024
GWVA_MAX_PATH_LENGTH = 128

GWVA_APP_DEP_LIB_VERSION = 4
GWVA_APP_DEP_LIB_MAJOR = 0
GWVA_APP_DEP_LIB_MINOR = 35

MDL_TOS	; |
MDL_GEM	; | exclusif

MDL_RELOCATE_RSC

MDL_EVENTS

MDL_MENU

MDL_WIND
GWVA_APP_OBJ_MAX_NUMBER_WIND = 8

MDL_WIND_CUSTOM
MDL_WIND_TEXT
MDL_WIND_FORM
FORM_OBJ_PROGRESS
FORM_OBJ_SLIDER

MDL_WIND_BITMAP

LIB_FILESELECTOR
LIB_FORMULARY

LIB_HEXA
LIB_DECI
LIB_TIME_DATE

LIB_GET_FLENGTH
LIB_LOAD_FILE_IN_MEM
LIB_RECURSIVE_FILE_SEARCH

FLG_INIBE_COLOR
LIB_PALETTE

LIB_RS232
LIB_200HZ

LIB_XBRA

LIB_XHDI
LIB_XHDI_INFOPARTITION
LIB_XHDI_GETVERSION
LIB_XHDI_INQTARGET
LIB_XHDI_STOP
LIB_XHDI_READWRITE
LIB_XHDI_INQDEV2
LIB_XHDI_GETCAPACITY
LIB_XHDI_LASTACCESS


	8.2 Choisir ses modules


Certaines variables doivent absolument ˆtre d‚finies, elles sont :
. GWVA_APP_OBJECT_STACK_SIZE	: la taille de la pile
. GWVA_MAX_PATH_LENGTH		: la longueur 
maximum d'un pathname (chemin+nom)
. GWVA_APP_DEP_LIB_VERSION 		: la version des li-
brairies Visual avec lesquelles vous ˆtes compatible. Si ce num‚-
ro est diff‚rent de celui du Visual, votre application est incom-
patible !
. GWVA_APP_DEP_LIB_MAJOR 		: la sous-version 
majeure des librairies Visual avec lesquelles vous ˆtes compati-
ble, si diff‚rente : incompatibilit‚ mineure qui devra ˆtre r‚gl‚e 
en consultant le fichier VISUAL40\MISC\VISUAL40.NEW
. GWVA_APP_DEP_LIB_MINOR 		: la sous-version 
mineure des librairies Visual avec lesquelles vous ˆtes compati-
ble, si diff‚rente alors votre compilation  s'ex‚cutera quand mˆ-
me. Lisez le fichier VISUAL40\MISC\VISUAL40.NEW malgr‚ 
tout.

Vous devez dire si votre programme utilise les ‚vŠnements GEM 
ou non :
MDL_TOS	: si pas d'affichage/‚vŠnement GEM
MDL_GEM	: 100 % GEM

Dans le cas o— vous avez MDL_GEM, indiquez en plus :
. MDL_RELOCATE_RSC si vous voulez inclure votre ressour-
ce directement dans votre programme et le reloger ensuite pour 
pouvoir l'utiliser.

. MDL_EVENTS si vous voulez g‚rer les ‚vŠnements 
(AC_CLOSE, AP_TERM, les redraws ...) ; … priori c'est oui, 
sauf dans le cas o— votre programme n'est qu'une suite de boŒtes 
pr‚emptives.

. MDL_MENU si vous voulez recevoir des messages 
MNU_SELECTED ; … mettre en principe si vous avez un ar-
bre de menu.

. MDL_WIND si vous envisagez d'avoir au moins une fenˆtre !
. GWVA_APP_OBJ_MAX_NUMBER_WIND d‚finit le nom-
bre maximum de fenˆtres cr‚‚ simultan‚ment. Si votre applica-
tion ne peut en cr‚er que 4 au maximum, mettez 4. Pour une ap-
plication multi-documents, mettez 256 au moins.

Dans le cas o— vous avez MDL_WIND, indiquez en plus au moins 
un de ces modules :
. MDL_WIND_CUSTOM		: si vous d‚sirez des fenˆtres 
custom (sans redraw g‚r‚ par le V.A.)
. MDL_WIND_TEXT 		: si vous voulez des fenˆtres 
textes
. MDL_WIND_FORM		: si vous voulez des fenˆtres 
contenant des formulaires.
. MDL_WIND_BITMAP		: si vous voulez des fenˆtres 
contenant du bitmap brut.

Dans le cas o— vous avez MDL_WIND_FORM, vous pouvez met-
tre en plus :
. FORM_OBJ_PROGRESS	: pour profiter des objets "bar-
re de progression" … gestion automatique.
. FORM_OBJ_SLIDER		: pour profiter des objets slider 
avec une gestion automatique des d‚placements.


	8.3 Choisir ses librairies


Vous avez une pl‚thore de librairies incorporant toutes les fonctions 
utiles que l'on rencontre dans les programmes classiques, plus d'autres 
originales. Utilisez-les au maximum pour vous d‚faire des contraintes 
annexes de programmation et pour vous concentrer sur votre programme.

. LIB_FILESELECTOR		: librairie permettant de g‚rer 
facilement le s‚lecteur de fichier.
. LIB_FORMULARY			: librairie permettant de g‚rer 
des formulaires pr‚emptifs.
. LIB_HEXA				: librairie permettant de con-
vertir un registre en chaŒne hexa ou l'inverse en sign‚ !
. LIB_DECI				: librairie permettant de con-
vertir un registre en chaŒne d‚cimale ou l'inverse en sign‚, utile 
pour r‚cup‚rer les champs num‚riques de votre formulaire !
. LIB_TIME_DATE			: librairie permettant d'avoir la 
date/l'heure courante en chaŒne ASCII format‚e.
. LIB_GET_FLENGTH			: librairie permettant de con-
naŒtre la taille d'un fichier en un seul appel.
.LIB_LOAD_FILE_IN_MEM	: librairie permettant de char-
ger un fichier en m‚moire ; l'allocation est automatique et on vous 
retourne le pointeur !
. LIB_RECURSIVE_FILE_SEARCH	: librairie permettant de 
faire une recherche r‚cursive de fichier selon un masque (ex.: 
*.BAK) et de faire un traitement particulier pour chaque fichier 
rencontr‚ (ex..: F_DELETE)
. FLG_INIBE_COLOR			: flag permettant de d‚sactiver 
les macros color et color256.
. LIB_PALETTE				: librairie permettant d'avoir 
une sauvegarde automatique des couleurs.
. LIB_RS232				: librairie permettant de g‚rer 
facilement le port s‚rie/midi de votre machine.
. LIB_200HZ				: librairie permettant de se ser-
vir du compteur 200Hz.
. LIB_XBRA				: librairie permettant de cher-
cher/d'ins‚rer/d'enlever un vecteur XBRA le plus simplement du 
monde
. LIB_XHDI				: librairie permettant de faire 
des appels … un driver XHDI ‚ventuellement pr‚sent.
. LIB_XHDI_GETVERSION	; ce sont les d‚finitions des 
routines
. LIB_XHDI_INFOPARTITION	; XHDI qui vous int‚ressent.
. LIB_XHDI_INQTARGET
. LIB_XHDI_STOP
. LIB_XHDI_READWRITE
. LIB_XHDI_INQDEV2
. LIB_XHDI_GETCAPACITY
. LIB_XHDI_LASTACCESS
