[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]