home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 19
/
CD_ASCQ_19_010295.iso
/
dos
/
fr
/
anatomie
/
wblib.doc
< prev
Wrap
Text File
|
1994-09-21
|
87KB
|
2,223 lines
W B L I B Version 1.10
Bibliothèque de Fonctions et Routines
pour Microsoft QuickBASIC 4.0 à 4.5
par
BLAKE William
11, Rés. Soleil Levant
02100 MORCOURT (FRANCE)
Distribuée en SHAREWARE
Copyright (C) Août.1994 : BLAKE William
TABLE DES MATIERES
Introduction ................................................ 00
Fonctions DOS et Système .................................... 01
Gestion de la Souris ........................................ 02
Manipulation de Fichiers .................................... 03
Manipulation de Chaines, Nombres, Dates ..................... 04
Fonctions Graphiques et Assimilées .......................... 05
Gestion de la Vidéo ......................................... 06
Gestion du clavier .......................................... 07
Gestion de la mémoire ....................................... 08
Divers ...................................................... 09
Avertissement ............................................... 10
INTRODUCTION
------------
Les routines de la bibliothèque WBLIB offrent à l'utilisateur des
fonctions complémentaires à celles de QuickBASIC et permettent l'uti-
sation des principales fonctions du DOS, la manipulation de nombres,
de dates, de chaines, de fichiers, la gestion de la souris, de la
vidéo, du clavier, de la mémoire, une douzaine de fonctions graphiques
en mode TEXTES et une vingtaine de réelles fonctions graphiques.
Soit à peu près 130 fonctions et routines, qui vous permettront de
donner à vos programmes un "look" professionnel, sans la nécessité
d'avoir recours à une programmation complexe et surtout au moindre
coût.
La bibliothèque autonome WBLIB fonctionne avec QuickBASIC Version
4.# de la Société MICROSOFT.
Nécessite une carte pouvant afficher le mode VGA 640 x 480 16 couleurs
et 512 K de mémoire conventionnelle.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
CHAPITRE 1
==========
FONCTIONS DOS ET SYSTEME
------------------------
********************************************************************
SUB: Bouter
------
OBJET: Réinitialisation du système et retour au DOS, (ou RESET).
Equivaut à la pression simultanée des touches Alt+Ctrl+Del
APPEL: Bouter
*******************************************************************
SUB: ChLect
------
OBJET: Changer le lecteur valide
APPEL: ChLect "NomLecteur"
EXEMPLE DE PROGRAMMATION
DECLARE SUB ChLect (NomLect$)
DEFINT A-Z
ChLect "A" 'le lecteur de disquettes A est maintenant valide
SHELL "DIR" 'lit le contenu de la disquette A
ChLect "C" 'le disque dur C devient valide
...
*******************************************************************
FONCTION: Copro%
------
OBJET: Déterminer la présence ou non d'un Coprocesseur MATH
APPEL: Copro%
EXEMPLE DE PROGRAMMATION
DEFINT A-Z
'INCLUDE: 'QB.BI'
DECLARE FUNCTION Copro% () ' ou 'INCLUDE: 'WBLIB.BI'
IF Copro% THEN
PRINT "Présence d'un Coprocesseur"
ELSE
PRINT "Pas de Coprocesseur"
END IF
...
********************************************************************
SUB: Dosver
------
OBJET: Déterminer la version du DOS utilisé
APPEL: Dosver
EXEMPLE DE PROGRAMMATION
DECLARE SUB Dosver ()
CLS
LOCATE 10, 10
PRINT "Version du DOS n°";
Dosver 'EXEMPLE: Version du DOS n° 5.0
...
********************************************************************
SUB: Erreur
------
OBJET: Interruption d'erreur avec message correspondant
APPEL: Erreur Mes%
EXEMPLE DE PROGRAMMATION
DECLARE SUB Erreur (Mes%)
ON ERROR GOTO ErreurSsProg
CLS
A = 10: B = 0
PRINT A / B ' Division par zéro
PRINT "Ligne suivante" ' RESUME NEXT permet au programme
... de passer à la ligne suivante
END
ErreurSsProg: │
Erreur ERR │
RESUME NEXT ────────────────────────────────┘
********************************************************************
FONCTION: Lecteur
-------
OBJET: Déterminer le lecteur valide
APPEL: Lecteur$
EXEMPLE DE PROGRAMMATION
DECLARE FUNCTION Lecteur$ ()
CLS
PRINT "Le lecteur valide est "; Lecteur$
...
********************************************************************
SUB: MemRom
------
OBJET: Donner la mention de COPYRIGHT de la mémoire morte (ROM)
(A utiliser uniquement si Carte EGA ou supérieure)
APPEL: MemRom
EXEMPLE DE PROGRAMMATION
DECLARE SUB MemRom
CLS
MemRom
...
********************************************************************
FONCTION: Repertoire
----------
OBJET: Déterminer les lecteur et répertoire valides
APPEL: Repertoire$
EXEMPLE DE PROGRAMMATION
DECLARE FUNCTION Repertoire$ ()
PRINT "Le chemin actuel est : "; Repertoire$ 'EXEMPLE: C:\DOS
...
*******************************************************************
FONCTION: UcMicro%
--------
OBJET: Déterminer le processeur de l'ordinateur
APPEL: UcMicro%
EXEMPLE DE PROGRAMMATION
DECLARE FUNCTION UcMicro%
PRINT "Le processeur est un 80"; UcMicro%
...
*******************************************************************
SUB: Volume
------
OBJET: Lire, Créer, Renommer, Effacer le Label de Volume
APPEL: Volume "Lecteur", "Etiquette", "ExtVol"
* Lecteur : A, B, C, D, E, etc
* Etiquette : Le nom à donner au Label de Volume
* ExtVol : - L pour Lire
- EC pour ECrire (Créer)
- R pour Renommer
- EF pour EFfacer
EXEMPLE DE PROGRAMMATION
DECLARE SUB Volume (Lecteur$, Etiquette$, ExtVol$)
DEFINT A-Z
Volume "C", "", "L" 'Lit le Label de volume de C Ex: MICRO486
Volume "A", "DISK1", "EC" 'ECrit DISK1 comme L d V sur disquette A
Volume "C", "DISKC", "R" 'Modifie MICRO486 en DISKC
...
####################################################################
CHAPITRE 2
==========
GESTION DE LA SOURIS
--------------------
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Un EXEMPLE DE PROGRAMMATION reprenant toutes les fonctions
et routines est disponible en fin de ce chapitre.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
********************************************************************
FONCTION: SrPresente
----------
OBJET: Rechercher si une souris compatible MICROSOFT est connectée
APPEL: SrPresente% ou SrPresente
********************************************************************
FONCTION: SrInit
------
OBJET: Initialiser la souris
APPEL: SrInit% ou SrInit
********************************************************************
SUB: SrMarche
--------
OBJET: Rendre visible le curseur de la souris à l'écran
APPEL: SrMarche
********************************************************************
SUB: SrStop
------
OBJET: Dé-initialiser la souris et rendre invisible le curseur
APPEL: SrStop
********************************************************************
SUB: SrPos
-----
OBJET: Positionner le curseur à un endroit déterminé
APPEL: SrPos Ligne%, Rang%
* Ligne% : Valeur entre 1 et 80 (WIDTH 80)
* Rang% : Valeur entre 1 et 25 (SCREEN 0)
1 et 53 (SCREEN 9)
1 et 60 (SCREEN 12) ...
********************************************************************
SUB: SrLimit
-------
OBJET: Limiter le déplacement du curseur dans un espace déterminé
APPEL: SrLimit X1%, X2%, Y1%, Y2%, BoutonSouris%, RetX%, RetY%, -
Test
[Valeurs correspondantes Mode VGA (SCREEN 12)]
ATTENTION: Transcription nécessaire pour les Modes 0 à 11 + 13
---------
* X1% : Valeur entre 1 et 80
* X2% : Valeur entre 1 et 80 avec X2% > X1%
* Y1% : Valeur entre 1 et 60
* Y2% : Valeur entre 1 et 60 avec Y2% > Y1%
* BoutonSouris% :
1: si click sur Bouton Gauche
2: ------------------- Droit
3: -------------------s Gauche + Droit
4: ------------------- Milieu (si disponible)
5: -------------------s Gauche + Milieu
6: -------------------s Milieu + Droit
7: ------------------- Tous
0: ------------------- Aucun
* RetX% : Retour de la Valeur de X lors du click
* RetY% : Retour de la Valeur de Y lors du click
* Si Test <> 0, informations sur la position du curseur
et du bouton clické en Ligne 1.
(Utilisation utile principalement en programmation)
*******************************************************************
FONCTION: SrStatus
--------
OBJET: Déterminer le bouton "clické" et la position du curseur
(Ligne = X et Rang = Y)
APPEL: Boutons = SrStatus (SrPosX%, SrPosY%)
* Boutons : Retour Valeur [0 à 7]
* SrPosX% : Retour Valeur [1 à 80] (WIDTH 80)
* SrPosY% : Retour Valeur [1 à 60] (SCREEN 12)
*******************************************************************
SUB: SrCurseur
---------
OBJET: Modifier la forme et les couleurs du curseur et du fond
[Utilisable uniquement en mode Textes (SCREEN 0)]
APPEL: SrCurseur SrCaracterASCI%, SrCoulCurseur%, SrCoulFondCurs%
* SrCaractereASCI% : Valeur [1 à 255]
* SrCouleurCurseur% : Valeur [1 à 15]
* SrCoulFondCurs% : Valeur [1 à 15]
*******************************************************************
SUB: BtSrInit
--------
OBJET: (Ré)Initialiser les Boutons de la souris
APPEL: BtSrInit Boutons%
* Boutons% : Valeur [0 à 7] (cf. SrLimit)
*******************************************************************
FONCTION: BtSrStatus
----------
OBJET: Contrôler si un bouton de la souris a été "clické"
et dans l'affirmative, réinitialiser les boutons
APPEL: Control = BtSrStatus BtSrVal%, SPosX%, SPosY%
* Control : -1 si aucun bouton "clické", sinon 0
* BtSrVal% : 0 pour BtSrGauche, 1 pour BtSrDroit
2 pour BtSrMilieu (cf. Exemple de Prog)
*******************************************************************
SUB: BtSrAffiche
-----------
OBJET: Afficher à l'écran la position exacte du curseur (X,Y) et
déterminer le bouton "clické" (Gauche, Droit, etc)
[à utiliser en combinaison avec SrStatus]
APPEL: BtSrAffiche Boutons%, SPosX%, SPosY%, Imp1%, Imp2%, -
Imp3%, Imp4%
* Boutons%, SPosX%, SPosY% : Obtenus par SrStatus
* Imp1%, Imp2% : Affiche le bouton "clické" à l'emplace-
ment Imp1% et Imp2% (id° que LOCATE Imp1%, Imp2%)
* Imp3%, Imp4% : Affiche les valeurs de X et Y
*******************************************************************
EXEMPLE DE PROGRAMMATION
DEFINT A-Z
'$INCLUDE: 'QB.BI' 'En raison des Interruptions
'$INCLUDE: 'WBLIB.BI' 'Initialiser les Fonctions et Routines
'Variables nécessaires au bon fonctionnement de SrInit, SrMarche, -
'SrStop
Vrai = -1: Faux = 0
'Définitions des Boutons en vue reconnaissance lors du click
BtG = 1: BtD = 2: BtGD = 3: BtM = 4
BtGM = 5: BtMD = 6: BtTous = 7: BtAucun = 0
'Définition des Boutons de la Souris en vue de (Ré)Initialisation
BtSrGauche = 0: BtSrDroit = 1 : BtSrMilieu = 2
SCREEN 0 'En raison de l'utilisation de SrCurseur
IF SrPresente THEN
LOCATE 1, 1: PRINT "Souris connectée"
IF NOT SrInit THEN
LOCATE 1, 1: PRINT "Souris non initialisée"
'Non Compatible ?, Défectueuse ?, ...
END
ELSE
LOCATE 1, 1: PRINT "Souris initialisée"
END IF
ELSE
LOCATE 1, 1: PRINT "Désolé, Souris introuvable"
END
END IF
LOCATE 25, 1
PRINT "(Bouton Gauche pour changer,";" Bouton Droit pour Quitter)";
SrPos 10, 26 'Positionnement de la souris en Ligne = 10, Rang = 26
SrMarche 'Curseur visible
BtSrInit BtSrGauche 'Initialiser le Bouton gauche
WHILE NOT (Ret1% = 1 AND Ret2% = 1) 'Coin supérieur gauche
SrLimit 1, 45, 1, 44, Prg, Ret1%, Ret2%, 0
WEND 'Tant que Bouton gauche non clické sur position (X,Y) = (1,1)
'l'espace de déplacement de la souris sera restreint
DO WHILE Boutons <> BtD 'Click sur Bt droit quitte le Programme
Boutons = SrStatus(SPosX, SPosY) 'Un Bt clické ?
BtSrAffiche Boutons, SPosX, SPosY, 24, 42, 24, 66
'Oui, et c'est le gauche
IF Boutons = BtG THEN
SrCaracterASCI = 65 'Code ASCII de A
SrCoulCurseur = INT((14*RND)) + 1
SrCoulFondCur = INT((15*RND))
SrCurseur SrCaracterASCI, SrCoulCurseur, SrCoulFondCur
END IF
SrMarche 'Initialiser le nouveau curseur
BtSrInit BtSrGauche 'Remise à zéro
END IF
LOOP
SrStop 'Dé-initialiser l'accès souris et curseur invisible
END 'Quitter, le Bt droit ayant été clické
###################################################################
CHAPITRE 3
==========
MANIPULATION DE FICHIER
-----------------------
Nota: A partir de ce chapitre, les déclarations des fonctions et
routines dans les exemples de programmation ne seront plus
systématiquement précisées. Naturellement, elles devront
toujours l'être dans vos programmes.
********************************************************************
FONCTION: Existe%
OBJET: Vérifier l'existence ou non d'un fichier
APPEL: Existe% NomFichier$
(Exemple en fin de ce chapitre)
********************************************************************
SUB: Chercher
OBJET: Chercher dans un fichier textes (.TXT, .DOC, ...) une
expression, un mot ...
(Chercher fournira l'emplacement où le mot a été trouvé et
affichera la phrase dans laquelle il se trouve)
APPEL: Chercher NomFichier$, MotATrouver$
Exemple: Chercher "C:\DOS\LISEZMOI.TXT", "NOTES"
********************************************************************
SUB: Dir
OBJET: Routine ressemblant "étrangement" à la fonction DIR du DOS
APPEL: Dir Extension$, CodeRecherche%, Col%
* Extension$ : Exemple : "*.EXE", "C:\DOS\*.COM", ...
* CodeRecherche% : 0 affiche les nom et extension des
fichiers
1 idem que 0 + Heure, Date, le nombre
d'octets des fichiers
* Col% : Affichage à emplacement (colonne) déterminé
Exemple : Dir "*.EXE", 1, 25
********************************************************************
SUB: CopieFich
OBJET: Copier des fichiers
APPEL: CopieFich Source$, Cible$
Exemple : CopieFich "C:\DOS\COMMAND.COM", "A:\COMMAND.COM"
*******************************************************************
FONCTION: Octet&
OBJET: Indiquer le nombre d'octets d'un fichier
APPEL: Octet& ("ExtFichier$")
Exemple : PRINT Octet& ("EXE")
*******************************************************************
SUB: DonneAttribut
OBJET: Indiquer les attributs d'un fichier
APPEL: DonneAttribut Attribut%
(Exemple en fin de ce chapitre)
*******************************************************************
SUB: ModifAttribut
OBJET: Modifier les attributs d'un fichier
APPEL: ModifAttribut LireOuModif%, NomFichier$, Attribut%
* LireOuModif% : 0 pour Lire les attributs
1 pour Modifier les attributs
* NomFichier$ : Nom du Fichier concerné
* Attribut% : Valeur en retour [0,32]
0: Normal
1: Lire seulement
2: Caché
4: Système
32: Archive
Ces Valeurs pouvant s'additionner
Exemple: 34 (2+32) --> Caché et Archive
(Exemple en fin de ce chapitre)
*******************************************************************
EXEMPLE DE PROGRAMMATION
NomFichier$ = "DIR.EXE"
NouveauAttribut% = 34
IF Existe NomFichier$ THEN
ModifAttribut 0, NomFichier$, Attribut%
PRINT "Les attributs du Fichier "; NomFichier$; "sont : ";
DonneAttribut Attribut%
ModifAttribut 1, NomFichier$, NouveauAttribut%
PRINT "Les nouveaux attributs sont maintenant ";
ModifAttribut 0, NomFichier$, Attribut%
DonneAttribut Attribut%
ELSE
PRINT "Le fichier "; NomFichier$; " est introuvé ..."
ENDIF
####################################################################
CHAPITRE 4
==========
MANIPULATION DE CHAINES, NOMBRES, DATES
---------------------------------------
SUB: Reponse
OBJET: Accepter comme valeurs d'entrée, celles déterminées au
préalable par le programmeur
APPEL : Reponse Valeurs$, Code%
* Valeurs$ : Valeurs d'entrée
* Code% : 0 --> N'accepte que les concordances exactes
1 --> Majuscules ou Minuscules acceptées
EXEMPLE DE PROGRAMMATION
CLS
LOCATE 10,10
PRINT "Désirez-vous continuer (O/N) "; ' (;) = IMPORTANT !!
Reponse "ONon", 0 [ou Reponse "ON", 1 ou Reponse "oN" ...]
'(O,N,o,n) seront seules acceptées
sinon émission d'un Bip sonore
PRINT "Sexe Masculin ou Féminin (M/F) ";
Reponse "MF", 0 ' M et F acceptées, f et m refusées
Reponse "MF", 1 ' M, F, f et m sont acceptées
********************************************************************
FONCTION: Filtre$
OBJET: Ressortir d'une chaine les caractères désirés
APPEL : Filtre$ (Texte$, ChaineFiltre$)
Exemple : PRINT Filtre$ ("les oiseaux", "aeiouy")
Sortie écran --> e oieau
********************************************************************
FONCTION: EnlCar$
OBJET: Supprimer des caractères d'une chaine
APPEL: EnlCar$ (Texte$, CaractSupp$)
Exemple : PRINT EnlCar$ ("les oiseaux", "aeiouy")
Sortie écran --> ls sx
*******************************************************************
FONCTION: EcriForma$
OBJET: Ecrire Chaine sous format prédéterminé
APPEL: EcriForma$ (Texte$, Format$)
* Format$ : Caractères reconnus [@, 0 à 9, #, *, |]
Exemple : PRINT EcriForma$ ("lesoiseaux", "### |@*01 29")
Sortie écran --> les oisea ux
******************************************************************
FONCTION: CarForma$
OBJET: Variante de EcriForma$
APPEL: CarForma$ (Texte$, Format$)
* Format$: Tous les caractères sont utilisables
Exemple : PRINT CarForma$ ("lesoiseaux", "a#c!e,z")
Sortie écran --> lesoise
******************************************************************
FONCTION: Alea
OBJET: Fournir un nombre entier aléatoire
APPEL: Alea (ValeurMaxi%)
Exemple : RANDOMIZE TIMER
Alea (156)
Sortie écran --> un nbre compris entre [0,156]
*******************************************************************
SUB: Tri
OBJET: Ranger par ordre croissant une série de nombres
APPEL: Tri Tableau(), Nombre
EXEMPLE DE PROGRAMMATION
DECLARE FUNCTION Alea% (VlMaxi%)
DECLARE SUB Tri (Tableau () AS SINGLE, Nombre AS INTEGER)
DEFINT A-Z
' Définition du Tableau
DIM Tableau (1 TO 10)
CLS
' Attribution de 10 valeurs aléatoires
FOR I% = 1 TO 10
Tableau (I%) = Alea (100)
NEXT I%
' Classement
Tri Tableau(), 10
' Sortie écran ordre croissant
FOR I% = 1 TO 10
PRINT Tableau (I%)
NEXT I%
' Sortie écran ordre décroissant
FOR I% = 10 TO 1 STEP -1
PRINT Tableau (I%)
NEXT I%
END
*********************************************************************
FONCTION: Coder
OBJET: Transformer une date en nombre
APPEL: Coder (Datee$)
(Exemple dans Decoder)
*********************************************************************
FONCTION: Decoder
OBJET: Routine inverse de Coder
APPEL: Decoder (Nbre%)
EXEMPLE DE PROGRAMMATION
DECLARE FUNCTION Coder (Datee$)
DECLARE FUNCTION Decoder (Nombre%)
Datee$ = "311294"
PRINT Coder (Datee$)
PRINT Decoder (5579)
END
Sortie écran
5579
311294
#####################################################################
CHAPITRE 5
==========
FONCTIONS GRAPHIQUES ET ASSIMILEES
----------------------------------
1) Fonctions graphiques (SCREEN 1 à 13)
IMPORTANT : L'utilisation des routines et fonctions suivantes néces-
sitent IMPERATIVEMENT la définition d'un écran graphique
(SCREEN 1 à 13) en raison pour certaines de l'accès direct
au BIOS.
A défaut, seul le Bouton RESET de l'ordinateur vous sera
d'une grande utilité !!
********************************************************************
SUB: Vue
OBJET: Affichage d'image au format binaire .BLD et .PLT
[Utilisable uniquement en Mode SCREEN 13]
APPEL: Vue NomImage$
Exemple : SCREEN 13 : Vue "WBLIB"
(Cf. EXEMPLE1.BAS)
*********************************************************************
SUB: Carre
OBJET: Fenêtres "explosives" avec encadrement, ombrage ...
SCREEN [1,13]
APPEL: Carre X1%, X2%, Y1%, Y2%, Couleur1%, Remplissage%, -
Couleur2%, Cadre%, Ombre%, CoulOmbre%, Explose%
* X1%: Point départ Supérieur Gauche
SCREEN 12 Valeurs [0,639]
* X2%: Point arrivée Supérieur Droit
idem que X1%, mais X2% > X1%
* Y1%: Point départ Inférieur Gauche
SCREEN 12 Valeurs [0,479]
* Y2%: Point arrivée Inférieur Droit
idem que Y1%, mais Y2% > Y1%
* Couleur1% : Couleur de remplissage de la fenêtre
Valeurs [0,15]
* Remplissage% : Valeurs [0,1]
0 --> Fenêtre vide
1 --> Fenêtre remplie par Couleur1%
* Couleur2% : Couleur du Cadre
* Cadre% : Valeurs [0,2]
0 --> Aucun cadre
1 --> Cadre en ligne simple
2 --> Cadre en ligne double
* Ombre% : Valeurs [0,4]
0 --> Pas d'ombrage
1 --> Ombrage, Gauche + Bas
2 --> Ombrage, Droit + Bas
3 --> Ombrage, Gauche + Haut
4 --> Ombrage, Droit + Haut
* CoulOmbre% : Valeurs [0,15]
Couleur de l'ombrage
[Même si Ombre% = 0, une Valeur en CoulOmbre% est nécessaire]
* Explose% : Valeurs [0,1]
0 --> Fenêtre non explosive
1 --> Fenêtre explosive
Exemple : SCREEN 12
Carre 0, 320, 0, 240, 14, 1, 4, 1, 2, 7, 1
Sortie écran --> Fenêtre jaune explosive
Cadre en ligne rouge et trait simple
Ombrage, Droit + Bas, gris clair
Quart Supérieur Gauche de l'écran.
*********************************************************************
FONCTION: Entrer$
OBJET: Entrer une chaine de caractères sur fond coloré
[SCREEN 12 uniquement, l'emploi au préalable de la routine
PAL 0, Coul2% étant fortement conseillée pour palier au
manque de la fonction COLOR Coul1, Coul2 dans ce mode]
APPEL: Entrer$ (CoulEcriture%, ValMaxi%, Coul%, Fond%, Caract$, -
ToucheEnter%)
[Touches valides : ENTER & BACKSPACE (Retour en arrière)]
* CoulEcriture% : Valeurs [0,15]
Couleur d'affichage du texte à l'écran
* ValMaxi% : Valeurs [1,80] (WIDTH 80)
Détermine la longueur maximum de la
chaine de caractères à saisir
* Coul% : Valeurs [0,15]
Couleur du Fond coloré avant entrée de
la chaine de caractères
* Fond% : Valeurs [0,15]
Couleur du Fond coloré après entrée
d'un caractère
* Caractère$ : Détermine les caractères acceptées lors
de la saisie écran
* ToucheEnter% : Détermine si l'emploi de la touche
ENTER est nécessaire ou non
0 --> Touche ENTER non valide
1 --> Touche ENTER nécessaire
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
IMPORTANT : La fonte FOND.FNT est nécessaire au bon fonctionnement
========= de la fonction ENTRER$.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
EXEMPLE DE PROGRAMMATION
SCREEN 12 ' Si oubli --> BONJOUR RESET !!
InitPal ' Initialise Palette graphique
CrePal 14, 15, 57 ,31 ' Création d'une Palette et Modification de la
couleur jaune (14)
Pal 0, 1 ' Equivaut à COLOR Coul%, 1 qui n'existe pas
dans le mode SCREEN 12 !!
EfEcran 7 ' Efface l'écran en couleur grise
Carre 40, 302, 105, 200, 1, 1, 14, 2, 2, 8, 0
LOCATE 10, 10
PRINT "Nom: "
LOCATE 10, 18 ' Permet à la fonction Entrer$ de connaitre
l'emplacement exact du début d'affichage
Limit$ = "AZERTYUIOPQSDFGHJKLMWXCVBN "
' Correspond aux seuls caractères que l'on
pourra saisir à l'écran (Majuscules + Touche ESPACE)
Sortie$ = Entrer$ (14, 15, 11, 0, Limit$, 1)
' 14: Affichage des caractères saisis en Couleur 14 modifiée [CrePal]
' 15: 15 caractères maximum pourront être saisis
' 11: Fond BLEU PASTEL (longueur 15 caractères)
' 0 : Après saisie du caractère, la couleur du Fond de ce caractère
deviendra BLEU (Noir modifié en Bleu [PAL])
' Limit$ : Essayez de saisir "azert!#é..." --> Bip Sonore
' 1: L'utilisation de la touche ENTER sera nécessaire pour valider la
chaine de caractères saisis
LOCATE 25,1
PRINT Sortie$
END (Cf. EXEMPLE4.BAS)
*********************************************************************
SUB: EfEcran
OBJET: Effacer l'écran dans une couleur déterminée
[SCREEN 12 principalement]
APPEL: EfEcran Couleur% Valeurs [0,15]
Exemple : EfEcran 1 ' Couleur bleue
********************************************************************
SUB: EfEcran1
OBJET: Effacer l'écran dans une couleur déterminée
SCREEN [1,13]
APPEL: EfEcran1 Couleur% Valeurs [0,15]
********************************************************************
SUB: Effet
OBJET: Effacer l'écran avec effets spéciaux
SCREEN [9,12]
APPEL: Effet Valeur%, ModeEcran%
* Valeur% : Valeurs [1,12]
12 effets à tester
Exemple : SCREEN 12 'SCREEN 9
PRINT "WBLIB Version 1.10 par BLAKE William"
Effet 1, 12 'Effet 1, 9
********************************************************************
SUB: ChargFont
OBJET: Chargement
- de la fonte CLAVIER.FNT pour utilisation avec la
routine DESSINE (Dimension : 11445)
- des différentes fontes d'écriture pour utilisation de
la routine FONTE (Dimension : 8614)
SCREEN [7,12], mais principalement pour le mode 12.
1) CLAVIER.FNT permet d'afficher les caractères ASCII de
33 à 140 et 150
2) Les autres fontes affichent uniquement les caractères
!"%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]`
APPEL: ChargFont "CLAVIER.FNT", Tableau%()
Exemple : SCREEN 12 ' 7, 8 ou 9
DIM F1% (11445) ' Toujours 11445
ChargFont "CLAVIER.FNT", F1%()
DIM F2% (8614) ' Toujours 8614
ChargFont "FONTE1.FNT", F2%()
...
********************************************************************
SUB: Dessine
OBJET: Afficher un texte sur un fond coloré sans détruire le fond
SCREEN [7,12]
APPEL: Dessine Texte$, X%, Y%, Orientation%, Font%(), Format%
* Texte$ : Texte à afficher
* X% : SCREEN 12 Valeurs [0,639]
* Y% : SCREEN 12 Valeurs [0,479]
* Orientation% : Sens de l'écriture
0 : de Gauche à Droite
1 : de Droite à Gauche
2 : de Haut en Bas
3 : de Bas en Haut
* Font%() : Le nom donné au tableau
* Format% : Opérateur d'affichage
0 : OR
1 : PSET
2 : XOR
Exemple : SCREEN 12
DIM F1% (11445)
ChargFont "CLAVIER.FNT", F1%()
Dessine "WBLIB", 50, 100, 0, F1%(), 2
... (Cf. EXEMPLE1.BAS)
********************************************************************
SUB: Fonte
OBJET: Afficher une police d'écriture sur un fond coloré sans
détruire le fond
SCREEN [7,12]
APPEL: Fonte Texte$, X%, Y%, EcartX%, EcartY%, Orientation%,-
Font%(), Format%
* Texte$ : Texte à afficher
* X% : SCREEN 12 Valeurs [0,639]
* Y% : SCREEN 12 Valeurs [0,479]
* EcartX% : Permet de modifier l'écartement sur X%
* EcartY% : Permet de modifier l'écartement sur Y%
* Orientation% : Sens de l'écriture
0 : de Gauche à Droite
1 : de Droite à Gauche
2 : de Haut en Bas
3 : de Bas en Haut
* Font%() : Le nom donné au tableau
* Format% : Opérateur d'affichage
0 : OR
1 : PSET
2 : XOR
Exemple : Cf. EXEMPLE6.BAS
*********************************************************************
SUB: InitPal
OBJET: Initialiser la palette permettant d'utiliser les routines
suivantes : Pal, CrePal, Fondu, AnulPal
SCREEN [12,13]
APPEL: InitPal
********************************************************************
SUB: Pal
OBJET: Modifier une Palette
SCREEN [12,13]
APPEL: Pal Coul1%, EnCoul2%
Exemple : SCREEN 12
Pal 0, 1 ' Noir (0) devient Bleu (1)
(Cf. EXEMPLE1.BAS)
********************************************************************
SUB: CrePal
OBJET: Créer une palette
SCREEN [12,13]
L'utilitaire CREPAL.EXE vous aidera dans la création de
palette
APPEL: CrePal Coul%, Bleu%, Vert%, Rouge%
* Coul% : Valeurs [0,15]
* Bleu%, Vert%, Rouge% : Valeurs [0,63]
Modifier l'intensité des 3
couleurs (en %), afin de créer une nouvelle palette
Exemple: SCREEN 12
CrePal 15, 0, 0, 0 ' Modifie Blanc (15) en Noir
CrePal 0, 63, 63, 63 ' Modifie Noir (0) en Blanc
CrePal 1, 42, 0, 0 ' Modifie Bleu en lui-même
(Cf. EXEMPLE1.BAS)
*********************************************************************
SUB: Fondu
OBJET: Faire un fondu de palettes
SCREEN [12,13]
APPEL: Fondu Coul%, AncBleu%, Bleu%, AncVert%, Vert%, AncRouge%,-
Rouge%
* Coul : Valeurs [0,15]
* AncBleu% : Ancien % de Bleu
* Bleu% : Nouveau % de Bleu désiré
* etc
Exemple : SCREEN 12
Fondu 0, 0, 47, 0, 35, 0, 22
'Superbe fondu de palette d'un écran noir en
bleu ciel
(Cf. EXEMPLE1.BAS)
*********************************************************************
SUB: Fondre
OBJET: Etablir un fondu progressif ou dégressif de l'écran
(possibilité d'exclure une couleur du fondu)
SCREEN [12]
APPEL: Fondre B%(), V%(), R%(), FB%(), FV%(), FR%(), Objet%,-
Couleur%
* B%(), .., FB%() : Tableaux regroupant les codes couleurs (Les valeurs sont obtenues par CREPAL)
* Objet% : 0 --> Fondu Dégressif
1 --> Fondu Progressif
* Couleur% : Couleur à exclure du Fondu
Valeurs [0,15 ...]
Si valeur > 15, aucune incidence
Exemple : Cf. EXEMPLE5.BAS & EXEMPLE6.BAS
********************************************************************
SUB: AnulPal
OBJET: Annuler toute palette créée (CGA, EGA, VGA)
SCREEN [1,13]
APPEL: AnulPal
********************************************************************
SUB: InitPalEga
OBJET: Initialiser palette EGA pour utilisation de la routine
PalEga (SCREEN [7,9])
APPEL: InitPalEga
********************************************************************
SUB: PalEga
OBJET: Effet de rotation de couleur en EGA
SCREEN [7,9]
APPEL: PalEga
Exemple : SCREEN 9
DO
PalEga
LOOP UNTIL INKEY$ <> ""
********************************************************************
SUB: InitPalVga, PalVga
OBJET: Idem que InitPalEga et PalEga, mais pour les modes 12 & 13
********************************************************************
SUB: Rotation
OBJET: Effet de rotation de couleur en EGA et VGA
SCREEN [9,12]
APPEL: Rotation Valeur%, ModeEcran%
* Valeur% : Valeurs entre [1,5]
5 effets à tester
Exemple : SCREEN 12
LINE (10,15)-(250,500),1,BF
Rotation 1, 12
********************************************************************
SUB: GDefil
OBJET: Faire défiler du texte à l'écran
SCREEN [7,13]
APPEL: GDefil X1%, X2%, Y1%, Y2%, Saut%, Sens%, Coul%, Texte$
* X1% : Valeurs entre [1,80] (WIDTH 80)
* X2% : Idem que X1%, mais X2% > X1%
* Y1% : Valeurs entre [1,60] (SCREEN 12)
[1,53] (SCREEN 9)
...
* Y2% : Idem que Y1%, mais Y2% > Y1%
* Saut% : Nombre de Lignes à sauter
* Sens% : 1 --> de Bas en Haut
-1 --> de Haut en Bas
* Coul% : Couleur d'écriture
* Texte$ : Texte à afficher
Exemple : Cf. EXEMPLE1.BAS
*********************************************************************
FONCTION: GMenuV
OBJET: Menu de sélection vertical
(SCREEN 12 Uniquement)
[Souris Optionnelle - Validation Bouton Droit]
APPEL: GMenuV NomFich$(), NbreEntree%, Colone%, Rang%, ClNom%, -
Fond%, NFich%, Marque%, Cadre%, Ombre%, Tour%, -
Titre$, Blanc%
* NomFich$() : Tableau comportant les rubriques de
sélection
Exemple : NomFich$(1) = "1) Backup "
NomFich$(2) = "2) Restore"
...
* NbreEntree% : Nbre de rubriques de sélection
Dans l'exemple précédent = 2
* Colone% : Emplacement d'affichage [1,60] SCREEN 12
* Rang% : Emplacement d'affichage [1,80] WIDTH 80
Valeurs des couleurs [0,15]
* ClNom% : Couleur des rubriques de sélection
* Fond% : Couleur du Fond
* NFich% : Couleur de 1ère lettre des Rub de Sélect
* Marque% : Couleur du curseur rotatif
* Cadre% : Valeurs entre [0,2]
0 --> Pas de cadre
1 --> Cadre en trait simple
2 --> Cadre en trait double
* Ombre% : Ombrage, Valeurs entre [0,4]
* Tour% : Couleur du cadre
* Titre$ : Non disponible dans cette version --> ""
* Blanc% : Valeur permettant d'élargir le cadre
Exemple : Cf. EXEMPLE4.BAS
*********************************************************************
2) Fonctions graphiques en Mode Textes (SCREEN 0)
IMPORTANT : Les routines et fonctions suivantes ne fonctionnent qu'en
mode Texte SCREEN 0.
Ne pas tenter de les utiliser en mode graphique, sinon
notre ami le RESET reprendra du service !!
*********************************************************************
FONCTION: TEntrer$
OBJET: Entrer une chaine de caractères sur fond coloré
[SCREEN 0 uniquement, Fonction identique à Entrer$]
APPEL: TEntrer$ (CoulEcriture%, ValMaxi%, Coul%, Fond%, Caract$,-
ToucheEnter%)
[Touches valides : ENTER & BACKSPACE (Retour en arrière)]
* CoulEcriture% : Valeurs [0,15]
Couleur d'affichage du texte à l'écran
* ValMaxi% : Valeurs [1,80] (WIDTH 80)
Détermine la longueur maximum de la
chaine de caractères à saisir
* Coul% : Valeurs [0,15]
Couleur du Fond coloré avant entrée de
la chaine de caractères
* Fond% : Valeurs [0,15]
Couleur du Fond coloré après entrée
d'un caractère
* Caractère$ : Détermine les caractères acceptées lors
de la saisie écran
* ToucheEnter% : Détermine si l'emploi de la touche
ENTER est nécessaire ou non
0 --> Touche ENTER non valide
1 --> Touche ENTER nécessaire
*********************************************************************
SUB: Ecran
OBJET: Effacer l'écran avec un caractère ASCII déterminé
APPEL: Ecran Coul%, Fond%, CaracASCII%
* Coul% : Valeurs entre [0,15]
Couleur du caractère
* Fond% : Couleur de fond du caractère
* CaracASCII% : Valeurs entre [1,255]
Exemple : SCREEN 0
Ecran 10, 15, 219
*********************************************************************
SUB: Ligne25
OBJET: Afficher un message en Ligne 25 dans une couleur
déterminée
APPEL: Ligne25 Message$, Coul%
*********************************************************************
SUB: Ecrit
OBJET: Afficher un message à un emplacement déterminé, dans une
couleur déterminée et sur un fond coloré
APPEL: Ecrit Message$, Rang%, Colone%, CoulEcri%, CoulFond%
********************************************************************
SUB: Fenetre
OBJET: Fenêtre "explosive" avec cadre, ombrage et titre
[SCREEN 0: Rappel]
APPEL: Fenetre X1%, X2%, Y1%, Y2%, Cadre%, Fond%, CoulCadre%, -
Explose%, Ombre%, CoulOmbre%, Titre$
* X1% : Valeurs entre [1,80] (WIDTH 80)
* X2% : Idem que X1%, mais X2% > X1%
* Y1% : Valeurs entre [1,25]
* Y2% : Idem que Y1%, mais Y2% > Y1%
* cadre% : Valeurs entre [0,2]
0 --> Pas de cadre
1 --> Cadre en trait simple
2 --> Cadre en trait double
* Fond% : Couleur du Fond
* CoulCadre% : Couleur du Cadre
* Explose% : 0 --> Non explosive
1 --> Explosive
* Ombre% : 0 --> Pas d'ombrage
1 --> Ombrage, Gauche + Bas
2 --> Ombrage, Droit + Bas
* CoulOmbre% : Couleur de l'ombrage
* Titre$ : Titre sur Ligne supérieure
Exemple : Cf. EXEMPLE3.BAS
*********************************************************************
SUB: Defil
OBJET: Faire défiler du texte à l'écran
APPEL: Defil X1%, X2%,Y1%, Y2%, Saut%, Sens%, Coul%, Fond%, Texte$
* X1% : Valeurs entre [1,80] (WIDTH 80)
* X2% : Idem que X1%, mais X2% > X1%
* Y1% : Valeurs entre [1,25]
* Y2% : Idem que Y1%, mais Y2% > Y1%
* Saut% : Nombre de Lignes à sauter
* Sens% : 1 --> de Bas en Haut
-1 --> de Haut en Bas
* Coul% : Couleur caractère
* Fond% : Couleur du fond du caractère
* Texte$ : Texte à afficher
Exemple : Cf. EXEMPLE3.BAS
*********************************************************************
FONCTION: MenuV
OBJET: Menu de sélection vertical
[Souris Optionnelle - Validation Bouton Droit]
APPEL: MenuV NomFich$(), NbreEntree%, Colone%, Rang%, ClNom%, -
Fond%, NFich%, NomMarque%, Marque%, Cadre%, -
Ombre%, Tour%, Titre$, Blanc%
* NomFich$() : Tableau comportant les rubriques de
sélection
Exemple : NomFich$(1) = " 1) Backup "
NomFich$(2) = " 2) Restore "
NomFich$(3) = " 3) Quitter "
...
* NbreEntree% : Nbre de rubriques de sélection
Dans l'exemple précédent = 3
* Colone% : Emplacement d'affichage [1,60] SCREEN 12
* Rang% : Emplacement d'affichage [1,80] WIDTH 80
Valeurs des couleurs [0,15]
* ClNom% : Couleur des rubriques de sélection
* Fond% : Couleur du Fond
* NFich% : Couleur de 1ère lettre des Rub de Sélect
* NomMarque : Couleur du texte sélectionné
* Marque% : Couleur du curseur rotatif
[Souris ou Flêches de déplacement]
* Cadre% : Valeurs entre [0,2]
0 --> Pas de cadre
1 --> Cadre en trait simple
2 --> Cadre en trait double
* Ombre% : Ombrage, Valeurs entre [0,2]
* Tour% : Couleur du cadre
* Titre$ : Insertion d'un texte sur ligne supérieure
du cadre
* Blanc% : Valeur permettant d'élargir le cadre par
la gauche et la droite
Exemple : Cf. EXEMPLE3.BAS
*********************************************************************
FONCTION: MenuH
OBJET: Menu de sélection horizontal
[Souris Optionnelle - Validation Bouton Droit]
APPEL: MenuH LigneMenu$, Position%, MenuFd%, MenuEc%, TailleM%, -
NbreMenu%, MaxiTaille%(), MaxiEntre%(), Entree$(), -
SelMenu%, SelEntr%, Bruit%
* Touche de Sortie : ECHAPPEMENT [ESCAPE] --> retourne la
valeur -1 à SelEntr%
<----TailleM%----->
┌───────────────────┬─────────────────────────────────┐
LigneMenu$ = │ Choix Principal 1 │ Choix Principal 2 ... │
├───────────────────┼─────────────────────────────────┘
│ Sous Menu 1 │<----- MaxiEntre% (1) = 4
│ Sous Menu 2 │ (Sous-Menu 1 à 4)
MenuFd% ---┼-> Sous Menu 3 │
MenuEc% ---┼--->Sous Menu 4 │
└───────────────────┘
Entree$ (1,1) = " Sous Menu 1 "
Entree$ (1,2) = " Sous Menu 2 ", etc [SelMenu% = 1, SelEntr% = 2]
* LigneMenu$ : Choix Principaux
* Position% : Ligne de positionnement à l'écran de
LigneMenu$
* MenuFd% : Couleur du fond [0,15]
* MenuEc% : Couleur des écrits [0,15]
* TailleM% : Taille du surlignement (en caractères)
lors du déplacement du curseur pour les
Choix Principaux [Souris ou Flêches]
* NbreMenu% : Nombre de Choix Principaux (Dans Exemple
serait égal à 2 [Ch. Principal 1 et 2])
* MaxiTaille% : Tableau non disponible dans cette version
Néanmoins, un dimensionnement aléatoire
doit être effectué (Cf. EXEMPLE3.BAS)
* MaxiEntre% : Tableau indiquant au programme le nombre
de sous-menus par Choix Principaux
* Entree$ : Tableau indiquant les différents choix
des sous-menus
* SelMenu% : Valeur retournée par le programme et
représentant la valeur abscisse du
Tableau Entree$ ()
* SelEntr% : Valeur retournée par le programme et
représentant la valeur ordonnée du
Tableau Entree$ ()
* Bruit% : 0 --> Pas de Bip
1 --> Bip sonore
Se reporter à EXEMPLE3.BAS pour un exemple concret
#####################################################################
CHAPITRE 6
==========
GESTION DE LA VIDEO
-------------------
*********************************************************************
SUB: ImpEc
OBJET: Impression de l'écran sur une imprimante
[SCREEN 0 Uniquement]
APPEL: ImpEc
*********************************************************************
SUB: Boite
OBJET: Représenter un encadrement à l'écran
SCREEN [0,13]
APPEL: Boite X1%, X2%, Y1%, Y2%, Coul%, Tour%
* X1% : Valeur entre 1 et 80 (WIDTH 80)
* X2% : Valeur entre 1 et 80 avec X2% > X1%
* Y1% : Valeur entre 1 et 60 [SCREEN 12]
* Y2% : Valeur entre 1 et 60 avec Y2% > Y1%
* Coul%: Couleur de l'encadrement [0,15]
* Tour%: Valeurs entre [1,2]
1 --> Trait simple
2 --> Trait double
********************************************************************
SUB: Entete
OBJET: Afficher un texte centré sur la première ligne de l'écran
SCREEN [0,13]
APPEL: Entete Texte$
********************************************************************
SUB: Centre
OBJET: Afficher un texte centré sur une ligne déterminée
SCREEN [0,13]
APPEL: Centre Rang%, Texte$
********************************************************************
SUB: Efface
OBJET: Effacer une partie de l'écran
SCREEN [0,13]
APPEL: Effacer DebLigne%, FinLigne%, DebCol%, FinCol%, Caract%,-
Coul%
* Caract%: Code ASCII du caractère désiré
Exemple : Effacer 1, 10 , 5, 12, 219, 12
CHR$(219) = █
********************************************************************
SUB: Glisser
OBJET: Afficher un texte à l'écran en le faisant bouger de
droite à gauche
SCREEN [0,13]
APPEL: Glisser Texte$, Retard!, Rang%, Col%, Coul1%, Coul2%,-
Mode%
Exemple : Mode = 12
SCREEN Mode
Texte$ = "Tapez une touche ... "
InitPal
Pal 0, 11
Glisser Texte$, .1, 15, 20, 14, 0, Mode
********************************************************************
SUB: ImpMessage
OBJET: Afficher un message à l'écran en effacant jusqu'à la fin
de la ligne
SCREEN [0,13]
APPEL: ImpMessage PosX%, PosY%, Texte$
* PosX% : Valeur entre 1 et 80 (WIDTH 80)
* PosY% : Valeur entre 1 et 60 [SCREEN 12]
********************************************************************
SUB: Verif
OBJET: Déterminer la résolution maximale d'affichage (CGA à VGA,
MONO et HERCULES) et le nombre de lignes Maximum que
l'écran peut afficher
SOURCE à inclure dans votre programme
SCREEN [0,13]
APPEL: Verif Valeur$
* Valeur$ : Valeurs entre [0,13] + [99]
Exemple : Verif 9 --> Contrôle si l'écran peut afficher une résolution en EGA, à défaut Verif testera
la résolution inférieure
Verif 99 --> Rechercher la meilleure
résolution
(Cf. EXEMPLE1.BAS)
********************************************************************
FONCTION: NoirBlanc%
OBJET: Tester si l'écran supporte ou non la couleur
SCREEN [0,13]
APPEL: NoirBlanc%
Exemple : IF NoirBlanc% THEN
PRINT "Ecran Monochrome"
ELSE
PRINT "Ecran Couleur"
ENDIF
********************************************************************
SUB: SV9, SV12, SV13
OBJET: Sauver un écran graphique sur support (C:, Disquette)
dans le mode approprié
SCREEN [9,13]
APPEL: SV# "IMAGE.###"
*******************************************************************
SUB: CH9, CH12, CH13
OBJET: Charger un écran graphique dans le mode approprié
SCREEN [9,13]
APPEL: CH# "IMAGE.###"
*******************************************************************
SUB: Sauve
OBJET: Sauver un écran Textes sur support dans le mode approprié [SCREEN 0 Uniquement]
APPEL: Sauve "IMAGE.###"
*******************************************************************
SUB: Charge
OBJET: Charger un écran Textes dans le mode approprié [SCREEN 0 Uniquement]
APPEL: Charge "IMAGE.###"
*******************************************************************
SUB: Prendre
OBJET: Placer un écran Textes en mémoire [SCREEN 0 Uniquement]
APPEL: Prendre Tableau% ()
*******************************************************************
SUB: Rendre
OBJET: Afficher un écran Textes mis en mémoire par Prendre [SCREEN 0 Uniquement]
APPEL: Rendre Tableau% ()
Exemple : SCREEN 0
DIM Ecran% (2000)
CLS
FOR I% = 1 TO 100
PRINT "Essai Sauvegarde écran";
NEXT I%
Prendre Ecran% ()
CLS
PRINT "Tapez une Touche ..."
Clef
Rendre Ecran% ()
END
#####################################################################
CHAPITRE 7
==========
GESTION DU CLAVIER
------------------
*********************************************************************
SUB: CursVis
OBJET: Rendre le curseur visible [SCREEN 0 Uniquement]
APPEL: CursVis
*******************************************************************
SUB: CursInv
OBJET: Rendre le curseur invisible [SCREEN 0 Uniquement]
APPEL: CursInv
*******************************************************************
SUB: CursEf
OBJET: Effacer la ligne à partir du curseur SCREEN [0,13]
APPEL: CursEf
*******************************************************************
SUB: PasBouger
OBJET: Afficher un texte à l'endroit désiré sans bouger le
curseur de place
SCREEN [0,13]
APPEL: PasBouger Texte$, Ligne%, Col%
*******************************************************************
SUB: Clef
OBJET: Attendre la pression d'une touche pour poursuivre le
programme avec émission d'un Bip sonore
SCREEN [0,13]
APPEL: Clef
*******************************************************************
SUB: Numon, Majon, Scrollon, Touchon
OBJET: Activer les Numériques, Majuscules, Scroll, et les trois
ensembles
SCREEN [0,13]
APPEL: Numon, Majon, Scrollon, Touchon
*******************************************************************
SUB: Numoff, Majoff, Scroloff, Touchoff
OBJET: Dé-Activer les Numériques, Majuscules, Scroll, et les
trois ensembles
SCREEN [0,13]
APPEL: Numoff, Majoff, Scroloff, Touchoff
*******************************************************************
FONCTION: Dentree
OBJET: Controler le paramètre d'entrée lors du lancement du
programme par l'utilisateur
SCREEN [0,13]
APPEL: Dentree Entree$
Exemple : IF Dentree "MOTDEPASSE" THEN
PRINT " Accés autorisé !"
ELSE
PRINT " Accés au programme refusé !"
PRINT " Ré-initialisation du système dans
3 secondes ..."
Delai 3
Bouter
Pour avoir l'accès, l'utilisateur doit lancer votre
programme du DOS en tapant :
NOMDUPROGRAMME (.EXE [facultatif]) MOTDEPASSE
*******************************************************************
FONCTION: Commande
OBJET: Controler les paramètres d'entrée lors du lancement du
programme par l'utilisateur
SCREEN [0,13]
APPEL: Commande Parametre$
Exemple : IF Commande "AIDE" THEN
PRINT "Vous avez demandé l'aide "
GOSUB ...
ENDIF
IF Commande "NB"
PRINT "Version en Noir et Blanc "
GOSUB ...
ENDIF
IF Commande "CL"
PRINT "Version en Couleur "
GOSUB ...
ENDIF
...
Si l'utilisateur tape à la ligne DOS :
NOMDUPROGRAMME (.EXE [facultatif]) AIDE CL
--> Sortie écran :
Vous avez demandé l'aide
Version en Couleur
...
*******************************************************************
SUB: Clavier
OBJET: Modifier les vitesses d'affichage et de répétition des
touches du clavier
SCREEN [0,13]
APPEL: Clavier Valeur$
* Valeur$ : [A,D] et [0,31]
Exemple : Clavier "A 31"
--> Affichage sans retard
Répétition très lente
Clavier "D 0"
--> Affichage avec retard important
Répétition immédiate (normale)
#####################################################################
CHAPITRE 8
==========
GESTION DE LA MEMOIRE
---------------------
*********************************************************************
FONCTION: MemBase
OBJET: Indiquer la mémoire conventionnelle disponible
SCREEN [0,13]
APPEL: MemBase
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: EmsExiste
OBJET: Indiquer si mémoire EMS disponible (avec Codes d'erreur)
SCREEN [0,13]
APPEL: EmsExiste
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: EmsVersion
OBJET: Indiquer, si disponible, la version du DRIVER EMS
SCREEN [0,13]
APPEL: EmsVersion
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: TotalPage
OBJET: Indiquer le nombre total de pages Mémoire
SCREEN [0,13]
APPEL: TotalPage
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: PageDispo
OBJET: Indiquer le nombre de pages mémoire disponibles
SCREEN [0,13]
APPEL: PageDispo
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: SegCadPage
OBJET: Indiquer le début du Segment de Cadre de Page
SCREEN [0,13]
APPEL: SegCadPage
(Cf. EXEMPLE2.BAS)
*******************************************************************
FONCTION: EmsStatus
OBJET: Indiquer si le DRIVER fonctionne normalement et si l'accès
à la mémoire paginée est possible
SCREEN [0,13]
APPEL: EmsStatus
(Cf. EXEMPLE2.BAS)
#####################################################################
CHAPITRE 9
==========
DIVERS
------
*********************************************************************
SUB: Alpha
OBJET: Police Vectorielle (Grand Format)
SCREEN [7,13]
APPEL: Alpha X%, Y%, Lettre$, CoulLettre%, CoulFond%, Taille%, -
Angle%
* X% : Valeur entre [0, 679] [SCREEN 12]
* Y% : Valeur entre [0, 479] [SCREEN 12]
* Lettre$ : Lettre à reproduire
* CoulL% : Couleur du tour de la lettre [0,15]
* CoulF% : Couleur du fond de la lettre [0,15]
* Taille% : Taille de la lettre
Valeur entre [7, ...]
* Angle% : Angle d'écriture en degrés
Valeur entre [0, 360]
Exemple : Cf. EXEMPLE6.BAS
*********************************************************************
SUB: GselectL
OBJET: Afficher une liste d'entrées dans un tableau avec
possibilité de sélections multiples
SCREEN 12
APPEL: GselectL Texte$, Y%, X%, NbreAffiEcran%, NbreEntree%, -
Choisi%, Entree$(), Marque%(), CoulMarque%, -
CoulEcrit%, CoulTexte%, CoulTour%, Ombre%, -
CoulOmbre%
* Texte$ : Insertion Texte dans Cadre supérieur du
Tableau
* Y% : Positionnement du Tableau s/Rangée
Valeur entre [0, 20]
* X% : Positionnement du Tableau s/Colonne
Valeur entre [0, 60]
* NbreAf : Nbre d'entrées affichables dans le tableau
* NbreEn : Liste d'entrées à afficher
* Choisi% : Retourne le nombre d'entrées sélectionnées
* Entree$(): Retourne les entrées sélectionnées
* Marque%(): Retourne Valeur entre [0,1]
0 : Entrée non sélectionnée
1 : Entrée sélectionnée
* CoulMar : Couleur d'écriture des entrées sélectionnées
[0,15]
* CoulEcr : Couleur d'écriture des entrées à sélection-
ner
[0,15]
* CoulText : Couleur d'écriture du texte [0,15]
* CoulTour : Couleur d'encadrement du tableau
* Ombre% : Ombrage [0,1,2,3,4]
* CoulOmbr : Couleur de l'ombrage [0,15]
Une valeur est nécessaire même si ombrage =0
Exemple : Cf. EXEMPLE7.BAS
NOTA : Pour SCREEN 0, Utilisez SELECTL
Exemple : Cf. EXEMPLE8.BAS
*********************************************************************
SUB: GselectD
OBJET: Afficher dans un tableau les fichiers d'un répertoire avec
possibilité de sélections multiples
SCREEN 12
APPEL: GselectD Texte$, Y%, X%, Cherche$, NbreAffiEcran%,-
CoulMarque%, CoulEcrit%, CoulTour%, CoulTexte%,-
Ombre%, CoulOmbre%, Choisi%, Entree$()
* Texte$ : Insertion Texte dans Cadre supérieur du
Tableau
* Y% : Positionnement du Tableau s/Rangée
Valeur entre [0, 20]
* X% : Positionnement du Tableau s/Colonne
Valeur entre [0, 60]
* NbreAf : Nbre d'entrées affichables dans le tableau
* CoulMar : Couleur d'écriture des entrées sélectionnées
[0,15]
* CoulEcr : Couleur d'écriture des entrées à sélection-
ner
[0,15]
* CoulTour : Couleur d'encadrement du tableau
* CoulText : Couleur d'écriture du texte [0,15]
* Ombre% : Ombrage [0,1,2,3,4]
* CoulOmbr : Couleur de l'ombrage [0,15]
Une valeur est nécessaire même si ombrage =0
* Choisi% : Retourne le nombre d'entrées sélectionnées
* Entree$(): Retourne les entrées sélectionnées
Exemple : Cf. EXEMPLE7.BAS
NOTA : Pour SCREEN 0, Utilisez SELECTD
Exemple : Cf. EXEMPLE8.BAS
*********************************************************************
SUB: InfoManA, InfoManB
OBJET: Tester les manettes de Jeu A ou (et) B si disponibles,
et retourner les positions écran (X & Y) avec pression
ou non des boutons 1 et 2
SCREEN [0,13]
APPEL: InfoManA AX, AY, A1, A2
InfoManB BX, BY, B1, B2
Exemple : DO
LOCATE 10, 10
InfoManA AX, AY, A1, A2
F$ = "#### #### (##) (##)
PRINT USING F$; AX; AY; A1; A2
IF AX < 10 AND A1 = -1 THEN PRINT "Bouton1"
IF AY > 10 AND A2 = -1 THEN PRINT "Bouton2"
LOOP UNTIL INKEY$ <> ""
...
*******************************************************************
FONCTION: Duree
OBJET: Calculer le temps écoulé entre un moment et un autre SCREEN [0,13]
APPEL: Duree (T1, T2)
Exemple : SCREEN 12
T1 = TIMER
FOR I = 1 TO 25000
NEXT I
T2 = TIMER
TempsEcoule = Duree (T1, T2)
END
*******************************************************************
SUB: Alarme
OBJET: Emettre un bruit sonore
SCREEN [0,13]
APPEL: Alarme
*******************************************************************
SUB: Delai
OBJET: Temporisation en secondes
SCREEN [0,13]
APPEL: Delai Retard%
Exemple : Delai 3 ' Délai d'attente de 3 secondes
Delai .5 ' Delai d'attente d'une demie seconde
*******************************************************************
SUB: Calendrier
OBJET: Afficher un calendrier
[SCREEN 0 Uniquement]
APPEL: Calendrier Mois%, Annee%, Rang%, Col%, Fond%, Cadre%, -
Coul1%, Coul2%, Ombre%
* Mois% : Valeur entre [1,12]
* Annee% : Exemple 1994
* Rang% : Rangée d'affichage
* Col% : Colone d'affichage
* Fond% : Couleur du fond
* Cadre% : Vouleur du cadre
* Coul1% : Couleur des Jours
* Coul2% : Couleur de fond des jours
* Ombre% : Ombrage
0 --> Pas d'ombrage
1 --> Ombre à gauche
2 --> Ombre à droite
#####################################################################
CHAPITRE 10
===========
AVERTISSEMENT
-------------
Le plus grand soin a été apporté à la programmation de ces fonctions
et routines et aucune fonction dite "dangereuse" n'a été employée.
Je les utilise personnellement depuis plusieurs mois sur mon
ordinateur et je n'ai jamais rencontré aucun problème.
Néanmoins, je tiens à préciser que l'emploi de la bibliothèque WBLIB
pour QuickBASIC 4.# reste à l'appréciation de chacun et dans ce cas,
à ses risques et périls.
L'utilisation de ce produit indique que vous avez pris connaissance
de l'avertissement de l'auteur, du contenu des fichiers SHAREWRE.TXT
et LICENCE.TXT et que vous en acceptez les termes.
A ce titre, aucune réclamation de quelque nature que ce soit et
aucune responsabilité ne seront acceptées.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
La documention et les différents fichiers constituant ce produit ne
doivent pas être modifiés.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
QuickBASIC et Microsoft sont des marques déposées de MICROSOFT
CORPORATION.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Copyright (C) Août.1994 : BLAKE William