home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a065 / 1.img / TBPRGS.EXE / TB02.PRG < prev    next >
Encoding:
Text File  |  1992-01-10  |  2.3 KB  |  78 lines

  1.     // Tb02.prg
  2.     //
  3.     // Simple database browse with added cosmetics
  4.     // Compile with /a /m /n /w
  5.  
  6.     #include "Inkey.ch"
  7.  
  8.     // Default column separator
  9.     #define DEF_CSEP  " " + chr(179) + " "
  10.  
  11.     // Default heading separator
  12.     #define DEF_HSEP chr(205) + chr(209) + chr(205)
  13.  
  14.     // Default footing separator
  15.     #define DEF_FSEP chr(205) + chr(207) + chr(205)
  16.  
  17.  
  18.     FUNCTION Tb02
  19.  
  20.     FIELD Lname, Fname, Addr1, Addr2, Addr3, Addr4 IN Tbdbf1
  21.  
  22.     LOCAL oTbr  := TBrowseDb(1, 1, MaxRow() - 1, MaxCol() - 1)
  23.     LOCAL oTbc1 := TBColumnNew("Last name",  {|| Lname })
  24.     LOCAL oTbc2 := TBColumnNew("First name", {|| Fname })
  25.     LOCAL oTbc3 := TBColumnNew("Address 1",  {|| Addr1 })
  26.     LOCAL oTbc4 := TBColumnNew("Address 2",  {|| Addr2 })
  27.     LOCAL oTbc5 := TBColumnNew("Address 3",  {|| Addr3 })
  28.     LOCAL oTbc6 := TBColumnNew("Address 4",  {|| Addr4 })
  29.     LOCAL nKey
  30.     LOCAL lExitRequested
  31.  
  32.       oTbr:colSep  := DEF_CSEP
  33.       oTbr:headSep := DEF_HSEP
  34.       oTbr:footSep := DEF_FSEP
  35.  
  36.       CLEAR SCREEN
  37.       @ 0, 0 TO MaxRow(), MaxCol()
  38.  
  39.       USE Tbdbf1
  40.  
  41.       oTbc1:width := 20
  42.       oTbr:addColumn(oTbc1)
  43.  
  44.       oTbc2:width := 20
  45.       oTbr:addColumn(oTbc2)
  46.  
  47.       oTbr:addColumn(oTbc3)
  48.       oTbr:addColumn(oTbc4)
  49.       oTbr:addColumn(oTbc5)
  50.       oTbr:addColumn(oTbc6)
  51.  
  52.       lExitRequested := .F.
  53.       DO WHILE !lExitRequested
  54.         DO WHILE !oTbr:stabilize()
  55.         ENDDO
  56.         nKey := InKey(0)
  57.  
  58.         DO CASE
  59.           CASE nKey == K_DOWN;       oTbr:down()
  60.           CASE nKey == K_UP;         oTbr:up()
  61.           CASE nKey == K_PGDN;       oTbr:pageDown()
  62.           CASE nKey == K_PGUP;       oTbr:pageUp()
  63.           CASE nKey == K_CTRL_PGUP;  oTbr:goTop()
  64.           CASE nKey == K_CTRL_PGDN;  oTbr:goBottom()
  65.           CASE nKey == K_RIGHT;      oTbr:right()
  66.           CASE nKey == K_LEFT;       oTbr:left()
  67.           CASE nKey == K_HOME;       oTbr:home()
  68.           CASE nKey == K_END;        oTbr:end()
  69.           CASE nKey == K_CTRL_LEFT;  oTbr:panLeft()
  70.           CASE nKey == K_CTRL_RIGHT; oTbr:panRight()
  71.           CASE nKey == K_CTRL_HOME;  oTbr:panHome()
  72.           CASE nKey == K_CTRL_END;   oTbr:panEnd()
  73.           CASE nKey == K_ESC;        lExitRequested := .T.
  74.         ENDCASE
  75.       ENDDO
  76.  
  77.     RETURN NIL
  78.