home *** CD-ROM | disk | FTP | other *** search
/ Hacks & Cracks / Hacks_and_Cracks.iso / vol1 / pc_gxcrk.zip / GRAFICA.DOC < prev    next >
Text File  |  1996-08-04  |  45KB  |  1,499 lines

  1.  
  2.             ▄█████▄ ██████▄ ▄█████▄ ▄██████ ▐██▌ ▄█████▄ ▄█████▄  (tm)
  3.             ██  ▄▄▄ ██   ██ ██▄▄▄██ ██▄▄▄▄   ██  ██      ██▄▄▄██
  4.             ██   ██ ██████  ██▀▀▀██ ██▀▀▀▀   ██  ██      ██▀▀▀██
  5.             ▀█████▀ ██  ▀██ ██   ██ ██      ▐██▌ ▀█████▀ ██   ██
  6.  
  7.                                    Ver. 2.0
  8.  
  9.  
  10. 1.1 General Description
  11. -----------------------
  12.  
  13.    Grafica(tm) is a powerfull library in Turbo Pascal. With this library you
  14. can made wonderfull graphic interfaces, like Win95, OS/2, etc. You have many
  15. Windows types, many butons types and it is very flexible.
  16.    Grafica(tm) is made by Gabriel Ciobotaru, Alex Sovu and Adrian Suditu. You
  17. can reach us to:
  18.  
  19.    Phone: +40-1-629.54.27 (voice)
  20.      FAX: +40-1-686.36.90
  21.  FidoNet: 2:530/106
  22.   E-mail: grafica@ysnet.pcnet.ro
  23.  
  24.    If you have questions or problems, please call us or leave us a message.
  25.  
  26.    In the next chapters you will find more technical details about Grafica(tm)
  27. and details about how to use.
  28.  
  29.    You must read this entire file for understanding how Grafica works. You
  30. will find some hot tips about programming with Grafica.
  31.  
  32.    Please excuse the english, my national language is not english, and I am
  33. not a writter, I am a programmer.
  34.  
  35.  
  36.  
  37. 1.2 Order informations
  38. ----------------------
  39.  
  40.    This version of Grafica(tm) is shareware. If you like this library, please
  41. register. It is the only way to support our next releases and to improve
  42. others new features.
  43.  
  44.    If you register you will receive:
  45.  
  46.      - a FULL Grafica(tm) Unit, without the shareware screen.
  47.      - you will receive some more new features.
  48.      - you will have access to a hot-line or E-mail List for any questions,
  49.        problems or details about Grafica(tm) and programming in Grafica(tm).
  50.      - you will receive ON FREE the next minor update versions, and you will
  51.        have a small update price for a major version.
  52.      - you will receive the SOURCE CODE from the 2DA application.
  53.      - you will receive some SOURCE CODES from Grafica(tm).
  54.      - more new fonts for UTIL256 unit to use with setfont procedure.
  55.      - FULL documentation at MOUSE, STRINGOP and UTIL256 units with some 
  56.        sources.
  57.      - with your support, we will develop more new features and you will
  58.        benefite for this.
  59.      - and more new and cool stuff.
  60.  
  61.    To register, please see the file register.frm. Also agents and distributors
  62. in other countries are very welcomed. Please contact us for this (please see
  63. the beginning of this document).
  64.  
  65.    If you want to receive the FULL source codes from ALL Grafica units, please
  66. ask for the price.
  67.  
  68.  
  69.                          2. GRAFICA TECHNICAL DETAILS
  70.                          ----------------------------
  71.  
  72.  
  73. 2.1 Mode of use and initialisation.
  74. -----------------------------------
  75.  
  76. First you must use this TPU libraries. The base units are:
  77.  
  78. stringop,grafica,g_applic,util256,mouse;
  79.  
  80. This you can add graph, dos, crt or any TPU.
  81.  
  82.   The Grafica unit is an OOP application. The name of the main object
  83. is g_application. For a small applicaton you must use this source for any
  84. Grafica application:
  85.  
  86. === Begin of source code ===
  87.  
  88. uses stringop,grafica,g_applic,util256,mouse
  89.  
  90. type adapplic=object(g_application)
  91.                     {here you can insert virtual procedures,
  92.                       like backgound or any other stuff}
  93.               end;
  94.  
  95. var w            : adapplic      ;
  96.  
  97. begin
  98.   w.init; {init of grafica}
  99.   {your programm}
  100.   w.done; {when your program is finnished]
  101. end.
  102.  
  103. === End of source code ===
  104.  
  105.  
  106.  
  107. 2.2 Grafica's procedures and functions.
  108. ---------------------------------------
  109.  
  110.   NOTE! For more details and examples, please see the source code of the
  111. application TEST.EXE (TEST.PAS). Here you have almost all the procedures
  112. and functions from Grafica, and the best details about using a procedure
  113. or function is a example source code.
  114.  
  115.  
  116. 2.2.3 constructor init;
  117. -----------------------
  118.  
  119.    This initialise the variabiles and check for mouse, Sound Blaster
  120. (if enabled), memory, etc. It initilise the graph mode, load the background
  121. (if is defined), play the startup sound (if sound is enabled), and finnaly
  122. show the mouse cursor.
  123.  
  124.  
  125. 2.2.4 procedure initgrafic;
  126. ---------------------------
  127.  
  128.    Normally, this is for use internal of Grafica, but you can use this
  129. procedure for your own Graph initialisation.
  130.    This procedure initialize the 640x480x16 graph mode and by default it
  131. include in EXE the graphic driver and the font characters.
  132.    Grafica use its own font characters, something like default, but with
  133. some Turbo Pascal fixed bugs. Also this characters are a bit different from
  134. Pascal's Default font.
  135.    The name of Graph driver must be "egavgaproc" and the fonts name must be
  136. "littproc" and "os2f8x5proc".
  137.  
  138.  
  139. 2.2.5 procedure ini_paleta; virtual;
  140. ------------------------------------
  141.  
  142.   This procedure inits the Grafica Palette. This is a virtual procedure, so
  143. you can use your own defined colors.
  144.  
  145.  
  146. 2.2.6 procedure initpaleta;
  147. ---------------------------
  148.  
  149.    This procedure sets the default Grafica palette (gray).
  150.  
  151.  
  152. 2.2.7 procedure incl;
  153. ---------------------
  154.  
  155.    This procedure includes the Graph driver (EGAVGA) the the fonts.
  156. Please see chapter 2.2.4.
  157.  
  158.  
  159. 2.2.8 procedure background; virtual;
  160. ------------------------------------
  161.  
  162.    This procedure sets the background. By default, there is no background.
  163. The background color is black.
  164.    You can define your own background procedures, with images or an color.
  165. (note that this procedure is virtual).
  166.  
  167.  
  168. 2.2.9 procedure playsound(st:string);
  169. -------------------------------------
  170.  
  171.    This procedure plays a sound file (if sound is enabled). The variable
  172. st is the name of the file. Thie sound format of this file is RPD. In this
  173. packet it is included a conversion program from WAV/VOC to RPD.
  174.  
  175.   Example: playsound('c:\util\sounds\cool.rpd');
  176.  
  177.  
  178.  
  179. 2.2.10 procedure refwins(x,y:integer);
  180. --------------------------------------
  181.  
  182.    This procedure refresh the open windows, and the last one is moved
  183. to the x and y coordonates. You can use the variable "stay" if you wand
  184. only a refresh and not to move the windows to a desired location
  185. (Ex: "refwins(stay,stay").
  186.    Or you can move at a location only one axis. The other position will
  187. stay in the same place (Ex: "refwins(152,stay)").
  188.  
  189. 2.2.11 procedure setbuton(nr:word;k:boolean);
  190. ---------------------------------------------
  191.  
  192.    Set active or inactive state of a button.
  193.  
  194.    nr means the number of the button from the current object.
  195.    if k is true, the button is active, else it is inactive.
  196.  
  197.  
  198. 2.2.12 procedure buton(x1,y1,x2,y2:integer; tip:word; s:string;
  199.                          sc,enable:boolean);
  200. ---------------------------------------------------------------
  201.  
  202.   WARNING!!! This procedure will only DRAW a button and will not be
  203. stored in the pointers link. This procedure is designed for use internal
  204. of grafica, but for a more flexibility, you can use this, for example
  205. in a non movable windows. Use procedure "newbut" for putting a button in an
  206. object (ex: in a window).
  207.  
  208. x1,y1 - means the left up corner of the button.
  209. x2,y2 - means the right down corner of the button.
  210. tip   - means the type of the button (you have 11 different types of buttons
  211.         from 0 to 10).
  212. s     - the text string that should be printed on the button.
  213. sc    - if is false, the space of the button will be out the coordonates.
  214. enable- if is true, the button is enable (you can push-it), else is disabled.
  215.  
  216.  
  217.  
  218. 2.2.13 procedure linie(x1,y1,x2,y2:integer; col,tip:byte; stare: boolean);
  219. --------------------------------------------------------------------------
  220.  
  221.    This procedure DRAW a line (like 3D). WARNING!!! This only draw a line
  222. and it is used internal of grafica.
  223.  
  224. x1,y1,x2,y2 - are the coordonates of the line.
  225.         col - means the color number of the line.
  226.         tip - means the type of the line:
  227.                    1 for simple line
  228.                    2 for a complex and nice line (any directions).
  229.       stare - is only for the type 2 of the line. This means that the line
  230.               must be IN or OUT of the surface.
  231.  
  232.  
  233. 2.2.14 procedure input_proc(x1,y1,x2,y2: integer; var st: string);
  234. ------------------------------------------------------------------
  235.  
  236.    This is the procedure for the input process. This will only input a string
  237. from the keyboard. If you want to add an input field into a window or object,
  238. use procedure newinput. This is supposed to be used internal of grafica.
  239.  
  240. x1,y1,x2,y2 - the coordonates of the input box.
  241.          st - the string that should be printed before the input process
  242.               begins. Also in this variable, the procedure will return the
  243.               input string entered by the user from the keyboard.
  244.  
  245.  
  246. 2.2.15 procedure input_draw(x1,y1,x2,y2: integer; st:string);
  247. -------------------------------------------------------------
  248.  
  249.    This procedure will refresh the input process with the typed string. It is
  250. designed for internal of Grafica, but you can use this procedure for your own
  251. advanced application.
  252.    The parameters are the same like input_proc procedure. (see 2.2.14).
  253.  
  254.  
  255.  
  256. 2.2.16 function  get_input(nr: byte): string;
  257. ---------------------------------------------
  258.  
  259.    This function must be used after newinput procedure. This will return
  260. the string entered by the user in a input field from an object (windows, etc)
  261.  
  262.   nr - the number of the input field (in the order of newinput procedure,
  263.        from the currend object/window).
  264.  
  265.  
  266. 2.2.17 procedure fill(x1,y1,x2,y2: integer; col,tip:byte);
  267. ----------------------------------------------------------
  268.  
  269.    This procedure generates a fill (ONLY WILL DRAW, but will not be stored
  270. into the object or window link).
  271.  
  272. x1,y1,x2,y2 - the coordonates of the fill box.
  273.         col - the fill color.
  274.         tip - the pattern.
  275.  
  276.  
  277. 2.2.18 procedure procent(x1,y1,x2,y2:integer;pr,color:byte);
  278. ------------------------------------------------------------
  279.  
  280.    This procedure will DRAW (WARNING !!! Only draw). a procentage field.
  281.  
  282. x1,y1,x2,y2 - the coordonates for the procentage bar.
  283.       color - the color of the bar.
  284.          pr - the procents that must be show (from 0 to 100).
  285.  
  286.  
  287. 2.2.19 procedure sterge_procent;
  288. --------------------------------
  289.  
  290.    This procedure will erase the procent bar.
  291.  
  292.  
  293. 2.2.20 procedure check(x1,y1:integer;text:string;tp:byte;ok:boolean);
  294. ---------------------------------------------------------------------
  295.  
  296.   This procedure will DRAW (WARNING !!! Only draw) a check button. Use
  297. newcheck for linking a check button into a object or a window.
  298.  
  299. x1,y1 - the coordonates.
  300. text  - the text string that must be printed after the check button.
  301.         The hot key will be between two ~.
  302. tp    - the type of the check button. (from 1 to 3).
  303.  
  304. ok    - if is true, the check button will be set, else will not be set.
  305.  
  306.  
  307.  
  308. 2.2.21 procedure tex(x,y:integer;text:string;enable:boolean);
  309. -------------------------------------------------------------
  310.  
  311.    This procedure will print a text string.
  312.  
  313. x,y    - the coordonates.
  314. text   - the text string.
  315. enable - the writting mode of the text.
  316.  
  317.  
  318. 2.2.22 procedure bitmap(x,y:integer;p:pointer);
  319. -----------------------------------------------
  320.  
  321.    This procedure will show a image at x,y coordonates.
  322. p is the pointer to the image.
  323.  
  324.  
  325. 2.2.23 procedure afisbmp(x,y:integer);
  326. --------------------------------------
  327.  
  328.    This procedure will show the image stored with the procedure newbmp.
  329. This should be used only internal of grafica, but we make a public procedure
  330. for advanced applications.
  331.  
  332.  
  333. 2.2.24 procedure window(x1,y1,x2,y2:integer;nume:string);
  334. ---------------------------------------------------------
  335.  
  336.   This procedure will DRAW (WARNING !!! Only draw) a window.
  337.  
  338. x1,y1,x2,y2 - the coordonates.
  339. nume        - the window header text.
  340.  
  341.  
  342. 2.2.25 procedure nonnume(x1,y1,x2,y2:integer);
  343. ----------------------------------------------
  344.  
  345.    This procedure will DRAW a window without the header (nonmovable window).
  346.  
  347.  
  348. 2.2.26 procedure btin(x1,y1,x2,y2:integer;s:string;c1,c2:byte; tip:boolean);
  349. ----------------------------------------------------------------------------
  350.  
  351.    This procedure will DRAW a button with a text.
  352.  
  353. x1,y1,y2,y2 - the coordonates
  354. s           - the text
  355. c1,c2       - the colors of the text and the hot chars.
  356. tip         - the type of the button. (In or Out).
  357.  
  358.  
  359. 2.2.27 procedure btin1(x1,y1,x2,y2:integer;s:string;c1,c2:byte; tip:boolean);
  360. -----------------------------------------------------------------------------
  361.  
  362.    The same like btin procedure, but a different style. (see 2.2.26).
  363.  
  364.  
  365. 2.2.28 procedure btin2(x1,y1,x2,y2,d1x,d1y:integer;s:string;c1,c2,dp:byte;
  366.                          tip,enable: boolean);
  367. --------------------------------------------------------------------------
  368.  
  369.    DRAW a button, but this is a more flexible procedure.
  370.  
  371. x1,y1,x2,y2 - the coordonates.
  372. d1x,d1y     - the deep show.
  373. s           - the string that should be printed on the button.
  374. c1,c2       - the colors (see 2.2.26)
  375. dp          - the push deep of the button
  376. tip         - if the button will be in or out.
  377. enable      - if the button will be enable.
  378.  
  379.  
  380. 2.2.29 procedure chenar(x1,y1,x2,y2:integer);
  381. ---------------------------------------------
  382.  
  383.    This procedure will draw a box.
  384.  
  385.  
  386. 2.2.30 procedure chenar1(x1,y1,x2,y2,col:integer; stare: boolean);
  387. ------------------------------------------------------------------
  388.  
  389.    This procedure will draw a box with a specified color like one arround
  390. a button.
  391.  
  392. x1,y1,x2,y2 - the coordonates.
  393. col         - the color.
  394. stare       - if can be pushed or not.
  395.  
  396.  
  397. 2.2.31 procedure chenar2(x1,y1,x2,y2:integer; stare: boolean);
  398. --------------------------------------------------------------
  399.  
  400.   The same like procedure chenar1, but without color set. (see 2.2.30).
  401.  
  402.  
  403. 2.2.32 procedure chenar3(x1,y1,x2,y2:integer; dp:word);
  404. -------------------------------------------------------
  405.  
  406.    This procedure will draw a box like one arround the windows.
  407.  
  408. x1,y1,x2,y2 - the coordonates.
  409. dp          - the deep of the box.
  410.  
  411.  
  412. 2.2.33 procedure chenar4(x,y,r:integer; bo: boolean);
  413. -----------------------------------------------------
  414.  
  415.    This will draw a round button.
  416.  
  417. x,y - the coordonates
  418. r   - the radius
  419. bo  - if will be checked.
  420.  
  421.  
  422. 2.2.34 procedure writetext(x1,y1:integer;text:string;sc:boolean;cc:byte);
  423. -------------------------------------------------------------------------
  424.  
  425.   This procedure will write a text string.
  426.  
  427. x1,y1 - the coordonates
  428. text  - the text string.
  429. sc    - if the text will be printed in or out.
  430. cc    - the color of the text.
  431.  
  432.  
  433. 2.2.35 procedure interp(s: string; var c: char);
  434. ------------------------------------------------
  435.  
  436.    This procedure is designed for use internal of Grafica, but you can use
  437. this for your own application. This procedure will return in variable "c"
  438. the hot char from a string. Ex: if the string is 'You ~a~re the best',
  439. the hot char will be 'a', the first char between ~.
  440.  
  441. s - the string.
  442. c - the char returned.
  443.  
  444.  
  445. 2.2.36 procedure refwin(x,y:integer);
  446. -------------------------------------
  447.  
  448.    This procedure will refresh ALL opened windows (windows made with the
  449. procedure newwin.
  450.  
  451. x,y - the coordonates where should be placed the last window.
  452.  
  453.  
  454. 2.2.39 procedure newwin(x1,y1,x2,y2:integer;nume:string;antet:boolean);
  455. -----------------------------------------------------------------------
  456.  
  457.    This procedure ADD a new window into the desktop. This will be aded to
  458. the pointer link of the windows. This Window will be stored, so you can
  459. move-it (with the mouse), cleaned or you can add more object into this
  460. window (buttons, lines, fills, input fields, texts, check buttons, etc..).
  461.  
  462. x1,y1,x2,y2 - the coordonates of the window.
  463. nume        - the text that will be prinded on the window header.
  464. antet       - if the window will have a header (this means that will be
  465.               (or not) a movable window).
  466.  
  467.  
  468. 2.2.40 procedure newbut(x1,y1,x2,y2:integer;nume:string; tip:word;
  469.                          behav:boolean; hotchar:strs);
  470. ------------------------------------------------------------------
  471.  
  472.   This procedure will ADD a button into the current Window. This will draw
  473. a button, and will store into a pointer link all the informations about
  474. this button.
  475.  
  476. x1,y1,x2,y2 - the coordonates of the button.
  477. nume        - the text that will be printed on the button.
  478. tip         - the type of the button. You have 11 types of buttons (from 0
  479.               to 10).
  480. behav       - how the buttons will push.
  481. hotchar     - This is the seccond hot char. The first hot char must be
  482.               in the text printed on the button. This first hot char will be
  483.               between the ~ sign. Ex. if in nume variable you will place
  484.               "Push to ~Q~uit", the Q char will be printed with a hot color
  485.               (red) and when the user will press Q, the button will push.
  486.               The seccond hotchar you can set #13 (the ENTER key), and the
  487.               user if will push Q (or q) or ENTER key the button will push.
  488.  
  489.  
  490. 2.2.41 procedure newline(x1,y1,x2,y2:integer;col,tip:byte; prs:boolean);
  491. ------------------------------------------------------------------------
  492.  
  493.    This procedure will add and draw a new line into the current Window. All
  494. the informations will be stored.
  495.  
  496. x1,y1,x2,y2 - the coordonates.
  497. col         - the line color.
  498. tip         - the type of the line (1 or 2)
  499. prs         - it is only for the type 2, for in or out. For more details,
  500.               please see linie procedure at 2.2.13.
  501.  
  502.  
  503. 2.2.42 procedure newfill(x1,y1,x2,y2: integer; col,tip:byte);
  504. -------------------------------------------------------------
  505.  
  506.    This procedure will ADD and DRAW a new fill into the current window.
  507. All the informations will be stored.
  508.  
  509. x1,y1,x2,y2 - the coordonates.
  510. col         - the fill color.
  511. tip         - the fill pattern.
  512.  
  513.  
  514. 2.2.43 procedure newinput(x1,y1,x2,y2: integer; stri: string; hot:char);
  515. ------------------------------------------------------------------------
  516.  
  517.    This procedure will ADD and DRAW a input field into the current window.
  518. All the informations will be stored.
  519.  
  520. x1,y1,x2,y2 - the coordonates.
  521. stri        - the string that will be already printed in the input field.
  522. hot         - the hot char for the input field. When this char is pressed,
  523.               the input process will be activated. Or else, you can go with
  524.               the mouse pointer on input box.
  525.  
  526.  
  527. 2.2.44 procedure newtext(x,y:integer;text:string);
  528. --------------------------------------------------
  529.  
  530.    This procedure will ADD and print a text into the current window.
  531. All the informations will be stored.
  532.  
  533. x,y  - the coordonates.
  534. text - the text string.
  535.  
  536.  
  537. 2.2.45 procedure newbmap(x,y:integer;p:pointer;m:word);
  538. -------------------------------------------------------
  539.  
  540.    This procedure will add a new bitmap into the current window. All
  541. informations will be stored.
  542.  
  543. x,y - the coordonates.
  544. p   - the pointer to the image.
  545. m   - the size of the image.
  546.  
  547.  
  548. 2.2.46 procedure newbmp(x1,y1,x2,y2:integer);
  549. ---------------------------------------------
  550.  
  551.    This procedure will GET and will ADD the image into the current window.
  552. All informations will be stored.
  553.  
  554. x1,y1,x2,y2 - the coordonates where will get the image.
  555.  
  556.  
  557. 2.2.47 procedure newchenar(x1,y1,x2,y2: integer; col,tip:byte;stare:boolean);
  558. -----------------------------------------------------------------------------
  559.  
  560.    This procedure will add and draw a new box into the current window. All
  561. informations will be stored.
  562.  
  563. x1,y1,x2,y2 - the coordonates.
  564. col         - the color.
  565. tip         - the type of the box (1 to 3)
  566.                  1 for simple box
  567.                  2 for complex box
  568.                  3 the box will be printed with the color specified in col
  569.                    variable.
  570. stare       - only for 1 and 2 box type. Means that the box will be in or out
  571.  
  572.  
  573. 2.2.48 procedure newcheck(x1,y1:integer;text:string;tp:byte;ok:boolean);
  574. ------------------------------------------------------------------------
  575.  
  576.   This procedure will ADD and draw a new check button into the current window
  577. All informations will be stored.
  578.  
  579. x1,y1 - the coordonates.
  580. text  - the text that will be printed befor the check button.
  581. tp    - the type of the check button (from 1 to 3).
  582. ok    - if the check button will be on or off.
  583.  
  584.  
  585. 2.2.49 procedure newtracker(x1,y1,x2,min,max,cur: integer);
  586. -----------------------------------------------------------
  587.  
  588.     This procedure will ADD and DRAW a tracker bar into the current window.
  589. All informations will be stored.
  590.  
  591. x1,y1 - the left upper corner of the tracker bar.
  592. x2    - the X coordonate of the right corner.
  593. min   - the min value (lower).
  594. max   - the max value (upper).
  595. cur   - the current value that must be shown.
  596.  
  597.  
  598. 2.2.50 procedure newprocent(x1,y1,x2,y2:integer;proce,color:byte);
  599. ------------------------------------------------------------------
  600.  
  601.    This procedure will ADD and draw a procent bar into the current window.
  602. All informations will be stored.
  603.  
  604. x1,y2,x2,y2 - the coordonates.
  605. proce       - the procent that will be shown by default (0 to 100).
  606. color       - the bar color.
  607.  
  608.  
  609. 2.2.51 procedure change_procent(nr,val:byte);
  610. ---------------------------------------------
  611.  
  612.    This procedure will change the procent status.
  613.  
  614. nr  - the number of the procent bar from the current window.
  615. val - the new procent value (0 to 100).
  616.  
  617. 2.2.52 function check_result(nr_check:integer):boolean;
  618. -------------------------------------------------------
  619.  
  620.    This function will return the check button state (on or off).
  621.  
  622. nr_check - the number of the check button from the current window.
  623.  
  624.   Will return true if the button is checked or false if the button is not
  625. checked.
  626.  
  627.  
  628. 2.2.53 procedure clrwin(no:integer);
  629. ------------------------------------
  630.  
  631.   This procedure will clear all the informations about the objects from a
  632. window, and the window itself.
  633.  
  634. no - the number of the window that will be erased (closed).
  635.  
  636.  
  637. 2.2.54 procedure explode(x1,y1,x2,y2,n:integer);
  638. ------------------------------------------------
  639.  
  640.   This procedure is used internal of Grafica at the open of the windows.
  641. This will explode a box.
  642.  
  643. x1,y1,x2,y2 - the finnal window box coordonates.
  644. n           - the number of explodes steps.
  645.  
  646.  
  647. 2.2.55 procedure process_coordonates;
  648. -------------------------------------
  649.  
  650.    If a window is out (partial) from the screen, the window will be adjusted
  651. to meet the screen size.
  652.  
  653.  
  654. 2.2.56 procedure gimage;
  655. ------------------------
  656.  
  657.    This procedure gets the image of the entire screen.
  658.  
  659.  
  660. 2.2.57 procedure eimage;
  661. ------------------------
  662.  
  663.    This procedure will erase the image stored with gimage procedure.
  664.  
  665.  
  666. 2.2.58 procedure pimage;
  667. ------------------------
  668.  
  669.    This procedure will put the image stored with gimage.
  670.  
  671.  
  672. 2.2.59 function mouse_pressed:boolean;
  673. --------------------------------------
  674.  
  675.    This function return true if the mouse button is pressed.
  676.  
  677.  
  678. 2.2.60 procedure handleevent; virtual;
  679. --------------------------------------
  680.  
  681.    This is the most important and amazing procedure from the Grafica. This
  682. procedure will handle all the events from the desktop. This procedure will
  683. take cere of the button push, windows moves, input field, etc.
  684.    This procedure must be used afer a window is opened and after all the
  685. object are drawed and stored. When you call this procedure, its wait for a
  686. event (push of button). When it happend an event, will exit this procedure.
  687.    In the "cm" variable you will have the event number (the number of the
  688. button is pressed). Please see chapter 2.3 for more details about variable.
  689.    When the window is moved, input a box, or check a check button, the
  690. procedure will not exit.
  691.    For more details about using this procedure, please see the source
  692. code included (TEST.PAS).
  693.  
  694.  
  695. 2.2.61 procedure mousenotexist;
  696. -------------------------------
  697.  
  698.    This procedure will advise you that the mouse does not exists. It ask you
  699. if you want to quit. If yes, then it exit the program.
  700.  
  701.  
  702. 2.2.62 function grerror:boolean;
  703. --------------------------------
  704.  
  705.    Will return if it is a graphic error.
  706.  
  707.  
  708. 2.2.63 function nocolors(s: string): string;
  709. --------------------------------------------
  710.  
  711.    This function will erase the ~ sign from a string. That will cause a non
  712. color string when will be printed.
  713.  
  714. s  - the input string with the ~ sign.
  715.  
  716.   and will return the string without ~ signs.
  717.  
  718.  
  719. 2.2.64 function da:boolean;
  720. ---------------------------
  721.  
  722.    This will write a message "Do you wish to continue (Y/n)? ", and wait
  723. for the user input. If it enter Y, will be printed Yes text, and the function
  724. will return true, else false. Also for Yes user can send ENTER, or ESC for
  725. NO. The valid answers will be only Y (y) or N (N) or ENTER or ESC.
  726.  
  727.  
  728. 2.2.65 function inwindow:boolean;
  729. ---------------------------------
  730.  
  731.    If the mouse pointer is into the current window, the function will return
  732. true, else false.
  733.  
  734.  
  735. 2.2.66 destructor done;
  736. -----------------------
  737.  
  738.    This must be used when you want to close your application. This procedure
  739. will play the shutdown sound (if sound enabled), close graph, and return to
  740. the original screen mode.
  741.  
  742. 2.2.67 procedure error;
  743. -----------------------
  744.  
  745.    This procedure will show a error message. (Just for fun :-)  ).
  746.  
  747.  
  748. 2.2.68 function  get_tracker(nr: byte): integer;
  749. ------------------------------------------------
  750.  
  751.    This function will return the current position of a specified tracker
  752. bar.
  753.  
  754. nr  - the number of the tracker bar within a window.
  755.  
  756.    The function will return the number selected by the user.
  757.  
  758.  
  759. 2.2.69 procedure tracker_draw(x1,y1,x2,min,max,cur: integer; bool: boolean);
  760. ----------------------------------------------------------------------------
  761.  
  762.    This procedure will DRAW (WARNING!!! Only DRAW) the trackerbar. Please
  763. see the procedure newtracker (2.2.49). This procedure is designed for use
  764. internal of Grafica, but you are free to use this for your own proposes.
  765.  
  766. x1,y1,x2 - the coordonates
  767. min, max - the min (lower) and max (upper) value
  768. cur      - the current value of the tracker bar
  769. bool     - if bool is true will draw the entire tracker bar, else only the
  770.            text and the button (for animation).
  771.  
  772.  
  773. 2.2.70 procedure tracker_proc(x1,y1,x2,min,max: integer; var cur: integer);
  774. ---------------------------------------------------------------------------
  775.  
  776.    This procedure will process and return the new selected value. This
  777. procedure is designed for use internal of Grafica, but you are free to use
  778. this for your own proposes.
  779.  
  780. x1,y1,x2 - the coordonates.
  781. min,max  - the min and max values.
  782. cur      - the current tracker value. After processing, will return the new
  783.            tracker value selected by the user.
  784.  
  785.  
  786.  
  787.  
  788. 2.3 Grafica's constants
  789. -----------------------
  790.  
  791.    In this chapter you will find all the constants and variables that are
  792. needs in programming Grafica.
  793.  
  794.  
  795. 2.3.1 winopen
  796. -------------
  797.  
  798.    The RPD sound that must be played at the open of a window. Default is:
  799.  
  800.      winopen:string[80]='open.rpd';
  801.  
  802.  
  803. 2.3.2 winclose
  804. --------------
  805.  
  806.    The RPD sound that must be played at the close of a window. Default is:
  807.  
  808.      winclose:string[80]='close.rpd';
  809.  
  810.  
  811. 2.3.3 startgrafica
  812. ------------------
  813.  
  814.    The RPD sound that must be played at the startup of Grafica. Default is:
  815.  
  816.      startgrafica:string[80]='start.rpd';
  817.  
  818.  
  819. 2.3.4 closegrafica
  820. ------------------
  821.  
  822.    The RPD sound that must be played at the shotdown of Grafica. Default is:
  823.  
  824.      closegrafica:string[80]='shutdown.rpd';
  825.  
  826.  
  827. 2.3.5 spac
  828. ----------
  829.  
  830.    Sets the border of the window (in pixels). Default is:
  831.  
  832.      spac:word=5;
  833.  
  834.  
  835. 2.3.6 fer_tip
  836. -------------
  837.  
  838.    Sets the type of the window (from 0 to 6) Default is:
  839.  
  840.      fer_tip: word=1;
  841.  
  842.  
  843. 2.3.7 t_color
  844. -------------
  845.  
  846.    If t_color is true, the text between ~ signs will be written with red color
  847. else (if false) the text will be underlined with the same color of the text
  848. out of ~ signs. Default is:
  849.  
  850.      t_color: boolean=true;
  851.  
  852.  
  853. 2.3.8 hi_text
  854. -------------
  855.  
  856.    Sets the color of the text between ~ signs. Default is:
  857.  
  858.      hi_text: byte=4;
  859.  
  860.  
  861. 2.3.9 _paleta
  862. -------------
  863.  
  864.    Sets the palette type. Default is:
  865.  
  866.      _paleta: byte=4;
  867.  
  868.  
  869. 2.3.10 _in   * DO NOT CHANGE THE DEFAULT VALUE
  870. ----------
  871.  
  872.    This is true. Use for buttons or text where the buttons or texts must be
  873. in. Also you can use true.
  874.  
  875.  
  876. 2.3.11 _out   * DO NOT CHANGE THE DEFAULT VALUE
  877. -----------
  878.  
  879.    This is false. Use for buttons or text where the buttons or texts must be
  880. out. Also you can use false.
  881.  
  882.  
  883. 2.3.12 offcol
  884. -------------
  885.  
  886.    Sets the color of the text written on a disable button. The default value
  887. is:
  888.  
  889.    offcol:byte=11;
  890.  
  891.  
  892. 2.3.13 blackmouse
  893. -----------------
  894.  
  895.    Set the cursor mode of the mouse. If this is true, the mouse cursor will
  896. be black, else will be white. Default is:
  897.  
  898.       blackmouse: boolean=true;
  899.  
  900.    NOTE ! Use before constructor init procedure from Grafica.
  901.  
  902.  
  903. 2.3.14 faranume   * DO NOT CHANGE THE DEFAULT VALUE
  904. ---------------
  905.  
  906.    It is false, and use only for windows, when you want to make a window
  907. without the header.
  908.  
  909.  
  910. 2.3.15 punenume   * DO NOT CHANGE THE DEFAULT VALUE
  911. ---------------
  912.  
  913.    It is true, and use only for windows, when you want to make a window
  914. with header.
  915.  
  916.  
  917. 2.3.16 clearwin
  918. ---------------
  919.  
  920.    If is false, it doesn't clear a window ( clrwin() ). Default is:
  921.  
  922.       clearwin:boolean=true;
  923.  
  924.  
  925. 2.3.17 realrefresh
  926. ------------------
  927.  
  928.    If is true, will redraw the entire background and openned windows. If is
  929. false will but a bar at the place of window and doesn't redraw all the
  930. openned objects and background. The color of the bar is set with colbk
  931. variable. Default value is:
  932.  
  933.    realrefresh:boolean=true;
  934.  
  935.  
  936. 2.3.18 colbk
  937. ------------
  938.  
  939.    Sets the background color. Default is:
  940.  
  941.      colbk:integer=0;
  942.  
  943.  
  944. 2.3.19 stay   * DO NOT CHANGE THE DEFAULT VALUE
  945. -----------
  946.  
  947.    If at refwin or refwins procedures, in coordonates you will specify stay,
  948. then the windows will doesn't move. Please see procedures refwin and refwins.
  949.  
  950.  
  951. 2.3.20 grf_mode
  952. ---------------
  953.  
  954.    Sets the graph mode. It is good if you don't change this value. Default:
  955.  
  956.      grf_mode: integer=2;
  957.  
  958.  
  959. 2.3.21 grf_driv
  960. ---------------
  961.  
  962.    Sets the graph driver. It is good if you don't change this value. Default:
  963.  
  964.      grf_driv: integer=9;
  965.  
  966.  
  967. 2.3.22 mar_che
  968. --------------
  969.  
  970.    Sets the size of the check boxes in pixels. Default is:
  971.  
  972.      mar_che: byte=15;
  973.  
  974.  
  975. 2.3.23 w_exp
  976. ------------
  977.  
  978.    If at the open of the window, the window will explode or not. Default is:
  979.  
  980.      w_exp: boolean=true;
  981.  
  982.  
  983. 2.3.24 nr_expl
  984. --------------
  985.  
  986.    Sets the number of window explodes. Default is:
  987.  
  988.      nr_expl: word=10;
  989.  
  990.  
  991. 2.3.25 ex_delay
  992. ---------------
  993.  
  994.    Sets the delay between the movement of the window explode. Default is:
  995.  
  996.      ex_delay: word=15;
  997.  
  998.  
  999. 2.3.26 muta_fer
  1000. ---------------
  1001.  
  1002.    If the windows will allow to be moved. Default is:
  1003.  
  1004.      muta_fer:boolean=true;
  1005.  
  1006.  
  1007. 2.3.27 but_delay
  1008. ----------------
  1009.  
  1010.    Sets the delay between a button is pressed and it is released when the
  1011. button is pressed by the keyboard. Default is:
  1012.  
  1013.      but_delay:word=150;
  1014.  
  1015.  
  1016. 2.3.28 but_release
  1017. ------------------
  1018.  
  1019.    If is true, the buttons will be pressed and will be released. Else
  1020. the button will not be pressed and released, but in the program will return
  1021. that the button is pressed. Default is:
  1022.  
  1023.      but_release:boolean=true;
  1024.  
  1025.  
  1026. 2.3.29 fontenable
  1027. -----------------
  1028.  
  1029.    Sets the text font which the text is written. Default is:
  1030.  
  1031.      fontenable:word=0;
  1032.  
  1033.  
  1034. 2.3.30 os2   * DO NOT CHANGE THE DEFAULT VALUE
  1035. ----------
  1036.  
  1037.    If you press a button and then with the mouse button still pressed you
  1038. move the pointer to another button, this button will be pressed. This is for
  1039. newbut procedure when you must specify the button behav. (true or false).
  1040. This value is true.
  1041.  
  1042.  
  1043. 2.3.31 windoze   * DO NOT CHANGE THE DEFAULT VALUE
  1044. --------------
  1045.  
  1046.    This is the reverse like os2 variable. (see 2.3.30) This value is false
  1047. and the buttons will behav. like MS-Windows.
  1048.  
  1049.  
  1050. 2.3.32 soundenable
  1051. ------------------
  1052.  
  1053.    If is true, the sound will be enabled, else disabled. The sound at open
  1054. /close, startup/shutdown of the windows/Grafica. Default is:
  1055.  
  1056.      soundenable:boolean=false;
  1057.  
  1058.  
  1059. 2.3.33 base
  1060. -----------
  1061.  
  1062.    Set the base address of your Sound Card. Base should be:
  1063.  
  1064.     1 for Base Address 210h
  1065.     2 for Base Address 220h (Default on most cards)
  1066.     3 for Base Address 230h
  1067.       etc..
  1068.  
  1069.     Default is:
  1070.  
  1071.       base:byte=2;
  1072.  
  1073.  
  1074. 2.3.34 irq
  1075. ----------
  1076.  
  1077.    Sets the IRQ for your Sound Card. Default is:
  1078.  
  1079.      irq:byte=7;
  1080.  
  1081.  
  1082. 2.3.35 dma
  1083. ----------
  1084.  
  1085.    Sets the DMA Channel for your Sound Card. Default is:
  1086.  
  1087.      dma:byte=1;
  1088.  
  1089.  
  1090. 2.3.36 dmahi
  1091. ------------
  1092.  
  1093.    Sets the High DMA channel of your card (leave at 0 if no 16-bit).
  1094. Default is:
  1095.  
  1096.      dmahi:byte=0;
  1097.  
  1098.  
  1099. 2.3.37 memimage
  1100. ---------------
  1101.  
  1102.    If is true, the image will be stored in memory, and when will be a
  1103. modification, it is restored from memory. (at the move of windows, etc).
  1104. This will gets some memory, but it is more faster if you have many openned
  1105. windows.
  1106.    If is false, all the windows will be redrawed when you move a window.
  1107. this will not use memory, but if you have many openned windows, will be
  1108. more slower. Default is:
  1109.  
  1110.     memimage:boolean=true;
  1111.  
  1112.  
  1113. 2.3.38 deep
  1114. -----------
  1115.  
  1116.    Sets the deep of the buttons in pixels. Default is: 1.
  1117.  
  1118.  
  1119.  
  1120.  
  1121. 2.4 Grafica's variables
  1122. -----------------------
  1123.  
  1124.  
  1125.  
  1126. 2.4.1 os2font
  1127. --------------
  1128.  
  1129.    Specify at font types. This will means that the program will use our own
  1130. font called os2font.
  1131.  
  1132.  
  1133. 2.4.2 event_x & event_y
  1134. ------------------------
  1135.  
  1136.    Mouse cursor position.
  1137.  
  1138.  
  1139. 2.4.3 event_ch
  1140. ---------------
  1141.  
  1142.    The last entered character. If have been pressed a function key, will
  1143. set the key code after the #0 key.
  1144.  
  1145.  
  1146. 2.4.4 cm
  1147. --------
  1148.  
  1149.    The last event. You will find (after handleevent procedure has been
  1150. finished) the number of the button that has been pressed, starting from
  1151. 2 (1 means that the user press the button from the upper left corner of a
  1152. window, that means close). For more details, please see handleevent procedure
  1153. (2.2.60).
  1154.  
  1155.  
  1156. 2.4.5 relief
  1157. ------------
  1158.  
  1159.    If this will be set to true, all the texts will be printed in 3D, but it
  1160. is more slower. Default is false.
  1161.  
  1162.  
  1163. 2.4.6 ???!!!
  1164. ------------
  1165.  
  1166.    Thats all for the shareware version. In this shareware version you have
  1167. many others variables and features to set, but will be undocumented. Please
  1168. register and you will find all the variables. Sorry for that but we must
  1169. support the registration, for developing other new features that only you
  1170. will benefite.
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.                         3. G_APPLIC UNIT TECHNICAL DETAILS
  1179.                         ----------------------------------
  1180.  
  1181.  
  1182.  
  1183. 3.1 General description
  1184. -----------------------
  1185.  
  1186.    In this unit are some Applications of Grafica (Viewer, File browser,
  1187. Display Message, nice clock, etc.)
  1188.  
  1189.  
  1190.  
  1191. 3.2 G_APPLIC's procedures and functions
  1192. ---------------------------------------
  1193.  
  1194.    This you will find all the procedures and functions in G_APPLIC unit.
  1195.  
  1196.  
  1197. 3.2.1 procedure viewer(x,y: integer; hdd,tx:string);
  1198. ----------------------------------------------------
  1199.  
  1200.    Here you have the Grafica's viewer. You can specify a text file and you
  1201. can browse. You can use the cursor keys (for left, right, up, down) or
  1202. some other keys (PageUp, PageDown). Or you can use the mouse to browse the
  1203. file.
  1204.  
  1205. x,y  - the coordonates where the viewer's window must be placed.
  1206. hdd  - the header of the viewer's window.
  1207. tx   - the path+filename of the file that must be viewed.
  1208.  
  1209.  
  1210. 3.2.2 procedure texl(x,y:integer;text:string);
  1211. ----------------------------------------------
  1212.  
  1213.    You can write a text string with littlefont.
  1214.  
  1215. x,y - the coordonates
  1216. text - the text string
  1217.  
  1218.  
  1219. 3.2.3 procedure dispmsg(ant,st:string);
  1220. ---------------------------------------
  1221.  
  1222.    This procedure will display a window with a message. The window will be
  1223. set up with the text message and text lines. The text lines will be centred
  1224. in the window. You can go to a new line with the ` char. Also this window
  1225. will have a Ok button. When is pressed the window will be closed.
  1226.  
  1227. ant - the header of the window.
  1228. st  - the string that must be printed in the window. You can use ` for a new
  1229.       like and the text between ~ char will be printed in red.
  1230.  
  1231.  
  1232. 3.2.4 function browse(plx,ply: integer; s,hdr: string): string;
  1233. ---------------------------------------------------------------
  1234.  
  1235.    You can browse through your files. This is a easy and nice interface.
  1236. You can move the select bar with cursor keys (up/down), you can change the
  1237. directory with ENTER (like Norton Commander). Also you can specify a direct
  1238. path+filename, you can change the willcard. You can change the directory
  1239. manually. You have OK and Cancel buttons, and .. and \ buttons for a fast
  1240. change directory (.. for .. dir. and \ for root dir.). You can move this
  1241. browse window. You have the file attributes, the size, date and time.
  1242.  
  1243. plx,ply - the coordonates of the browse window.
  1244. s       - the files that must be displayed (willcard accepted (*.*, etc..) ).
  1245. hdr     - the header of the window.
  1246.  
  1247.    The function will return the full path+filename of the selected file. If
  1248. the user press Cancel button, will return ''.
  1249.  
  1250.  
  1251. 3.2.5 procedure clock(x1,y1,x2,y2: integer; name: string);
  1252. ----------------------------------------------------------
  1253.  
  1254.    This procedure will display a nice analog clock that will running. You can
  1255. specify ANY sizes.
  1256.  
  1257. x1,y1,x2,y2 - the left upper corner and the right down corner of the clock.
  1258. name        - the header of the clock window.
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.                        4. STRINGOP UNIT TECHNICAL DETAILS
  1265.                        ----------------------------------
  1266.  
  1267.  
  1268. 4.1 General Description
  1269. -----------------------
  1270.  
  1271.   This unit operates with strings, make modifications, transformations, etc.
  1272.  
  1273.  
  1274. 4.2 STRINGOP's functions
  1275. ------------------------
  1276.  
  1277.   This is described the functions of STRINGOP UNIT.
  1278.  
  1279.  
  1280. 4.2.1 function hexwordstr(by: word): string ;
  1281. ---------------------------------------------
  1282.  
  1283.    Transform a word number into a hex number. The result will be a string.
  1284.  
  1285.  
  1286. 4.2.2 function lowercases(s: string): string ;
  1287. ----------------------------------------------
  1288.  
  1289.    Transform a string into lowercases. All the characters will be with
  1290. lowercases.
  1291.  
  1292.  
  1293. 4.2.3 function hmssstring(o,m,se,su: word): string ;
  1294. ----------------------------------------------------
  1295.  
  1296.    Transfor the time stamp into a string.
  1297.  
  1298. o  - the hour.
  1299. m  - the minutes.
  1300. se - the secconds.
  1301. su - hundredths of seconds.
  1302.  
  1303.  
  1304. 4.2.4 function real2str(i:real): string ;
  1305. -----------------------------------------
  1306.  
  1307.    This function transform a real variable into a string.
  1308.  
  1309.  
  1310. 4.2.5 ???!!!!???xxxx
  1311. --------------------
  1312.  
  1313.    There are more new and cool functions that operates with strings/numbers,
  1314. etc to make your life easyer. Please register and you will have the
  1315. description of this functions.
  1316.  
  1317.  
  1318.  
  1319.  
  1320.                       5. UTIL256 UNIT TECHNICAL DETAILS
  1321.                       ---------------------------------
  1322.  
  1323.  
  1324. 5.1 General description
  1325. -----------------------
  1326.  
  1327.   This unit have many utilities for 256 colors video modes.
  1328.  
  1329.  
  1330. 5.2 UTIL256's functions and procedures
  1331. --------------------------------------
  1332.  
  1333.    Here you can find technical details about how to use the util256's
  1334. functions and procedures.
  1335.  
  1336.  
  1337. 5.2.1 procedure SetPal(col,r,g,b: byte);
  1338. ----------------------------------------
  1339.  
  1340.    Set the palette from a specified color.
  1341.  
  1342. col   - the number of the color
  1343. r,g,b - the RGB value (red green blue).
  1344.  
  1345.  
  1346. 5.2.2 procedure SetAllPal(pal: palette256);
  1347. -------------------------------------------
  1348.  
  1349.    This procedure sets the entire palette. Pal variable must be palette256
  1350. structure. This means that pal must have the follwing structure:
  1351.  
  1352.    type palette256 = array[0..255] of record
  1353.                                      r,g,b : byte;
  1354.                                    end;
  1355.    From 0 to 255 are the colors, and r,g,b the RGB values.
  1356.  
  1357.  
  1358. 5.2.3 procedure GetAllPal(var pal: palette256);
  1359. -----------------------------------------------
  1360.  
  1361.    This procedure return the current palette.
  1362.  
  1363.  
  1364. 5.2.4 procedure FadeUp(pal: palette256; del: word);
  1365. ---------------------------------------------------
  1366.  
  1367.    This procedure fadeup the entire screen (palette). It starts from 0,0,0
  1368. (all screen black) to the palette specified in pal variable.
  1369.  
  1370. del - the delay from the fade steps.
  1371.  
  1372.  
  1373. 5.2.5 procedure FadeDown(pal: palette256; del: word);
  1374. -----------------------------------------------------
  1375.  
  1376.    This procdure fadedown the entire screen (palette). It starts from the
  1377. palette color to all 0 (black screen). The variables are the same like
  1378. fadeup procedure (5.2.4).
  1379.  
  1380.  
  1381. 5.2.6 procedure Fade(pal,pal3: palette256; nr,del: word);
  1382. ---------------------------------------------------------
  1383.  
  1384.    Fade from one palette to another palette.
  1385.  
  1386.  
  1387. pal  - the starting palette.
  1388. pal3 - the final palette.
  1389. nr   - the number of fades (step)
  1390. del  - the delay between fades.
  1391.  
  1392.  
  1393. 5.2.7 procedure ClearPal(var pal: palette256; rr,gg,bb: byte);
  1394. --------------------------------------------------------------
  1395.  
  1396.    This procedure sets the entire palette to a color.
  1397.  
  1398. pal      - the palette.
  1399. rr,gg,bb - the RGB value of the color. All the palette will have the same
  1400.            color.
  1401.  
  1402.  
  1403. 5.2.8 procedure init320x200;
  1404. ----------------------------
  1405.  
  1406.    This procedure inits the 320x200x256 video mode.
  1407.  
  1408.  
  1409. 5.2.9 procedure WaitRetrace;
  1410. ----------------------------
  1411.  
  1412.    This procedure waits for the video card for finish the fade or operations.
  1413.  
  1414.  
  1415. 5.2.10 procedure _putpixel(x,y,col:word);
  1416. -----------------------------------------
  1417.  
  1418.    This procedure put a pixel into a 256 mode display.
  1419.  
  1420. x,y - the coordonates of the pixel.
  1421. col - the color.
  1422.  
  1423.  
  1424. 5.2.11 procedure _bar(px1,py1,px2,py2: integer; col: byte);
  1425. -----------------------------------------------------------
  1426.  
  1427.   This procedure will draw a bar with a specified color.
  1428.  
  1429. px1,py1,px2,py2 - the bar coordonates
  1430. col             - the bar color.
  1431.  
  1432.  
  1433. 5.2.12 procedure _line(x1,y1,x2,y2,col:integer);
  1434. ------------------------------------------------
  1435.  
  1436.    This procedure draws a line.
  1437.  
  1438. x1,y1,x2,y2 - the coordonates.
  1439. col         - the line color.
  1440.  
  1441.  
  1442. 5.2.13 procedure LoadMemFont;
  1443. -----------------------------
  1444.  
  1445.    This procedure load the current font into memory.
  1446.  
  1447.  
  1448. 5.2.14 function  LoadFont(name: string; var poi:pointer): integer;
  1449. ------------------------------------------------------------------
  1450.  
  1451.    This functions load a font. (The files with .fnt extensions).
  1452.  
  1453. name - the filename of the font.
  1454. poi  - the returned pointer of the font.
  1455.  
  1456.    This functions return 0 if OK, else if error.
  1457.  
  1458.  
  1459. 5.2.15 procedure registerfont(fon: pointer);
  1460. --------------------------------------------
  1461.  
  1462.    This procdure will register the font, and the new font will be activated.
  1463.  
  1464.  
  1465. fon - the font pointer returned by loadfont procedure.
  1466.  
  1467.  
  1468. 5.2.16 procedure printxy256(x,y: integer; col,m: word; sr: string);
  1469. -------------------------------------------------------------------
  1470.  
  1471.    Print a text to the x,y coordonates.
  1472.  
  1473. x,y - the text coordonates.
  1474. col - the text color.
  1475. m   - the text background color.
  1476. sr  - the text string.
  1477.  
  1478.  
  1479. 5.2.17 ???xxx????!!!!!
  1480. ----------------------
  1481.  
  1482.    That's all for a shareware version. Please register and you will get more
  1483. new & professional documented features. Note that almost all of this
  1484. procedures are written in assembler for a faster speed.
  1485.  
  1486.  
  1487.  
  1488.                        6. MOUSE UNIT TECHNICAL DETAILS
  1489.                        -------------------------------
  1490.  
  1491. This should be the technical details for the mouse unit, but this is a
  1492. shareware version, and the registered user must have more, more advantages.
  1493.  
  1494. Here you will have ALL the necesary tools for mouse like cursor definitions,
  1495. (you have a lots of cursor images allready definited), informations about
  1496. mouse, sensitivity, visual page, position, mouse state, and more, more
  1497. mouse functions that will make your life much much easyer,.... if you
  1498. register (and mine, of course).
  1499.