home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------- *)
- (* STUFF.PAS *)
- (* Ansammlung von kleinen Prozeduren, die öfter gebraucht*)
- (* werden und in kein Objekt gehören, und von Tastatur- *)
- (* codes. *)
- (* (c) 1991 by R.Reichert & toolbox *)
- (* ----------------------------------------------------- *)
- UNIT Stuff;
-
- INTERFACE
-
- USES Dos;
-
- PROCEDURE ShowCursor;
- PROCEDURE BlockCursor;
- PROCEDURE NormalCursor;
- PROCEDURE HideCursor;
- FUNCTION UpString (str : STRING) : STRING;
- FUNCTION IntToStr (x : INTEGER; n : BYTE) : STRING;
- FUNCTION LongIntToStr (x : LONGINT; n : BYTE) : STRING;
- FUNCTION KillSpaces (Str : STRING) : STRING;
- FUNCTION CutLastPath (Str : STRING) : STRING;
-
- CONST { Tastaturcode-Auswahl: }
- ESC = 27; Enter = 13; Space = 32;
- BackSpace= 8; Tab = 9; ShiftTab = 271;
- Del = 339; Ins = 338; CtrlE = 5;
- CtrlX = 24; CtrlS = 19; CtrlD = 4;
- CtrlR = 18; CtrlC = 3; CtrlY = 25;
- CtrlF5 = 354; CtrlHome = 375; CtrlEnd = 373;
- CtrlLeft = 371; CtrlRight= 372; CurLeft = 331;
- CurRight = 333; CurUp = 328; CurDown = 336;
- CurHome = 327; CurEnd = 335; CurPgUp = 329;
- CurPgDn = 337; AltA = 286; AltB = 304;
- AltC = 302; AltD = 288; AltE = 274;
- AltF = 289; AltG = 290; AltH = 291;
- AltI = 279; AltJ = 292; AltK = 293;
- AltL = 294; AltM = 306; AltN = 305;
- AltO = 280; AltP = 281; AltQ = 272;
- AltR = 275; AltS = 287; AltT = 276;
- AltU = 278; AltV = 303; AltW = 273;
- AltX = 301; AltY = 277; AltZ = 300;
- Alt1 = 376; Alt2 = 377; Alt3 = 378;
- Alt4 = 379; Alt5 = 380; Alt6 = 381;
- Alt7 = 382; Alt8 = 383; Alt9 = 384;
- Alt0 = 385; AltF1 = 360; AltF2 = 361;
- AltF3 = 362; AltF4 = 363; AltF5 = 364;
- AltF6 = 365; AltF7 = 366; AltF8 = 367;
- AltF9 = 368; AltF10 = 369;
-
- IMPLEMENTATION
-
- VAR
- CurY1, CurY2 : BYTE;
-
- PROCEDURE ShowCursor;
- VAR Regs : Registers;
- BEGIN
- Regs.AH := $01; Regs.CH := CurY1; Regs.CL := CurY2;
- Intr ($10, Regs)
- END;
-
- PROCEDURE BlockCursor;
- VAR Regs : Registers;
- BEGIN
- Regs.AH := $01; Regs.CH := 1; Regs.CL := CurY2;
- Intr ($10, Regs)
- END;
-
- PROCEDURE NormalCursor;
- BEGIN
- ShowCursor
- END;
-
- PROCEDURE HideCursor;
- VAR Regs : Registers;
- BEGIN
- Regs.AH := $01; Regs.CH := 16; Regs.CL := 16;
- Intr ($10, Regs)
- END;
-
- FUNCTION UpString (str : STRING) : STRING;
- VAR i : INTEGER;
- BEGIN
- FOR i := 1 TO Length (str) DO
- Str[i] := UpCase (str[i]);
- UpString := str
- END;
-
- FUNCTION IntToStr (x : INTEGER; n : BYTE) : STRING;
- VAR s : STRING;
- BEGIN
- System.Str (x:n, s);
- IntToStr := s
- END;
-
- FUNCTION LongIntToStr (x : LONGINT; n : BYTE) : STRING;
- VAR s : STRING;
- BEGIN
- System.Str (x:n, s);
- LongIntToStr := s
- END;
-
- FUNCTION KillSpaces (Str : STRING) : STRING;
- VAR i : BYTE;
- BEGIN
- i := 1;
- WHILE i<=Length (Str) DO BEGIN
- IF str[i]=' ' THEN Delete (Str, i, 1)
- ELSE Inc (i);
- END;
- KillSpaces := Str;
- END;
-
- FUNCTION CutLastPath (Str : STRING) : STRING;
- BEGIN
- WHILE (Str[Length (Str)]<>'\') AND (Length (Str)>0) DO
- Delete (Str, Length (Str), 1);
- IF Length (Str)>0 THEN
- Delete (Str, Length (Str), 1);
- CutLastPath := Str;
- END;
-
- BEGIN
- CurY1 := Mem [$40:$61]; CurY2:= Mem [$40:$60]
- END.
- (* ----------------------------------------------------- *)
- (* Ende von STUFF.PAS *)
- (* ----------------------------------------------------- *)