Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Nanforum Toolkit v2.1 Reference Guide - <b>ft_aredit()</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FT_AREDIT()
 2 dimensional array editing function using TBrowse
------------------------------------------------------------------------------

 Syntax

      FT_AREDIT( <nTop>, <nLeft>, <nBottom>, <nRight>, <Array Name>, ;
         <nElem>, <aHeadings>, <aBlocks> [, <bGetFunc> ] ) -> xElement

 Arguments

     <nTop>, <nLeft>, <nBottom>, <nRight> are coordinates for TBrowse

     <Array Name> is name of 2 dimensional to array edit

     <nElem>      is pointer for element in array

     <aHeadings>  is array of column headings

     <aBlocks>    is array of blocks describing each array element

     [ <bGetFunc> ] is get editing function for handling individual elements

 Returns

     Value of element positioned on when exit FT_AREDIT()
     The type of this value depends on what is displayed.

 Description

     This function allows you to position yourself in an array,
     add and delete rows with the <F7> and <F8> keys,
     and pass a UDF with information to edit the individual gets.

 Examples

      FT_AREDIT(3, 5, 18, 75, ar, @nElem, aHeadings, aBlocks)

      This example will allow you to browse a 2 dimensional array
      But you can't edit it since there is no GetBlock UDF
      It allows the user to hit ENTER to select an element or ESC to
      return 0

      * This second example shows how to edit a 2 dimensional array
      * as might be done to edit an invoice

            LOCAL i, ar[3, 26], aBlocks[3], aHeadings[3]
            LOCAL nElem := 1, bGetFunc

      * Set up two dimensional array "ar"

            FOR i = 1 TO 26
               ar[1, i] := i          //  1  ->  26  Numeric
               ar[2, i] := CHR(i+64)  // "A" -> "Z"  Character
               ar[3, i] := CHR(91-i)  // "Z" -> "A"  Character
             NEXT i

      * SET UP aHeadings Array for column headings

            aHeadings  := { "Numbers", "Letters", "Reverse" }

      * Need to set up individual array blocks for each TBrowse column

        aBlocks[1] := {|| STR(ar[1, nElem], 2) } // prevent default 10 spaces
        aBlocks[2] := {|| ar[2, nElem] }
        aBlocks[3] := {|| ar[3, nElem] }

      * set up TestGet() as the passed Get Function so FT_ArEdit knows how
      * to edit the individual gets.

        bGetFunc   := { | b, ar, nDim, nElem | TestGet(b, ar, nDim, nElem) }
        SetColor( "N/W, W/N, , , W/N" )
        CLEAR SCREEN
        FT_AREDIT(3, 5, 18, 75, ar, @nElem, aHeadings, aBlocks, bGetFunc)


 Source: AREDIT.PRG

 Author: James J. Orlowski, M.D.

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson