home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 22 / stuff.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-01-04  |  3.8 KB  |  130 lines

  1. (* ----------------------------------------------------- *)
  2. (*                     STUFF.PAS                         *)
  3. (* Ansammlung von kleinen Prozeduren, die öfter gebraucht*)
  4. (* werden und in kein Objekt gehören, und von Tastatur-  *)
  5. (* codes.                                                *)
  6. (*         (c) 1991 by R.Reichert & toolbox              *)
  7. (* ----------------------------------------------------- *)
  8. UNIT Stuff;
  9.  
  10. INTERFACE
  11.  
  12. USES Dos;
  13.  
  14. PROCEDURE ShowCursor;
  15. PROCEDURE BlockCursor;
  16. PROCEDURE NormalCursor;
  17. PROCEDURE HideCursor;
  18. FUNCTION UpString (str : STRING) : STRING;
  19. FUNCTION IntToStr (x : INTEGER; n : BYTE) : STRING;
  20. FUNCTION LongIntToStr (x : LONGINT; n : BYTE) : STRING;
  21. FUNCTION KillSpaces  (Str : STRING) : STRING;
  22. FUNCTION CutLastPath (Str : STRING) : STRING;
  23.  
  24. CONST                             { Tastaturcode-Auswahl: }
  25.   ESC      =  27;    Enter    =  13;    Space    =  32;
  26.   BackSpace=   8;    Tab      =   9;    ShiftTab = 271;
  27.   Del      = 339;    Ins      = 338;    CtrlE    =   5;
  28.   CtrlX    =  24;    CtrlS    =  19;    CtrlD    =   4;
  29.   CtrlR    =  18;    CtrlC    =   3;    CtrlY    =  25;
  30.   CtrlF5   = 354;    CtrlHome = 375;    CtrlEnd  = 373;
  31.   CtrlLeft = 371;    CtrlRight= 372;    CurLeft  = 331;
  32.   CurRight = 333;    CurUp    = 328;    CurDown  = 336;
  33.   CurHome  = 327;    CurEnd   = 335;    CurPgUp  = 329;
  34.   CurPgDn  = 337;    AltA     = 286;    AltB     = 304;
  35.   AltC     = 302;    AltD     = 288;    AltE     = 274;
  36.   AltF     = 289;    AltG     = 290;    AltH     = 291;
  37.   AltI     = 279;    AltJ     = 292;    AltK     = 293;
  38.   AltL     = 294;    AltM     = 306;    AltN     = 305;
  39.   AltO     = 280;    AltP     = 281;    AltQ     = 272;
  40.   AltR     = 275;    AltS     = 287;    AltT     = 276;
  41.   AltU     = 278;    AltV     = 303;    AltW     = 273;
  42.   AltX     = 301;    AltY     = 277;    AltZ     = 300;
  43.   Alt1     = 376;    Alt2     = 377;    Alt3     = 378;
  44.   Alt4     = 379;    Alt5     = 380;    Alt6     = 381;
  45.   Alt7     = 382;    Alt8     = 383;    Alt9     = 384;
  46.   Alt0     = 385;    AltF1    = 360;    AltF2    = 361;
  47.   AltF3    = 362;    AltF4    = 363;    AltF5    = 364;
  48.   AltF6    = 365;    AltF7    = 366;    AltF8    = 367;
  49.   AltF9    = 368;    AltF10   = 369;
  50.  
  51. IMPLEMENTATION
  52.  
  53. VAR
  54.   CurY1, CurY2 : BYTE;
  55.  
  56. PROCEDURE ShowCursor;
  57.   VAR Regs : Registers;
  58. BEGIN
  59.   Regs.AH := $01;  Regs.CH := CurY1;  Regs.CL := CurY2;
  60.   Intr ($10, Regs)
  61. END;
  62.  
  63. PROCEDURE BlockCursor;
  64.   VAR Regs : Registers;
  65. BEGIN
  66.   Regs.AH := $01;  Regs.CH := 1;  Regs.CL := CurY2;
  67.   Intr ($10, Regs)
  68. END;
  69.  
  70. PROCEDURE NormalCursor;
  71. BEGIN
  72.   ShowCursor
  73. END;
  74.  
  75. PROCEDURE HideCursor;
  76.   VAR Regs : Registers;
  77. BEGIN
  78.   Regs.AH := $01;  Regs.CH := 16;  Regs.CL := 16;
  79.   Intr ($10, Regs)
  80. END;
  81.  
  82. FUNCTION UpString (str : STRING) : STRING;
  83.   VAR i : INTEGER;
  84. BEGIN
  85.   FOR i := 1 TO Length (str) DO
  86.     Str[i] := UpCase (str[i]);
  87.   UpString := str
  88. END;
  89.  
  90. FUNCTION IntToStr (x : INTEGER; n : BYTE) : STRING;
  91.   VAR s : STRING;
  92. BEGIN
  93.   System.Str (x:n, s);
  94.   IntToStr := s
  95. END;
  96.  
  97. FUNCTION LongIntToStr (x : LONGINT; n : BYTE) : STRING;
  98.   VAR s : STRING;
  99. BEGIN
  100.   System.Str (x:n, s);
  101.   LongIntToStr := s
  102. END;
  103.  
  104. FUNCTION KillSpaces (Str : STRING) : STRING;
  105.   VAR i : BYTE;
  106. BEGIN
  107.   i := 1;
  108.   WHILE i<=Length (Str) DO BEGIN
  109.     IF str[i]=' ' THEN Delete (Str, i, 1)
  110.     ELSE Inc (i);
  111.   END;
  112.   KillSpaces := Str;
  113. END;
  114.  
  115. FUNCTION CutLastPath (Str : STRING) : STRING;
  116. BEGIN
  117.   WHILE (Str[Length (Str)]<>'\') AND (Length (Str)>0) DO
  118.     Delete (Str, Length (Str), 1);
  119.   IF Length (Str)>0 THEN
  120.     Delete (Str, Length (Str), 1);
  121.   CutLastPath := Str;
  122. END;
  123.  
  124. BEGIN
  125.   CurY1 := Mem [$40:$61];  CurY2:= Mem [$40:$60]
  126. END.
  127. (* ----------------------------------------------------- *)
  128. (*                Ende von STUFF.PAS                     *)
  129. (* ----------------------------------------------------- *)
  130.