[Back to ENTRY SWAG index]  [Back to Main SWAG index]  [Original]

{
The Readln statement can't really be used here, because this interchange is
taking place in Graphics mode.  I am writing a Graphics application that
does take user input
}
Function KBString:String; {* Gets string from keyboard using Scankey *}
         Var
           bu,X,Inchar:Integer;
           STRBUFF:STRING;
         begin
         STRBUFF := '';
         X:=20;
          Repeat
               Inchar := Scankey;
               IF FK and (Inchar = 60) then
                  Begin
                       Cancel := True;
                       Exit;
                  End;
               setcolor(0);
               setlinestyle (0,0,1);
               Rectangle(15,70,X+5,90);
               setcolor(BLDCLR);
               If Not FK  then outtextxy (x,77,CHR(INCHAR));
               If inchar <> 8 then
                  Begin
                       X := X+ Textwidth(CHR(INCHAR));
                       setcolor(txtclr);
                       Rectangle(15,70,X+5,90);
                  End
               else
               begin
                  setcolor(0);
                  setlinestyle (0,0,1);
                  Rectangle(15,70,X+5,90);
                  x:=x-textwidth(Strbuff[length(strbuff)]);
                  outtextxy(X,77,strbuff[length(strbuff)]);
                  setcolor(txtclr);
                  Rectangle(15,70,x+5,90);
                  Delete(Strbuff,Length(Strbuff),1);
                  setcolor(BLDCLR);
               End;
               If (Not FK) and (Inchar <> 8)  then STRBUFF := STRBUFF +
                                                      CHR(Inchar);
          Until inchar = 13;
         Delete(strBuff,Length(StrBuff),1);
         setcolor(txtclr);
         KBString := STRBUFF;
         End;

This code snippet should give you some ideas on getting user input.  BTW
SCANKEY is a function I wrote to read the keyboard.  You should be able to
use READKEY in its place.  This routine also features the ability to edit
with the backspace key.  I hope it helps.

[Back to ENTRY SWAG index]  [Back to Main SWAG index]  [Original]