home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / ktools / ktools.doc < prev    next >
Text File  |  1994-11-11  |  10KB  |  202 lines

  1.         KTOOLS est une bibliothèque d'unités pour Turbo Pascal 6.0 (ou 7.0)
  2. destinées à la programmation orientée objets. Les sujets suivants sont
  3. abordés :
  4. - fenêtrage élémentaire en mode texte
  5. - objets de dialogue
  6. - applications évènementielles
  7. - fichiers
  8. - tableaux dynamiques
  9. - etc...
  10.  
  11.     On présente souvent les bibliothèques d'unités comme utiles pour
  12. ne pas avoir à sans cesse réinventer la roue. Le programmeur amateur que
  13. je suis a justement comme passe-temps favori de réinventer la roue, c'est
  14. à dire de partir à la conquête de l'inutile pour refaire ce qui existe
  15. plus ou moins déjà, en mieux ou non. Cette bibliothèque a donc comme but
  16. de permettre de créer de petits programmes 'propres', utilisant souris,
  17. fenêtres, menus et tout ce qui fait qu'un programme est facile et agréable
  18. à utiliser.
  19.  
  20. Liste des fichiers
  21. ==================
  22.     Les fichiers présentés sont de plusieurs types :
  23.  
  24. * Unités générales ( noms commençant par U )
  25.   ----------------
  26.   1- UDRIVERS.PAS : gestion du clavier et de la souris.
  27.   2- UTEXTSCR.PAS : gestion de l'écran en mode texte.
  28.   2- UMEM.PAS     : gestion de la mémoire.
  29.   3- UIMPRIM.PAS  : gestion de l'imprimante.
  30.  
  31. * Unités définissant des objets généraux ( noms commençant par O )
  32.   --------------------------------------
  33.   1- OTABLEAU.PAS : tableaux dynamiques.
  34.   2- OFILE.PAS    : fichiers.
  35.   3- OBINFILE.PAS : fichiers avec mémoire tampon.
  36.   4- OFTEXT.PAS   : fichiers textes.
  37.   5- OFHELP.PAS   : fichiers d'aides.
  38.   6- OFWRITE.PAS  : fichiers produits par Write pour Windows.
  39.   7- OFSWAG.PAS   : fichiers des SWAG (non compressés).
  40.   8- OFZIP.PAS    : fichiers ZIP.
  41.   9- OFDIRTAB.PAS : liste des fichiers d'un répertoire.
  42.  10- OCHAMP.PAS   : champ de saisie.
  43.  11- OTEDIT.PAS   : éditeur abstrait.
  44.  
  45. * Unités définissant des objets affichables ( noms commençant par O )
  46.   -----------------------------------------
  47.   1- OGENVIEW.PAS : objet générique représentant une zone d'écran.
  48.   2- OTXTVIEW.PAS : zone d'écran en mode texte.
  49.   3- ODIALWIN.PAS : fenêtres de dialogues simples.
  50.   4- OFILEWIN.PAS : fenêtres de visualisation d'un fichier texte.
  51.   5- OTEXTWIN.PAS : fenêtres de visualisation de textes.
  52.   6- OHELPWIN.PAS : fenêtres d'aide.
  53.   7- OCRTWIN.PAS  : fenêtres simulant l'écran DOS.
  54.   8- OCALEND.PAS  : fenêtre calendrier.
  55.   9- OEDWIN.PAS   : fenêtre éditeur.
  56.  
  57. * Programmes exemples
  58.   -------------------
  59.   1- TEXTREAD.PAS : visualisateur de fichiers texte.
  60.   2- WRIREAD.PAS  : visualisateur de fichiers Write pour Windows.
  61.   3- SWAGREAD.PAS : visualisateur de fichiers SWAG.
  62.   4- ZIPVIEW.PAS  : visualisateur de fichiers ZIP.
  63.   5- KMENU.PAS    : un menu pour disque dur.
  64.   6- BATMENU.PAS  : un menu pour vos disquettes.
  65.   7- MINIEDIT.PAS : éditeur.
  66.   8- CALEND.PAS   : calendrier.
  67.  
  68.   Les programmes sont accompagnés de fichiers de données, d'aide ou de
  69. configuration.
  70.  
  71.  
  72. Documentation de l'unité UDrivers.Pas
  73. =====================================
  74.      L'unité UDrivers.Pas permet de gérer le clavier et la souris. Elle
  75. définit des évènements comme ceux de Turbo Vision et des routines de lecture
  76. de ces évènements.
  77.      Elle contient d'autre part :
  78. - quelques procédures souvent utilisées pour la manipulation des chaines de
  79. caractères
  80. - quelques procédures permettant d'éviter l'emploi de l'unité CRT de
  81. Turbo Pascal.
  82.  
  83. ■ Gestion du clavier
  84.   Elle se fait à l'aide d'une série de constantes de type Word représentant
  85. les touches et combinaisons de touches et de 2 routines :
  86. - la fonction IsKeyPressed qui indique si une touche a été actionnée
  87. - la fonction GetReadKey qui renvoie le code de la touche actionnée; ce code
  88. est le code ASCII pour les touches simples ou un des codes définis dans
  89. les constantes pour les autres touches.
  90.   Les évènements liés au clavier ont leur champ What égal à evKeyDown et
  91. leur champ KeyCode égal au code de la touche actionnée.
  92.  
  93. ■ Gestion de la souris
  94.   La variable booléenne MouseOK indique si l'initialisation de la souris
  95. s'est effectué correctement.
  96.   La variable booléenne MouseText permet de déterminer si les coordonnées
  97. utilisées sont celles du mode texte ou celles du mode graphique. Elle est
  98. initialisée à false et suppose donc à priori qu'on utilise un écran
  99. graphique.
  100.   Les variables MouseX, MouseY et MouseStatus coniennent les résultats de la
  101. dernière lecture de l'état de la souris.
  102.   Un certain nombre de procédures permet de lire l'état de la souris, de la
  103. cacher ou de l'afficher, de la déplacer, de définir une zone d'exclusion,
  104. de définir la forme du curseur en mode graphique, etc...
  105.   Les évènements liés à la souris ont leur champ What égal à :
  106. evMouseLDown : bouton gauche appuyé
  107. evMouseLUp   : bouton gauche relaché
  108. evMouseRDown : bouton droit appuyé
  109. evMouseRUp   : bouton droit relaché
  110. evMouseMove  : mouvement de la souris
  111. evMouseAuto  : bouton appuyé de façon prolongée
  112.   Le champ Where indique la position de la souris; les champs booléens
  113. LButton et RButton indiquent l'état des boutons gauches et droits.
  114.  
  115. Documentation de l'unité OGenView.Pas
  116. =====================================
  117.     L'unité OGenView.Pas définit un objet générique de type TGenView qui
  118. représente une zone d'écran rectangulaire indépendamment du mode graphique
  119. utilisé.
  120.     Les objets TGenView font partie d'une 'famille'. Ils ont un parent,
  121. des frères et des enfants.
  122.     Le parent est unique, représenté par le champ Owner qui est un pointeur
  123. sur un autre objet de type TGenView.
  124.     Les frères sont aussi des pointeurs sur des objets de type TGenView, ils
  125. forment une liste doublement chainées. Ainsi, chaque frère possède un champ
  126. Prec et un champ Suiv.
  127.     Les enfants sont représentés par le champ Child qui est un pointeur
  128. sur un objet de type TGenView qui sera le début de la liste doublement
  129. chainée des enfants.
  130.     Un certain nombre de méthodes des objets de type TGenView permet de gérer
  131. cette structure de famille.
  132.     La méthode Insert permet d'ajouter un enfant, la méthode Decroche permet
  133. de quitter le parent, les méthodes Suivant et Precedent renvoient des
  134. pointeurs sur des frères.
  135.  
  136.     Les objets de type TGenView sont destinés à être affichés à l'écran. Les
  137. méthodes virtuelles Draw, BackGround et Redraw sont prévues à cet effet.
  138. La méthode BackGround dessine le fond, la méthode Redraw dessine les enfants.
  139. La méthode Draw appelle les deux méthodes précédentes.
  140.  
  141.     Les objets de type TGenView réagissent aux évènements définis dans l'unité
  142. UDrivers.Pas. Ils disposent des méthodes virtuelles GetEvent et HandleEvent.
  143. - La méthode GetEvent lit un évènement; elle utilise en fait la méthode
  144. GetEvent du parent.
  145. - La méthode HandleEvent définit la réaction à un évènement; elle appelle
  146. aussi les méthodes HandleEvent des enfants.
  147. La méthode Exec permet d'entrer dans une boucle qui consiste à lire un
  148. évènement, puis à réagir en conséquence et ainsi de suite. Le champ ExitCode
  149. permet de sortir de cette boucle lorsqu'il est différent de 0.
  150.  
  151.     Une famille d'objets de type TGenView doit disposer d'un parent : il
  152. s'agit d'un objet dérivé du type TGenView qui sera de type TGenApp et qui
  153. représentera l'application. Cette objet devra initialiser le mode vidéo par
  154. sa méthode InitVideo, puis initialiser la souris. Sa méthode Exec correspondra
  155. à l'exécution du programme. Son destructeur permettra de quitter proprement
  156. le programme.
  157.  
  158.     Les objets de type TGenView et TGenApp sont trop abstraits pour être
  159. utilisés directement, mais ils sont un point de départ pour écrire des
  160. applications en mode texte ou en mode graphique. L'unité OTxtView.Pas définit
  161. des descendants pour le mode texte.
  162.  
  163. Documentation de l'unité OTxtView.Pas
  164. =====================================
  165.     L'unité OTxtView.Pas définit les objets de type TTextView et TTextApp
  166. dérivés des objets TGenView et TGenApp de l'unité OGenView. Ces objets
  167. sont destinés à fonctionner en mode Texte.
  168.     Les procédures d'affichage et de gestion du curseur se trouvent dans
  169. l'unité UTextScr.Pas.
  170.     Les applications écrites comme dérivées de TTextApp contiennent une
  171. barre titre, une horloge et une ligne de statut.
  172.     Les objets de type TWindow sont des descendants du type TTextView qui
  173. ont un cadre et un titre. Ces objets se ferment lorsqu'on appuie sur Echap
  174. ou lorsqu'on appuie sur le bouton droit de la souris.
  175.     D'autres objets, dérivés du type TWindow, représentent des boites de
  176. message, des boites de saisie, des menus locaux, des boites de sélection de
  177. fichiers. Ils sont définis dans l'unité ODialWin.Pas.
  178.  
  179.  
  180.  
  181. SHAREWARE
  182. =========
  183.     Toutes les unités présentées ici ne sont pas sorties du néant de mon
  184. esprit enfumé par les gauloises. J'ai beaucoup appris en regardant ce que
  185. voulaient bien montrer ceux qui savaient, en particulier dans la revue
  186. Réponse Micro (aujourd'hui défunte), dans les SWAG, cette mine inépuisable
  187. de renseignements, et dans quelques disquettes du DPTool Club. J'ai ensuite
  188. sélectionné, complété, transformé, déformé, reformé le tout en y ajoutant
  189. mes petites idées.
  190.     J'ai dit au début de ce texte que tout cela avait été fait pour le
  191. plaisir de la conquête de l'inutile. C'était exact. Mais si je mets le tout
  192. à la disposition de tout un chacun, c'est parce que je pense que d'autres
  193. conquérants de l'inutile pourront trouver dans cette bibliothèque de quoi
  194. leur inspirer quelques idées. Si c'est le cas, un petit signe ( par exemple
  195. une carte postale pour ma fille avec un beau timbre pour mon fils ) ne
  196. manquera pas de me faire plaisir.
  197.  
  198. Kostrzewa Bruno
  199. 54 rue des Chardonnerets
  200. 59350 SAINT ANDRE
  201. Tél 20 40 60 82
  202.