DOCUMENT:Q98367 23-OCT-1999 [foxmisc] TITLE :How to Update Scrollable Lists in FoxBASE+/Mac PRODUCT :Microsoft Fox Miscellaneous Products PROD/VER:MACINTOSH:2.01 OPER/SYS: KEYWORDS: ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft FoxBASE+ for Macintosh, version 2.01 ------------------------------------------------------------------------------- SUMMARY ======= The code example below shows one method of updating a scrollable list after an array element has been modified. MORE INFORMATION ================ WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THIS ARTICLE IS AT YOUR OWN RISK. Microsoft provides this code "as is" without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. This code example uses the following procedures to update the scrollable list: GETIT "Grabs" the element out of the array. SHOWIT Shows the element on the screen for editing. PUTITBACK Puts the modified element in the scrollable list. UPDATESCRN Updates the screen. NOTE: Because FoxBASE+/Mac does not allow for nested READs, the READ must be terminated before the DO SHOWIT and DO UPDATESCRN commands can be issued. *Start with a clean environment. CLEAR CLEAR ALL SET TALK OFF SET BELL OFF *The name of this file is FARM.PRG. SET PROCEDURE TO farm *Set up memory variables for the GETs. DIMENSION farm_var(4) STORE "cow" TO farm_var(1) STORE "pig" TO farm_var(2) STORE "chicken" TO farm_var(3) STORE "horse" TO farm_var(4) STORE 0 to whichanimal,complete STORE space(15) TO editanimal,mvar STORE .F. TO done,flag1,flag2 ON KEY=13 DO dostopit DO WHILE ! done SCREEN 1 TOP @ PIXELS 80,80 GET whichanimal FROM farm_var SIZE 80,80; VALID getit(whichanimal) @ PIXELS 160,200 GET mvar @ PIXELS 200,140 GET complete PICTURE "@*H Done"; VALID stopit(complete) READ IF flag1 && When flag1 is true, DO showit && do procedure(s) to show and edit choice. ENDIF IF flag2 && When flag2 is true, DO updatescrn && do procedure to update the screen. ENDIF ENDDO *Procedure to grab the element out of the array PROCEDURE getit PARAMETER theanimal STORE farm_var(theanimal) TO editanimal STORE .T. TO flag1 && Set flag1 to true to do showit. KEYBOARD CHR(23) && Terminate the READ. RETURN .T. *Procedure to show the element on the screen for editing PROCEDURE showit @ PIXELS 200,140 CLEAR && Hide the Done text button. @ PIXELS 160,200 CLEAR && Hide mvar. *Keep the GETs the same length. x=15 - LEN(editanimal) editanimal = editanimal + space(x) @ PIXELS 120,200 GET editanimal VALID putitback(editanimal) READ RETURN *Procedure to replace the element in the scrollable field PROCEDURE putitback PARAMETER manimal STORE TRIM(LOWER(manimal)) TO farm_var(whichanimal) STORE .F. TO flag1 && Do not go through PROCEDURE showit again. STORE .T. TO flag2 && Set flag2 true to do updatescrn. KEYBOARD CHR(23) && Terminate READ. RETURN .T. *Procedure to the update the screen PROCEDURE updatescrn CLEAR KEYBOARD CHR(9) && TAB to next field. STORE .F. TO flag2 && Do not go through PROCEDURE updatescrn again. RETURN *Procedure to stop the program with a RETURN PROCEDURE dostopit STORE 1 TO complete DO stopit WITH complete *Procedure to stop the program PROCEDURE stopit PARAMETER mcomplete IF mcomplete=1 *Restore the environment. ON KEY CLEAR ALL SCREEN 2 TOP OFF SCREEN 1 DELETE SCREEN 1 TOP CANCEL ENDIF *End program. Additional query words: 2.01 scroll list ====================================================================== Keywords : Technology : kbHWMAC kbOSMAC kbAudDeveloper kbFoxproSearch kbFoxBASE201Mac kbFoxBASESearch Version : MACINTOSH:2.01 ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 1999.