home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 19
/
CD_ASCQ_19_010295.iso
/
dos
/
prg
/
pas
/
ktools
/
ktools.doc
< prev
next >
Wrap
Text File
|
1994-11-11
|
10KB
|
202 lines
KTOOLS est une bibliothèque d'unités pour Turbo Pascal 6.0 (ou 7.0)
destinées à la programmation orientée objets. Les sujets suivants sont
abordés :
- fenêtrage élémentaire en mode texte
- objets de dialogue
- applications évènementielles
- fichiers
- tableaux dynamiques
- etc...
On présente souvent les bibliothèques d'unités comme utiles pour
ne pas avoir à sans cesse réinventer la roue. Le programmeur amateur que
je suis a justement comme passe-temps favori de réinventer la roue, c'est
à dire de partir à la conquête de l'inutile pour refaire ce qui existe
plus ou moins déjà, en mieux ou non. Cette bibliothèque a donc comme but
de permettre de créer de petits programmes 'propres', utilisant souris,
fenêtres, menus et tout ce qui fait qu'un programme est facile et agréable
à utiliser.
Liste des fichiers
==================
Les fichiers présentés sont de plusieurs types :
* Unités générales ( noms commençant par U )
----------------
1- UDRIVERS.PAS : gestion du clavier et de la souris.
2- UTEXTSCR.PAS : gestion de l'écran en mode texte.
2- UMEM.PAS : gestion de la mémoire.
3- UIMPRIM.PAS : gestion de l'imprimante.
* Unités définissant des objets généraux ( noms commençant par O )
--------------------------------------
1- OTABLEAU.PAS : tableaux dynamiques.
2- OFILE.PAS : fichiers.
3- OBINFILE.PAS : fichiers avec mémoire tampon.
4- OFTEXT.PAS : fichiers textes.
5- OFHELP.PAS : fichiers d'aides.
6- OFWRITE.PAS : fichiers produits par Write pour Windows.
7- OFSWAG.PAS : fichiers des SWAG (non compressés).
8- OFZIP.PAS : fichiers ZIP.
9- OFDIRTAB.PAS : liste des fichiers d'un répertoire.
10- OCHAMP.PAS : champ de saisie.
11- OTEDIT.PAS : éditeur abstrait.
* Unités définissant des objets affichables ( noms commençant par O )
-----------------------------------------
1- OGENVIEW.PAS : objet générique représentant une zone d'écran.
2- OTXTVIEW.PAS : zone d'écran en mode texte.
3- ODIALWIN.PAS : fenêtres de dialogues simples.
4- OFILEWIN.PAS : fenêtres de visualisation d'un fichier texte.
5- OTEXTWIN.PAS : fenêtres de visualisation de textes.
6- OHELPWIN.PAS : fenêtres d'aide.
7- OCRTWIN.PAS : fenêtres simulant l'écran DOS.
8- OCALEND.PAS : fenêtre calendrier.
9- OEDWIN.PAS : fenêtre éditeur.
* Programmes exemples
-------------------
1- TEXTREAD.PAS : visualisateur de fichiers texte.
2- WRIREAD.PAS : visualisateur de fichiers Write pour Windows.
3- SWAGREAD.PAS : visualisateur de fichiers SWAG.
4- ZIPVIEW.PAS : visualisateur de fichiers ZIP.
5- KMENU.PAS : un menu pour disque dur.
6- BATMENU.PAS : un menu pour vos disquettes.
7- MINIEDIT.PAS : éditeur.
8- CALEND.PAS : calendrier.
Les programmes sont accompagnés de fichiers de données, d'aide ou de
configuration.
Documentation de l'unité UDrivers.Pas
=====================================
L'unité UDrivers.Pas permet de gérer le clavier et la souris. Elle
définit des évènements comme ceux de Turbo Vision et des routines de lecture
de ces évènements.
Elle contient d'autre part :
- quelques procédures souvent utilisées pour la manipulation des chaines de
caractères
- quelques procédures permettant d'éviter l'emploi de l'unité CRT de
Turbo Pascal.
■ Gestion du clavier
Elle se fait à l'aide d'une série de constantes de type Word représentant
les touches et combinaisons de touches et de 2 routines :
- la fonction IsKeyPressed qui indique si une touche a été actionnée
- la fonction GetReadKey qui renvoie le code de la touche actionnée; ce code
est le code ASCII pour les touches simples ou un des codes définis dans
les constantes pour les autres touches.
Les évènements liés au clavier ont leur champ What égal à evKeyDown et
leur champ KeyCode égal au code de la touche actionnée.
■ Gestion de la souris
La variable booléenne MouseOK indique si l'initialisation de la souris
s'est effectué correctement.
La variable booléenne MouseText permet de déterminer si les coordonnées
utilisées sont celles du mode texte ou celles du mode graphique. Elle est
initialisée à false et suppose donc à priori qu'on utilise un écran
graphique.
Les variables MouseX, MouseY et MouseStatus coniennent les résultats de la
dernière lecture de l'état de la souris.
Un certain nombre de procédures permet de lire l'état de la souris, de la
cacher ou de l'afficher, de la déplacer, de définir une zone d'exclusion,
de définir la forme du curseur en mode graphique, etc...
Les évènements liés à la souris ont leur champ What égal à :
evMouseLDown : bouton gauche appuyé
evMouseLUp : bouton gauche relaché
evMouseRDown : bouton droit appuyé
evMouseRUp : bouton droit relaché
evMouseMove : mouvement de la souris
evMouseAuto : bouton appuyé de façon prolongée
Le champ Where indique la position de la souris; les champs booléens
LButton et RButton indiquent l'état des boutons gauches et droits.
Documentation de l'unité OGenView.Pas
=====================================
L'unité OGenView.Pas définit un objet générique de type TGenView qui
représente une zone d'écran rectangulaire indépendamment du mode graphique
utilisé.
Les objets TGenView font partie d'une 'famille'. Ils ont un parent,
des frères et des enfants.
Le parent est unique, représenté par le champ Owner qui est un pointeur
sur un autre objet de type TGenView.
Les frères sont aussi des pointeurs sur des objets de type TGenView, ils
forment une liste doublement chainées. Ainsi, chaque frère possède un champ
Prec et un champ Suiv.
Les enfants sont représentés par le champ Child qui est un pointeur
sur un objet de type TGenView qui sera le début de la liste doublement
chainée des enfants.
Un certain nombre de méthodes des objets de type TGenView permet de gérer
cette structure de famille.
La méthode Insert permet d'ajouter un enfant, la méthode Decroche permet
de quitter le parent, les méthodes Suivant et Precedent renvoient des
pointeurs sur des frères.
Les objets de type TGenView sont destinés à être affichés à l'écran. Les
méthodes virtuelles Draw, BackGround et Redraw sont prévues à cet effet.
La méthode BackGround dessine le fond, la méthode Redraw dessine les enfants.
La méthode Draw appelle les deux méthodes précédentes.
Les objets de type TGenView réagissent aux évènements définis dans l'unité
UDrivers.Pas. Ils disposent des méthodes virtuelles GetEvent et HandleEvent.
- La méthode GetEvent lit un évènement; elle utilise en fait la méthode
GetEvent du parent.
- La méthode HandleEvent définit la réaction à un évènement; elle appelle
aussi les méthodes HandleEvent des enfants.
La méthode Exec permet d'entrer dans une boucle qui consiste à lire un
évènement, puis à réagir en conséquence et ainsi de suite. Le champ ExitCode
permet de sortir de cette boucle lorsqu'il est différent de 0.
Une famille d'objets de type TGenView doit disposer d'un parent : il
s'agit d'un objet dérivé du type TGenView qui sera de type TGenApp et qui
représentera l'application. Cette objet devra initialiser le mode vidéo par
sa méthode InitVideo, puis initialiser la souris. Sa méthode Exec correspondra
à l'exécution du programme. Son destructeur permettra de quitter proprement
le programme.
Les objets de type TGenView et TGenApp sont trop abstraits pour être
utilisés directement, mais ils sont un point de départ pour écrire des
applications en mode texte ou en mode graphique. L'unité OTxtView.Pas définit
des descendants pour le mode texte.
Documentation de l'unité OTxtView.Pas
=====================================
L'unité OTxtView.Pas définit les objets de type TTextView et TTextApp
dérivés des objets TGenView et TGenApp de l'unité OGenView. Ces objets
sont destinés à fonctionner en mode Texte.
Les procédures d'affichage et de gestion du curseur se trouvent dans
l'unité UTextScr.Pas.
Les applications écrites comme dérivées de TTextApp contiennent une
barre titre, une horloge et une ligne de statut.
Les objets de type TWindow sont des descendants du type TTextView qui
ont un cadre et un titre. Ces objets se ferment lorsqu'on appuie sur Echap
ou lorsqu'on appuie sur le bouton droit de la souris.
D'autres objets, dérivés du type TWindow, représentent des boites de
message, des boites de saisie, des menus locaux, des boites de sélection de
fichiers. Ils sont définis dans l'unité ODialWin.Pas.
SHAREWARE
=========
Toutes les unités présentées ici ne sont pas sorties du néant de mon
esprit enfumé par les gauloises. J'ai beaucoup appris en regardant ce que
voulaient bien montrer ceux qui savaient, en particulier dans la revue
Réponse Micro (aujourd'hui défunte), dans les SWAG, cette mine inépuisable
de renseignements, et dans quelques disquettes du DPTool Club. J'ai ensuite
sélectionné, complété, transformé, déformé, reformé le tout en y ajoutant
mes petites idées.
J'ai dit au début de ce texte que tout cela avait été fait pour le
plaisir de la conquête de l'inutile. C'était exact. Mais si je mets le tout
à la disposition de tout un chacun, c'est parce que je pense que d'autres
conquérants de l'inutile pourront trouver dans cette bibliothèque de quoi
leur inspirer quelques idées. Si c'est le cas, un petit signe ( par exemple
une carte postale pour ma fille avec un beau timbre pour mon fils ) ne
manquera pas de me faire plaisir.
Kostrzewa Bruno
54 rue des Chardonnerets
59350 SAINT ANDRE
Tél 20 40 60 82