home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE5 / SAMPLES.ZIP / IFCHANGE.PRG < prev    next >
Encoding:
Text File  |  1994-06-24  |  6.0 KB  |  222 lines

  1. PROCEDURE IfChange
  2. *----------------------------------------------------------------------------
  3. * NAME
  4. *   IfChange - Change Directory Dialog box for IDE and Form Painter
  5. *
  6. * DESCRIPTION
  7. *   Allows the user to change the active directory.
  8. *----------------------------------------------------------------------------
  9.  
  10.     PRIVATE cDir, ret, lVoid
  11.  
  12.     cDir = SET( "DIRECTORY" )
  13.     
  14. #include "ifchange.dfm"
  15.  
  16.     fChDir.Action = .F.
  17.  
  18.     DO BldDirs WITH fChDir.lbDir
  19.  
  20.     lVoid = fChdir.lbDir.SetFocus()
  21.     ret = fChDir.READMODAL()
  22.  
  23.     IF .NOT. fChDir.Action
  24.         cDir = fChDir.Revert
  25.         SET DIRECTORY TO &cDir
  26.     ENDIF
  27.  
  28.     lVoid = fChDir.RELEASE()
  29.     RELEASE fChDir
  30.     RELEASE a___Dir
  31.  
  32. RETURN
  33.  
  34. PROCEDURE OCChange
  35. *----------------------------------------------------------------------------
  36. * NAME
  37. *   OCChange - OnClick event handler for pbChange pushbutton
  38. *
  39. *----------------------------------------------------------------------------
  40.     PRIVATE cNewPath, lExact, cPath, oWhich, lUpdated
  41.  
  42.     *-----------------------------
  43.     *-- Check to see who had focus
  44.     *-----------------------------
  45.     oWhich = Form.ActiveControl()
  46.     lUpdated = .F.
  47.     DO CASE
  48.         CASE oWhich = Form.lbDir
  49.             cNewPath = Form.lbDir.Value
  50.             DO CASE
  51.                 CASE m->cNewPath == "\"
  52.                     cPath = LEFT( SET( "DIRECTORY" ), 2 ) + "\"
  53.                     SET DIRECTORY TO &cPath
  54.             
  55.                 CASE m->cNewPath == ".."
  56.                     SET DIRECTORY TO ..
  57.             
  58.                 OTHERWISE
  59.                     cPath = SET( "DIRECTORY" )
  60.                     IF RIGHT( m->cPath, 1 ) <> "\"
  61.                         cPath = m->cPath + "\"
  62.                     ENDIF
  63.                     cPath = m->cPath + TRIM( m->cNewPath )
  64.                     SET DIRECTORY TO &cPath
  65.             ENDCASE
  66.             lUpdated = .T.
  67.  
  68.         CASE oWhich = Form.efDir
  69.             cNewPath = Form.efDir.Value
  70.             nError = 0
  71.             ON ERROR nError = ERROR()
  72.             SET DIRECTORY TO &cNewPath
  73.             ON ERROR
  74.             IF m->nError > 0
  75.                 This.Value = This.StartValue
  76.             ENDIF
  77.             lUpdated = .T.
  78.     ENDCASE
  79.  
  80.     IF m->lUpdated
  81.         Form.efDir.Value = LEFT( SET( "DIRECTORY" ) + SPACE( 80 ), 80 )
  82.         Form.efDir.Width = 31
  83.  
  84.         DO BldDirs WITH fChDir.lbDir
  85.     ENDIF
  86.  
  87. RETURN
  88. *-- EOP: OCChange
  89.  
  90.  
  91. FUNCTION VAefDir
  92. *----------------------------------------------------------------------------
  93. * NAME
  94. *   VAefDir - Valid event handler for efDir EntryField
  95. *
  96. *----------------------------------------------------------------------------
  97.     PRIVATE cNewPath, nError
  98.  
  99.     cNewPath = TRIM( This.Value )
  100.     nError = 0
  101.     ON ERROR nError = ERROR()
  102.     SET DIRECTORY TO &cNewPath
  103.     ON ERROR
  104.     IF m->nError > 0
  105.         This.Value = This.StartValue
  106.         RETURN .F.
  107.     ENDIF
  108.  
  109.     This.Value = LEFT( SET( "DIRECTORY" ) + SPACE( 80 ), 80 )
  110.     This.Width = 31
  111.  
  112.     DO BldDirs WITH fChDir.lbDir
  113.  
  114. RETURN  .T.
  115. *-- EOP: VAefDir WITH 
  116.  
  117. PROCEDURE OGefDir
  118. *----------------------------------------------------------------------------
  119. * NAME
  120. *   OGefDir - OnGotFocus event handler for efDir EntryField
  121. *
  122. *----------------------------------------------------------------------------
  123.     This.StartValue = This.Value
  124.     Form.pbOk.Default = .T.
  125.  
  126. RETURN
  127. *-- EOP: OGefDir
  128.  
  129. PROCEDURE OLefDir
  130. *----------------------------------------------------------------------------
  131. * NAME
  132. *   OLefDir - 
  133. *
  134. * DESCRIPTION
  135. *
  136. *----------------------------------------------------------------------------
  137.     Form.pbChange.Default = .T.
  138.  
  139.  
  140. RETURN
  141. *-- EOP: OLefDir
  142.  
  143.  
  144. PROCEDURE OCRevert
  145. *----------------------------------------------------------------------------
  146. * NAME
  147. *   OCRevert - OnClick event handler for pbRevert PushButton
  148. *
  149. *----------------------------------------------------------------------------
  150.     PRIVATE cDir
  151.  
  152.     cDir = Form.Revert
  153.  
  154.     SET DIRECTORY TO &cDir
  155.  
  156.     Form.efDir.Value = LEFT( SET( "DIRECTORY" ) + SPACE( 80 ), 80 )
  157.     Form.efDir.Width = 31
  158.  
  159.     DO BldDirs WITH fChDir.lbDir
  160.  
  161. RETURN
  162. *-- EOP: OCRevert 
  163.  
  164. PROCEDURE DirOk
  165. *----------------------------------------------------------------------------
  166. * NAME
  167. *   DirOk - 
  168. *
  169. * DESCRIPTION
  170. *
  171. *----------------------------------------------------------------------------
  172.     PRIVATE cNewPath, nError, lVoid
  173.  
  174.     cNewPath = TRIM( Form.efDir.Value )
  175.     nError = 0
  176.     ON ERROR nError = ERROR()
  177.     SET DIRECTORY TO &cNewPath
  178.     ON ERROR
  179.     IF m->nError > 0
  180.         DO ErrorMsg WITH MESSAGE()
  181.     ELSE
  182.         lVoid = Form.Close()
  183.         Form.Action = .T.
  184.     ENDIF
  185.  
  186.  
  187. RETURN
  188. *-- EOP: DirOk
  189. *'---------------------------------------------------------------------------
  190. *' $Log:   /cms/dav.v/src/ide/ifchange.prg,v  $ 
  191. *'
  192. *'   Rev 1.7   08 Jun 1994 19:07:32   bramos
  193. *'*'  99999   When focus is on Dir Name, Change should use the entryfield
  194. *'*'          value and not the listbox. [bramos]
  195. *'*'  99999   Add m-> prefix to memvars.
  196. *'
  197. *'   Rev 1.6   02 Jun 1994 21:03:58   bramos
  198. *'*'  71372   Make sure that ON ERROR is set before doing the 
  199. *'*'          change directory. [bramos]
  200. *'*'  99999   Make OK the default when entryfield has focus.
  201. *'
  202. *'   Rev 1.5   27 May 1994 15:37:48   bramos
  203. *'*'  71079   Remove code to call help the old way. [bramos]
  204. *'
  205. *'   Rev 1.4   23 May 1994 19:05:28   bramos
  206. *'*'  99999   Remove talk code correctly.
  207. *'
  208. *'   Rev 1.3   23 May 1994 19:26:34   bramos
  209. *'  70935   Privatize memvars. [bramos]
  210. *'
  211. *'   Rev 1.2   22 Apr 1994 19:26:34   bramos
  212. *'*'  69970   Have focus be in the list box on start-up. [bramos]
  213. *'
  214. *'   Rev 1.1   18 Mar 1994 11:52:10   bramos
  215. *'*'  DEV     Break dialog box code out to .DFM [bramos]
  216. *'
  217. *'   Rev 1.0   01 Mar 1994 19:47:12   danm
  218. *'*'   DEV    Initial version for IDE prototype. [bramos, dveale]
  219. *'
  220. *'---------------------------------------------------------------------------
  221.  
  222.