SP_SBREADER

SBREADER()

  Short:
  ------
  SBREADER() Creates specialized spacebar spinner get reader
  block

  Returns:
  --------
  <bReader> => get reader block for GET

  Syntax:
  -------
  SBREADER(aValues)

  Description:
  ------------
  Creates a get reader block that allows space bar to
  rotate values from an array into the current get.

  Implement by using the SEND keyword for your
  @Say..Get.. statements.

  i.e. @10,10 say blah get blahblah SEND ;
                      reader:=SBREADER(aValues)

  <aValues> is an array of values that are of the same
  type and length as the GET.

  Examples:
  ---------
   // while in the get V1, you will be able to use the spacebar to
   // rotate values from the array

   aValues := {"Section 1","Section 2","Section 3"}
   v1 := "Section 1"
   @10,10 get v1 send reader := sbreader(aValues)
   READ

  Source:
  -------
  S_READRS.PRG

 

SP_PMREADER

PMREADER()

  Short:
  ------
  PMREADER() Creates specialized PLUS/MINUS get reader block

  Returns:
  --------
  <bReader> => get reader block for GET

  Syntax:
  -------
  PMREADER()

  Description:
  ------------
  Creates a get reader block that allows
  increment/decrement of date of numeric values with the plus or minus key.

  Implement by using the SEND keyword for your
  @Say..Get.. statements.

    i.e. @10,10 say blah get blahblah SEND reader:=PMREADER()

  Examples:
  ---------
   // while in the get V1, you will be able to use the +-  keys to
   // increase/decrease the value of V1

   v1 := 100
   @10,10 get v1 SEND reader := pmreader()
   READ

  Source:
  -------
  S_READRS.PRG

 

 

SP_PICKREADER

PICKREADER()

  Short:
  ------
  PICKREADER() Creates specialized picklist reader block

  Returns:
  --------
  <bReader> => get reader block for GET

  Syntax:
  -------
  PICKREADER(aValues,[nTop,nLeft],[nBottom,nRight])

  Description:
  ------------
  Creates a get reader block that is a popup list from
  the array <aValues>.

  Implement by using the SEND keyword for your
  @Say..Get.. statements.

    i.e. @10,10 say blah get blahblah SEND reader:=PICKREADER(aValues)

  <aValues> is an array of values that are of the same
  type and length as the GET.

  [nTop,nLeft] optional top, left coordinates

  [nBottom,nRight] optional bottom/right coordinates

  Examples:
  ---------
   // while in the get V1, you will be presented with a picklist
   // of aValues.

   aValues := {"Section 1","Section 2","Section 3"}
   v1 := "Section 1"
   @10,10 get v1 send reader := pickreader(aValues,10,10)

   READ

  Source:
  -------
  S_READRS.PRG

 

 

SP_GENREADER

GENREADER()

  Short:
  ------
  GENREADER() Creates specialized user defined get reader block

  Returns:
  --------
  <bReader> => get reader block for GET

  Syntax:
  -------
  GENREADER(bBlock,lPass)

  Description:
  ------------
  Creates a get reader block that first passes control
  to code block <bBlock> for each keypress. <bBlock> is passed
  the following values:

       1. lastkey() value
       2. proc name
       3. var name
       4. current get value

  If <bBlock> returns any value but a Nil, the get is
  assigned this value. If a Nil is returned, and <lPass> is True,
  then the key is passed to the regular get handler.

  Implement by using the SEND keyword for your
  @Say..Get.. statements.

    @10,10 say blah get blahblah SEND reader:=GENREADER(bBlock,lPass)

  Or simply refer to the last get added with ATAIL(getlist)

    @10,10 say blah get blahlblah
    ATAIL(getlist):reader := GENREADER(bBlock,lPass)

  Examples:
  ---------
   // while in the get V1, you will be able to type 1, 2 or 3
   // to get a value from the array

   aValues := {"Section 1","Section 2","Section 3"}
   bBlock  := ;
        {  | k|  iif( (nAtk:=at(chr(k),"123")) >  0,aValues[nAtk],nil)  }

   v1 := "Section 1"
   @10,10 get v1 send reader := genreader(bBlock)
   READ

  Source:
  -------
  S_READRS.PRG