home *** CD-ROM | disk | FTP | other *** search
- Program DemoOfGetInput;
- { KeyBoard routines by Kevin Bales }
-
- Type
- MaxString = String[255];
-
- Var
- Ch: Char;
- Extended: Boolean;
- Xtra: MaxString;
- AllUpCase: Boolean;
-
- Procedure GetChar(VAR Ch: Char; VAR Extended: Boolean);
- Begin
- Extended:=False;
- Repeat Read(Kbd,Ch) Until Ch<>#0;
- If Ch=#27 Then
- Begin
- Extended:=True;
- Repeat Read(Kbd,Ch) Until Ch<>#0;
- End;
- End;
-
- Function GetInput(AllUpCase: Boolean): MaxString;
- Const
- AcceptedChars = ' ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_+-=|\,./;''`[]<>?:"~{}';
- Var
- Ch: Char;
- Extended: Boolean;
- Xtra: String[255];
- AcceptedChar: Integer;
- Ok: Boolean;
- BackSpace: String[3];
- Begin
- BackSpace:=#8+' '+#8;
- Xtra:='';
- Ok:=False;
- Repeat
- GetChar(Ch,Extended);
- If Extended Then
- {This routine prints the extended}
- {codes in highlighted print. You }
- {Do anything with them you want. }
- Begin
- NormVideo; Write(Ch); LowVideo;
- End;
- If Not Extended Then
- Begin
- If Ch=#13 Then Ok:=True;
- If (Ch=#8) And (Length(Xtra)>0) Then
- Begin
- Write(BackSpace);
- Delete(Xtra,Length(Xtra),1);
- End;
- AcceptedChar := Pos(Ch,AcceptedChars);
- If AcceptedChar>0 then
- Begin
- If AllUpCase Then Ch:=UpCase(Ch);
- Write(Ch);
- Xtra:=Xtra+Ch;
- End;
- End;
- Until Ok;
- GetInput:=Xtra;
- End;
-
- Begin
- ClrScr;
- LowVideo;
- Write('Input Something:');
- Xtra:=''; AllUpCase:=True;
- Xtra:=GetInput(AllUpCase);
- WriteLn(''); WriteLn('You Typed: ',Xtra);
- End.
- put Something:');
- X