home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / PASCAL / KTOOLS / KTOOLS.DOC < prev    next >
Encoding:
Text File  |  1991-03-29  |  6.6 KB  |  149 lines

  1. KTOOLS verze 3.0  {Drue Kennon}
  2.  
  3. TYPE
  4.     Colors       = 0..15;
  5.     MenuItemType = String[30];
  6.     MenuDescType = String[80];
  7.     ScrType      = Array[1..4004] OF Byte;
  8.     SaveScrType  = ^ScrType;
  9.     BorderType   = Record
  10.                       TL,TR,BL,BR,FH,FV : Char;
  11.                    End;
  12.     AllFiles=ARRAY[1..500] of String[12];
  13.  
  14. CONST
  15.       Border1 : BorderType = (TL:'╔';TR:'╗';BL:'╚';BR:'╝';FH:'═';FV:'║');
  16.       Border2 : BorderType = (TL:'╒';TR:'╕';BL:'╘';BR:'╛';FH:'═';FV:'│');
  17.       Border3 : BorderType = (TL:'┌';TR:'┐';BL:'└';BR:'┘';FH:'─';FV:'│');
  18.       Border4 : BorderType = (TL:'▒';TR:'▒';BL:'▒';BR:'▒';FH:'▒';FV:'▒');
  19.       Border5 : BorderType = (TL:'▓';TR:'▓';BL:'▓';BR:'▓';FH:'▓';FV:'▓');
  20.  
  21. VAR
  22.     ActiveDP  : Byte;     (* Aktivní stránka displeje          *)
  23.     LineWidth : Integer;  (* ¢í⌐ka çáry aktuálního video módu  *)
  24.     VideoMode : Byte;     (* Aktuál. video mód ,t.j. 0,1,2,3,7 *)
  25.     ErrorCode : Integer;  (* Glob. prom. pro o¿et⌐ení chyb      *)
  26.  
  27. FUNCTION CurrentVideoMode : Byte;
  28. PROCEDURE CursorOn;
  29. PROCEDURE CursorOff;
  30. FUNCTION KUCase(S:String):String;
  31. FUNCTION KLCase(S:String):String;
  32. FUNCTION Color(FG,BG:Colors):Byte;
  33. PROCEDURE KAttr(Row,Col,Rows,Cols:Integer;Attr:Byte);
  34. PROCEDURE KFill(Row,Col,Rows,Cols:Integer;Ch:Char;Attr:Byte);
  35. PROCEDURE KTrim(VAR S:String);
  36. PROCEDURE KWrite(Row,Col:Integer;Attr:Byte;S:String);
  37. PROCEDURE KWriteV(Row,Col:Integer;Attr:Byte;VAR S:String);
  38. PROCEDURE KWriteC(Row:Integer;Attr:Byte;S:String);
  39. PROCEDURE KWriteCV(Row:Integer;Attr:Byte;VAR S:String);
  40. FUNCTION ReadPen:Integer;
  41. FUNCTION PenPosition(Row,Col:Byte):Integer;
  42. FUNCTION PenRow(Pen_Position:Integer):Byte;
  43. FUNCTION PenCol(Pen_Position:Integer):Byte;
  44. PROCEDURE KSaveScr(ULRow,ULCol,Rows,Cols : Byte;
  45.                    VAR Dest_Variable     : SaveScrType);
  46.  
  47. PROCEDURE KRestoreScr(Source_Variable    : SaveScrType);
  48.  
  49. PROCEDURE KBox (ULRow,ULCol,Rows,Cols: Integer;
  50.                 FrameAttr,WindowAttr : Byte;
  51.                 Border               : BorderType;
  52.                 ClearWindow          : Boolean);
  53.  
  54. FUNCTION  KVertMenu(Selection_Start :  INTEGER;{vysvícená poloæka menu na zaç.zpr.}
  55.                    VAR MenuList;             {seznam poloæek menu            }
  56.                    MenuItemTotal,            {poçet poloæek v menu           }
  57.                    XStart,                   {poçáteçní sou⌐. - sloupec      }
  58.                    YStart,                   {poçáteçní sou⌐. - ⌐ádek        }
  59.                    XHiliteStart,             {poçet vysvícenÿch poç.sloupcû  }
  60.                    LengthOfHilite,           {poçet sloupcû pro vysvícení    }
  61.                    NormalAttr,               {text. atribut pro menu         }
  62.                    HiliteAttr :              {atribut vysvícené poloæky      }
  63.                    INTEGER):INTEGER;         {funkce vrací integer           }
  64.  
  65. FUNCTION KHorizMenu(Selection_Start:INTEGER; {vysvícená poloæka menu na zaç.zpr.}
  66.                     VAR MenuList,            {seznam poloæek menu            }
  67.                         MenuDesc;            {popis kaædé poloæky            }
  68.                     MenuItemTotal,           {celkovÿ poçet poloæek          }
  69.                     MenuWindowWidth,         {poçet sloupcû pro menu         }
  70.                     XStart,                  {poçáteçní sou⌐. - sloupec      }
  71.                     YStart,                  {poçáteçní sou⌐. - ⌐ádek        }
  72.                     NormalAttr,              {text. atribut pro menu         }
  73.                     HiliteAttr,              {atribut vysvícené poloæky      }
  74.                     DescAttr:                {barva pro popis                }
  75.                     INTEGER):INTEGER;        {funkce vrací integer           }
  76.  
  77. PROCEDURE  CopyFile(Input_File,              {jméno a p⌐ípona souboru ke kopírování}
  78.                     Output_File              {jméno a p⌐ípona vytvo⌐eného souboru}
  79.                     :String;
  80.                     VAR Return_Code          {kód chyby DOSu - DOSerror}
  81.                     :Integer;
  82.                     EraseInputFile           {"vlajka" pûvodního souboru (file flag) }
  83.                     :Boolean);
  84.  
  85. FUNCTION IntToHex(IntNum:Integer):String;
  86. FUNCTION Space(Number:Integer):String;
  87.  
  88. PROCEDURE DirFill(VAR Path:String;      {deklarovaná cesta pro hledání}
  89.                   VAR Files:AllFiles;   {pole v¿ech souborû v adresá⌐i}
  90.                   VAR Counter:Integer;  {celk.poçet souborû v adresá⌐i}
  91.                   IncludeDIR:Boolean);  {vÿpis "include" adresá⌐e     }
  92.  
  93. PROCEDURE SortDir(VAR Files:AllFiles;   {pole v¿ech souborû v adresá⌐i       }
  94.                   VAR Counter:Integer); {poçet souborû, které mají bÿt zapsány}
  95.  
  96. FUNCTION PikDir(Path:String;        {cesta do pick adresá⌐e}
  97.                 IncludeDIR:Boolean  {vÿpis include" adresá⌐e}
  98.                 ):String;
  99.  
  100. Toto je vÿpis procedur a funkcí obsaæenÿch v KTOOLS30.pas/tpu. Napsal
  101. jsem tuto jednotku, abych ukázal ostatním, æe se nemusí vædy
  102. uchylovat k psaní assemblerovÿch rutin p⌐i programování tohoto druhu
  103. akcí.  Strávil jsem dost çasu psaním assemblerovÿch interface k mÿm
  104. programûm. Faktem je, æe mi programy MASM 5.0 a CodeView dost
  105. usnadnily práci, ale mnê se líbí to, co TP4 nabízí bez jakékoli
  106. "externí pomoci". Pouæívám v¿echny rutiny obsaæené v KTOOLS. 
  107.  
  108. Popsané jednoduché rutiny vyuæívají novÿch moæností TP4 a jsou
  109. distribuovány jako Public Domain. Naproti tomu ale musím ⌐íci, æe
  110. psaní têchto prográmkû mi nêjakÿ ten ças zabralo, takæe pokud
  111. pouæíváte tento software a jste s ním spokojení, podpo⌐te prosím moje
  112. programování zasláním 5$. 
  113.  
  114. The Programmers'Source
  115. Rt 2 Box 54
  116. Center, Tx. 75935
  117. DataLine 409-598-9057
  118. Telefon 409-598-3809
  119.  
  120. Ve zdrojovém textu KTOOLS.pas jsou na pravé stranê vædy uvedeny
  121. dostateçné komentá⌐e, aby vám neçinilo problémy zmênit cokoli, co
  122. budete pot⌐ebovat.
  123.  
  124. KxxxxMenu pouæívá p⌐íkaz ABSOLUTE. Pokud chcete deklarovat jméno
  125. va¿eho menu, mêlo by to bÿt tímto zpûsobem:
  126.  
  127. VAR
  128.     YourMenuName : Array[1..?] OF MenuItemType;
  129.     YourMenuNameTotal : INTEGER;
  130.  
  131. ......
  132. BEGIN
  133. ......
  134. MyMenuTotal := ?;
  135.  
  136. kde ? je celkovÿ poçet poloæek menu uvedenÿch vÿ¿e. MenuItemType je
  137. typu string[30], proto volte jméno do t⌐iceti znakû, nebo zmêñte
  138. deklaraci v KTOOLS.PAS a znovu zkompilujte. 
  139.  
  140. Pokud udêláte nêjakou zmênu, která se vám zdá ¿ikovná a souçasnê ji
  141. chcete zve⌐ejnit, prosím, napi¿te mi, abych mohl zanést vá¿ nápad do
  142. dal¿í verze. 
  143.  
  144. Doufám, æe tento software p⌐inese uæitek v¿em "Turbo Pascalistûm".
  145. Nezapomeñte - pi¿te nebo volejte v jakoukoli dobu.
  146.  
  147.                 Drue Kennon
  148.                 
  149. P.S. Nejsem odpovêdnÿ za chyby v této dokumentaci.