system: You are Genes Soriano, a caller on a 1990s BBS posting in the Clipper message echo. Write like a real BBS user of the era — plain, direct, in your own voice, no modern polish.

user: You are replying to Dario Guzik about "Tbrowse               1/".

They wrote:
DG>...Bip...Bip... BE CAREFULl, This message from Ben Cavanagh to All
DG>   of 11-Apr-97 has been intercepted by ME! Now tell me about TBROWSE
DG> BC> Hello everybody,
DG> BC> I always use DBedit and I want to change for TBrowse, I tried to
DG> BC> but I got a little problem, so if you have an example of a program
DG> BC> TBrowse and want to send it to me, it help me.
DG>It's a bit long so I don't know if it will go complete. Tell me if it
DG>without  a line saying END-bROWSE--
DG>_----------------------------------------------------------------
DG>/***
DG>*
DG>*  Browse.prg
DG>*
DG>*  Database browse function
DG>*
DG>*  Copyright (c) 1990-1993, Computer Associates International Inc.
DG>*  All rights reserved.
DG>*
DG>*  Compile: /n
DG>*
DG>*/
DG>#include "inkey.ch"
DG>#include "setcurs.ch"
DG>// This code block will toggle insert mode and cursor
DG>static bInsToggle := {|| SetCursor( if( ReadInsert( !ReadInsert() ), ;
DG>                                        SC_NORMAL, SC_INSERT ))      }
DG>/***
DG>*
DG>*  Browse( [nTop], [nLeft], [nBottom], [nRight] )
DG>*
DG>*        View, add, change, delete
DG>*
DG>*/
DG>function browse( nTop, nLeft, nBottom, nRight )
DG>local oB, n, lMore, cScrSave, lAppend, lKillAppend,;
DG>      nKey, nCursSave, lGotKey, bKeyBlock
DG>        if ( !Used() )
DG>                // no database in use
DG>                return (.f.)
DG>        end
DG>        if ( Pcount() < 4 )
DG>                nTop    := 1
DG>                nLeft   := 0
DG>                nBottom := maxrow()
DG>                nRight  := maxcol()
DG>        end
DG>        cScrSave := saveScreen(nTop, nLeft, nBottom, nRight)
DG>        // frame window
DG>        @ nTop, nLeft, nBottom, nRight box "+-+|+-+|"
DG>        @ nTop + 3, nLeft say "+"
DG>        @ nTop + 3, nRight say "+"
DG>        // clear status row
DG>        @ nTop + 1, nLeft + 1 say Space(nRight - nLeft - 1)
DG>        // create a TBrowse object for a database
DG>        oB := TBrowseDB(nTop + 2, nLeft + 1, nBottom - 1, nRight - 1)
DG>        oB:headSep := " -"
DG>        oB:skipBlock := {|x| Skipped(x, lAppend)}
DG>        // add one column for each field
DG>        for n := 1 to Fcount()
DG>                oB:addColumn( TBColumnNew(FieldName(n),
DG>FieldBlock(FieldName(n))))
DG>        next
DG>        if ( Eof() )
DG>                go top
DG>        end
DG>        // init
DG>        lAppend := lKillAppend := .F.
DG>        nCursSave := SetCursor(0)
DG>        while ( !oB:stabilize() ) ; end
DG>        if ( LastRec() == 0 )
DG>                // empty file..force append mode
DG>                nKey := K_DOWN
DG>                lGotKey := .t.
DG>        else
DG>                lGotKey := .f.
DG>        end
DG>        lMore := .t.
DG>        while (lMore)
DG>                if ( !lGotKey )
DG>                        // stabilization will be interrupted by any
DG>                        while ( !oB:stabilize() )
DG>                                if ( (nKey := Inkey()) != 0 )
DG>                                        lGotKey := .t.
DG>                                        exit
DG>                                end
DG>                        end
DG>                end
DG>                if ( !lGotKey )
DG>                        // the TBrowse object is stable
DG>                        if ( oB:hitBottom )
DG>                                if ( !lAppend .or. Recno() != LastRec() +
DG>                                        if ( lAppend )
DG>                                                // continue
DG>appending..restore color to current row
DG>                                                oB:refreshCurrent()
DG>                                                while (
DG>!oB:stabilize() ) ; end
DG>                                                // ensure
DG>bottom of file without refresh
DG>                                                go bottom
DG>                                        else
DG>                                                // begin append mode
DG>                                                lAppend := .t.
DG>                                                // turn the cursor on
DG>                                                SetCursor(
DG>if(ReadInsert(), SC_INSERT, SC_NORMAL) )
DG>                                        end
>>> Continued to next message

Write your reply.

assistant: ===========================================================================
 BBS: Eastern Star BBS
Date: 04-18-97 (14:23)             Number: 43
From: DARIO GUZIK                  Refer#: 27
  To: BEN CAVANAGH                  Recvd: NO
Subj: TBROWSE                        Conf: (4) Clipper Co
___------------------------------------------------------------------------
test message transmission
Cavanagh, hope you are having a nice day
earn
with
omes
keystrok
 * SLMR 2.1a * --T-A+G-L-I+N-E--+M-E-A+S-U-R+I-N-G+--G-A+U-G-E--