home *** CD-ROM | disk | FTP | other *** search
- KTOOLS verze 3.0 {Drue Kennon}
-
- TYPE
- Colors = 0..15;
- MenuItemType = String[30];
- MenuDescType = String[80];
- ScrType = Array[1..4004] OF Byte;
- SaveScrType = ^ScrType;
- BorderType = Record
- TL,TR,BL,BR,FH,FV : Char;
- End;
- AllFiles=ARRAY[1..500] of String[12];
-
- CONST
- Border1 : BorderType = (TL:'╔';TR:'╗';BL:'╚';BR:'╝';FH:'═';FV:'║');
- Border2 : BorderType = (TL:'╒';TR:'╕';BL:'╘';BR:'╛';FH:'═';FV:'│');
- Border3 : BorderType = (TL:'┌';TR:'┐';BL:'└';BR:'┘';FH:'─';FV:'│');
- Border4 : BorderType = (TL:'▒';TR:'▒';BL:'▒';BR:'▒';FH:'▒';FV:'▒');
- Border5 : BorderType = (TL:'▓';TR:'▓';BL:'▓';BR:'▓';FH:'▓';FV:'▓');
-
- VAR
- ActiveDP : Byte; (* Aktivní stránka displeje *)
- LineWidth : Integer; (* ¢í⌐ka çáry aktuálního video módu *)
- VideoMode : Byte; (* Aktuál. video mód ,t.j. 0,1,2,3,7 *)
- ErrorCode : Integer; (* Glob. prom. pro o¿et⌐ení chyb *)
-
- FUNCTION CurrentVideoMode : Byte;
- PROCEDURE CursorOn;
- PROCEDURE CursorOff;
- FUNCTION KUCase(S:String):String;
- FUNCTION KLCase(S:String):String;
- FUNCTION Color(FG,BG:Colors):Byte;
- PROCEDURE KAttr(Row,Col,Rows,Cols:Integer;Attr:Byte);
- PROCEDURE KFill(Row,Col,Rows,Cols:Integer;Ch:Char;Attr:Byte);
- PROCEDURE KTrim(VAR S:String);
- PROCEDURE KWrite(Row,Col:Integer;Attr:Byte;S:String);
- PROCEDURE KWriteV(Row,Col:Integer;Attr:Byte;VAR S:String);
- PROCEDURE KWriteC(Row:Integer;Attr:Byte;S:String);
- PROCEDURE KWriteCV(Row:Integer;Attr:Byte;VAR S:String);
- FUNCTION ReadPen:Integer;
- FUNCTION PenPosition(Row,Col:Byte):Integer;
- FUNCTION PenRow(Pen_Position:Integer):Byte;
- FUNCTION PenCol(Pen_Position:Integer):Byte;
- PROCEDURE KSaveScr(ULRow,ULCol,Rows,Cols : Byte;
- VAR Dest_Variable : SaveScrType);
-
- PROCEDURE KRestoreScr(Source_Variable : SaveScrType);
-
- PROCEDURE KBox (ULRow,ULCol,Rows,Cols: Integer;
- FrameAttr,WindowAttr : Byte;
- Border : BorderType;
- ClearWindow : Boolean);
-
- FUNCTION KVertMenu(Selection_Start : INTEGER;{vysvícená poloæka menu na zaç.zpr.}
- VAR MenuList; {seznam poloæek menu }
- MenuItemTotal, {poçet poloæek v menu }
- XStart, {poçáteçní sou⌐. - sloupec }
- YStart, {poçáteçní sou⌐. - ⌐ádek }
- XHiliteStart, {poçet vysvícenÿch poç.sloupcû }
- LengthOfHilite, {poçet sloupcû pro vysvícení }
- NormalAttr, {text. atribut pro menu }
- HiliteAttr : {atribut vysvícené poloæky }
- INTEGER):INTEGER; {funkce vrací integer }
-
- FUNCTION KHorizMenu(Selection_Start:INTEGER; {vysvícená poloæka menu na zaç.zpr.}
- VAR MenuList, {seznam poloæek menu }
- MenuDesc; {popis kaædé poloæky }
- MenuItemTotal, {celkovÿ poçet poloæek }
- MenuWindowWidth, {poçet sloupcû pro menu }
- XStart, {poçáteçní sou⌐. - sloupec }
- YStart, {poçáteçní sou⌐. - ⌐ádek }
- NormalAttr, {text. atribut pro menu }
- HiliteAttr, {atribut vysvícené poloæky }
- DescAttr: {barva pro popis }
- INTEGER):INTEGER; {funkce vrací integer }
-
- PROCEDURE CopyFile(Input_File, {jméno a p⌐ípona souboru ke kopírování}
- Output_File {jméno a p⌐ípona vytvo⌐eného souboru}
- :String;
- VAR Return_Code {kód chyby DOSu - DOSerror}
- :Integer;
- EraseInputFile {"vlajka" pûvodního souboru (file flag) }
- :Boolean);
-
- FUNCTION IntToHex(IntNum:Integer):String;
- FUNCTION Space(Number:Integer):String;
-
- PROCEDURE DirFill(VAR Path:String; {deklarovaná cesta pro hledání}
- VAR Files:AllFiles; {pole v¿ech souborû v adresá⌐i}
- VAR Counter:Integer; {celk.poçet souborû v adresá⌐i}
- IncludeDIR:Boolean); {vÿpis "include" adresá⌐e }
-
- PROCEDURE SortDir(VAR Files:AllFiles; {pole v¿ech souborû v adresá⌐i }
- VAR Counter:Integer); {poçet souborû, které mají bÿt zapsány}
-
- FUNCTION PikDir(Path:String; {cesta do pick adresá⌐e}
- IncludeDIR:Boolean {vÿpis include" adresá⌐e}
- ):String;
-
- Toto je vÿpis procedur a funkcí obsaæenÿch v KTOOLS30.pas/tpu. Napsal
- jsem tuto jednotku, abych ukázal ostatním, æe se nemusí vædy
- uchylovat k psaní assemblerovÿch rutin p⌐i programování tohoto druhu
- akcí. Strávil jsem dost çasu psaním assemblerovÿch interface k mÿm
- programûm. Faktem je, æe mi programy MASM 5.0 a CodeView dost
- usnadnily práci, ale mnê se líbí to, co TP4 nabízí bez jakékoli
- "externí pomoci". Pouæívám v¿echny rutiny obsaæené v KTOOLS.
-
- Popsané jednoduché rutiny vyuæívají novÿch moæností TP4 a jsou
- distribuovány jako Public Domain. Naproti tomu ale musím ⌐íci, æe
- psaní têchto prográmkû mi nêjakÿ ten ças zabralo, takæe pokud
- pouæíváte tento software a jste s ním spokojení, podpo⌐te prosím moje
- programování zasláním 5$.
-
- The Programmers'Source
- Rt 2 Box 54
- Center, Tx. 75935
- DataLine 409-598-9057
- Telefon 409-598-3809
-
- Ve zdrojovém textu KTOOLS.pas jsou na pravé stranê vædy uvedeny
- dostateçné komentá⌐e, aby vám neçinilo problémy zmênit cokoli, co
- budete pot⌐ebovat.
-
- KxxxxMenu pouæívá p⌐íkaz ABSOLUTE. Pokud chcete deklarovat jméno
- va¿eho menu, mêlo by to bÿt tímto zpûsobem:
-
- VAR
- YourMenuName : Array[1..?] OF MenuItemType;
- YourMenuNameTotal : INTEGER;
-
- ......
- BEGIN
- ......
- MyMenuTotal := ?;
-
- kde ? je celkovÿ poçet poloæek menu uvedenÿch vÿ¿e. MenuItemType je
- typu string[30], proto volte jméno do t⌐iceti znakû, nebo zmêñte
- deklaraci v KTOOLS.PAS a znovu zkompilujte.
-
- Pokud udêláte nêjakou zmênu, která se vám zdá ¿ikovná a souçasnê ji
- chcete zve⌐ejnit, prosím, napi¿te mi, abych mohl zanést vá¿ nápad do
- dal¿í verze.
-
- Doufám, æe tento software p⌐inese uæitek v¿em "Turbo Pascalistûm".
- Nezapomeñte - pi¿te nebo volejte v jakoukoli dobu.
-
- Drue Kennon
-
- P.S. Nejsem odpovêdnÿ za chyby v této dokumentaci.