# ACHOICE()

Allows selection of an element from an array

Syntax

  ACHOICE(<nTop>, <nLeft>, <nBottom>, <nRight>, <acMenuItems>, [<alSelableItems> | <lSelableItems>], [<cUserFunction> | <bUserBlock>], [<nInitialItem>], [<nWindowRow>]) --> nPosition

Arguments

  <nTop> - topmost row used to display array (default 0)
  <nLeft> - leftmost row used to display array (default 0)
  <nBottom> - bottommost row used to display array (default MAXROW())
  <nRight> - rightmost row used to display array (default MAXCOL())
  <acMenuItems> - the character array of items from which to select
  <alSelableItems> - an array of items, either logical or character, which is used to determine if a particular item may be selected. If the type of a given item is character, it is macro evaluated, and the result is expected to be a logical. A value of .T. means that the item may be selected, .F. that it may not. (See next argument: lSelectableItems)
  <lSelableItems> - a logical value which is used to apply to all items in acMenuItems. If .T., all items may be selected; if .F., none may be selected. (See previous argument: alSelectableItems) Default .T.
  <cUserFunction> - the name of a function to be called which may affect special processing of keystrokes. It is specified without parentheses or parameters. When it is called, it will be supplied with the parameters: nMode, nCurElement, and nRowPos. Default NIL.
  <bUserBlock> - a codeblock to be called which may affect special processing of keystrokes. It should be specified in the form {|nMode, nCurElemenet, nRowPos| ; MyFunc(nMode, nCurElemenet, nRowPos) }. Default NIL.
  <nInitialItem> - the number of the element to be highlighted as the current item when the array is initially displayed. 1 origin. Default 1.
  <nWindowRow> - the number of the window row on which the initial item is to be displayed. 0 origin. Default 0.

Returns

  <nPosition> - the number of the item to be selected, or 0 if the selection was aborted.

Description

  Allows selection of an element from an array. Please see standard Clipper documentation for ACHOICE for additional detail.

Examples

          aItems := { "One", "Two", "Three" }
          nChoice := ACHOICE( 10, 10, 20, 20, aItems )
          IF nChoice == 0
              ? "You did not choose an item"
          ELSE
              ? "You chose element " + LTRIM( STR( nChoice ) )
              ?? " which has a value of " + aItems[ nChoice ]
          ENDIF

    Files

    Library is rtl

    See Also

    MENU TO