旼컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴커 � CC.LIB 1.03 -> WHAT'S NEW? � 읕컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴켸 1. PULL-DOWN MENU FUNCTIONS! (IBM CUA/SAA compliant!) 2. SCREEN CONTROL FUNCTIONS 3. DATA DRIVEN DBF UPDATES 4. ARRAY FUNCTIONS 5. KEYBOARD FUNCTION 1. PULL-DOWN MENU FUNCTIONS! (IBM CUA/SAA compliant!) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MENUH() Horizontal MENU TO with highlighted trigger letters MENUV() Vertical MENU TO with highlighted trigger letters MENUPD() Pull-Down Menu with highlighted trigger letters MSGBOX() Display a shadow-boxed dialog box & return response PDM_FSETUP() Read PDM_INIT() (Pull Down Menu) set up values from an ASC file PDM_INIT() Initialize remaining optional PDM PUBLIC arrays PDM_HELP() Default Help Message Box, if no PDM Help function is defined These powerful new menu functions work with our newly released: PDM (Pull Down Menu) Development System: for Clipper S'87. Current release is PDM_105.ZIP. 2. SCREEN CONTROL FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~ SAYATT() Prints a string with attributes SETPOS() Set & Get current cursor screen position SETSCRSTAT() Set & Get the current screen status (row,column,cursor,color) POPMSG() Display a shadow-boxed message on the screen & wait for keypress (now enhanced to allow specification of box type, border color, text color, and restore screen (.T./.F.) after keypress. 3. DATA DRIVEN DBF UPDATES ~~~~~~~~~~~~~~~~~~~~~~~ STR2REC() Replace all fields in a DBF record from a string variable based on the DBF structure! 4. ARRAY FUNCTIONS ~~~~~~~~~~~~~~~ ASTORE() Array initialization by parameter passing (compact source code) ALONGEST() Determine the longest string in an array (opt: within a range) (now enhanced to allow specification of an optional range.) 5. KEYBOARD FUNCTION ~~~~~~~~~~~~~~~~~ CLEARLKEY() Clear the LASTKEY() value *拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙* * PREVIOUS VERSION ENHANCEMENTS *拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙拙* 旼컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴커 � CC.LIB 0.32 -> WHAT'S NEW? � 읕컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴켸 1. SMART! SAVESCREEN()/RESTSCREEN() FUNCTIONS 2. FILE / LINE FUNCTIONS 3. STRING FUNCTIONS 1. SMART! SAVESCREEN()/RESTSCREEN() FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BOXSAVE() Save a screen region, its coordinates, and size BOXREST() Restores a screen region using stored coordinates and size Code example: ~~~~~~~~~~~~~ sv_scrn= BOXSAVE( 02,02,19,79 ) * ... screen changes ... BOXREST( sv_scrn ) && restore to same coordinates * or ... BOXREST( sv_scrn, 03,03 ) && move it! NOTE: DBLBOX() & SHADOWBOX(): 2 existing CC.LIB functions now return a BOXSAVE() string instead of a SAVESCREEN() string! 2. FILE / LINE FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~ FEOF() Detect EOF (End of File) condition Code example: ~~~~~~~~~~~~~ DO WHILE .NOT. FEOF( f_hdl ) ... read ASC text file... ENDDO 3. STRING FUNCTIONS ~~~~~~~~~~~~~~~~ ATNEXT() Find the n'th occurrence of a character in a string Code example: ~~~~~~~~~~~~~ pos= ATNEXT( "a","AaBbAaBb",2 ) && pos= 6 CHRCNT() Character Count - total occurrences of a character in a sting Code example: ~~~~~~~~~~~~~ cnt= CHRCNT( "m","Mommy" ) && cnt = 2 *=============================================================================* 旼컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴커 � CC.LIB 0.31 -> WHAT'S NEW? � 읕컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴켸 1. ARRAY FUNCTIONS: SAVE & RESTORE ARRAYS! 2. FILE / LINE FUNCTIONS 3. DELAY FUNCTION 4. SIZEDBF FUNCTION 1. ARRAY FUNCTIONS: SAVE & RESTORE ARRAYS! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ASAVEC() Saves a character array to a disk file ASAVED() Saves a date array to a disk file ASAVEL() Saves a logical array to a disk file ASAVEN() Saves a numeric array to a disk file ASAVEX() Saves a mixed type array to a disk file ASIZE() Gets the number of elements in an ASAVE() array file AFTYPE() Gets the data type of an ASAVE() array file ARESTC() Restores an ASAVEC() character array from a disk file ARESTD() Restores an ASAVED() date array from a disk file ARESTL() Restores an ASAVEL() logical array from a disk file ARESTN() Restores an ASAVEN() numeric array from a disk file ARESTX() Restores an ASAVEX() mixed type array from a disk file See (1) CC_DEMO.ARR for an example of a CC.LIB array (2) CC_ARRAY.ZIP for array sample code Code example: ~~~~~~~~~~~~~ PRIVATE aRay[3] aRay[1]= "Apple" aRay[2]= "Peaches" aRay[3]= "Pumpkin Pie" * Save it ASAVEC( aRay,"ARAY.ARR" ) * Restore it PRIVATE aRay[ ASIZE("ARAY.ARR") ] PRIVATE typ typ= AFTYPE( aRay ) DO CASE CASE typ == "C" && Character array ARESTC( aRay,"ARAY.ARR" ) CASE typ == "D" && Date array ARESTD( aRay,"ARAY.ARR" ) CASE typ == "L" && Logical array ARESTL( aRay,"ARAY.ARR" ) CASE typ == "N" && Numeric array ARESTN( aRay,"ARAY.ARR" ) CASE typ == "X" && Mixed type array ARESTX( aRay,"ARAY.ARR" ) ENDCASE ? aRay[1] && "Apple" ? aRay[2] && "Peaches" ? aRay[3] && "Pumpkin Pie" 2. FILE / LINE FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~ FWRITELN() Write a sting to an ASCII file with added CR & LF FREADLN() Read a line from an ASCII file up to the CR/LF Use with Clipper's FCREATE(), FOPEN(), FWRITE(), FREAD(), FCLOSE(), FERROR() 3. DELAY FUNCTION ~~~~~~~~~~~~~~ DELAY() Wait x number of seconds or until a key is pressed, without removing the key from the buffer - unlike INKEY()! 4. SIZEDBF FUNCTION ~~~~~~~~~~~~~~~~ SIZEDBF() Adjust the number of records in a fixed size DBF; useful for fixed size or circular buffer systems. *