home *** CD-ROM | disk | FTP | other *** search
/ World Business - Telecomm… & Trade Directories PTC / PTC3.iso / SETUP1.CAB / DMOVIE.APP (.txt) < prev    next >
MS Visual FoxPro App  |  2000-02-24  |  440KB  |  12,109 lines

  1. dmovie
  2. DMOVIE
  3. MAINHWNDK
  4. _WHTOHWNDR
  5. _WONTOPY
  6. PLATFORM
  7. UNIQUEID
  8. TIMESTAMP
  9. CLASS
  10. CLASSLOC
  11. BASECLASS
  12. OBJNAME
  13. PARENT
  14. PROPERTIES
  15. PROTECTED
  16. METHODS
  17. OBJCODE
  18. RESERVED1
  19. RESERVED2
  20. RESERVED3
  21. RESERVED4
  22. RESERVED5
  23. RESERVED6
  24. RESERVED7
  25. RESERVED8
  26.  COMMENT Screen              
  27.  WINDOWS _S2C1AGK0J 642297105
  28.  WINDOWS _S2C1AGK0K 676822574
  29.  WINDOWS _01I0XR9A7 676822432
  30.  WINDOWS _S2C1AGK0J 676822453
  31.  WINDOWS _SA60VGAC6 676822453
  32.  WINDOWS _S2C1AGK0J 676822432
  33.  WINDOWS _S2C1AGK0J 676822453_
  34.  WINDOWS _01B0ODN4U 676822453
  35.  WINDOWS _01I0X3II6 676822514
  36.  COMMENT RESERVED            
  37. VERSION =   3.00
  38. dataenvironment
  39. dataenvironment
  40. Dataenvironment
  41. Name = "Dataenvironment"
  42. Form1
  43. ScaleMode = 3
  44. Top = 20
  45. Left = 38
  46. Height = 380
  47. Width = 420
  48. ShowWindow = 1
  49. DoCreate = .T.
  50. BorderStyle = 2
  51. Caption = "Video"
  52. ControlBox = .F.
  53. Closable = .F.
  54. WindowType = 1
  55. WindowState = 0
  56. BackColor = 0,64,128
  57. Name = "Form1"
  58. %PROCEDURE Activate
  59. ENDPROC
  60. Activate,
  61. shape
  62. shape
  63. Shape1
  64. Form1
  65. TTop = 24
  66. Left = 36
  67. Height = 265
  68. Width = 349
  69. SpecialEffect = 0
  70. Name = "Shape1"
  71. commandbutton
  72. commandbutton
  73. Command1
  74. Form1
  75. AutoSize = .F.
  76. Top = 300
  77. Left = 312
  78. Height = 59
  79. Width = 72
  80. Picture = icons\dooropen.ico
  81. Caption = "Return"
  82. Name = "Command1"
  83. 2PROCEDURE Click
  84. thisform.release
  85. ENDPROC
  86. THISFORM
  87. RELEASE
  88. Click,
  89. commandbutton
  90. commandbutton
  91. Command7
  92. Form1
  93. tTop = 300
  94. Left = 204
  95. Height = 60
  96. Width = 72
  97. Picture = icons\msgbox01.ico
  98. Caption = "Pause"
  99. Name = "Command7"
  100. TPROCEDURE Click
  101. thisform.ivoclar.pausevideo
  102. thisform.kontron.pausevideo
  103. ENDPROC
  104. THISFORM
  105. IVOCLAR
  106. PAUSEVIDEO
  107. KONTRON
  108. Click,
  109. _videoplayer
  110. ..\..\klassen\_multimedia.vcx
  111.     container
  112. kontron
  113. Form1
  114. Top = 36
  115. Left = 50
  116. Width = 320
  117. Height = 240
  118. BackStyle = 1
  119. Enabled = .F.
  120. Visible = .F.
  121. cfilename = (normalpfad+"movie\kontron1.avi")
  122. autoplay = .F.
  123. autorepeat = .F.
  124. Name = "kontron"
  125. tmrCheckMode.Name = "tmrCheckMode"
  126. commandbutton
  127. commandbutton
  128. Command2
  129. Form1
  130. tTop = 300
  131. Left = 36
  132. Height = 60
  133. Width = 73
  134. Picture = icons\arw01rt.ico
  135. Caption = "Kontron"
  136. Name = "Command2"
  137. PROCEDURE Click
  138. *thisform.video.cfilename=normalpfad+"movie\kontron1.avi"
  139. *!*    thisform.video.closevideo()
  140. *!*    thisform.video.cfilename="O:\ptccd\bmp\movie\kontron1.avi"
  141. *!*    thisform.video.playvideo
  142. thisform.ivoclar.pausevideo
  143. thisform.kontron.pausevideo
  144. thisform.ivoclar.pausevideo
  145. thisform.kontron.pausevideo
  146. thisform.ivoclar.enabled=.t.
  147. thisform.ivoclar.visible=.t.
  148. thisform.kontron.enabled=.t.
  149. thisform.kontron.visible=.t.
  150. thisform.kontron.playvideo
  151. ENDPROC
  152. THISFORM
  153. IVOCLAR
  154. PAUSEVIDEO
  155. KONTRON
  156. ENABLED
  157. VISIBLE    
  158. PLAYVIDEO
  159. Click,
  160. commandbutton
  161. commandbutton
  162. Command3
  163. Form1
  164. uTop = 300
  165. Left = 120
  166. Height = 60
  167. Width = 73
  168. Picture = icons\arw01rt.ico
  169. Caption = "Ivoclar"
  170. Name = "Command3"
  171. PROCEDURE Click
  172. *!*    thisform.video.closevideo()
  173. *!*    thisform.video.cfilename="O:\ptccd\bmp\movie\ivoclar.avi"
  174. *!*    *thisform.video.cfilename=normalpfad+"movie\ivoclar.avi"
  175. *!*    thisform.video.playvideo
  176. thisform.ivoclar.pausevideo
  177. thisform.kontron.pausevideo
  178. thisform.ivoclar.pausevideo
  179. thisform.kontron.pausevideo
  180. thisform.kontron.enabled=.f.
  181. thisform.kontron.visible=.f.
  182. thisform.ivoclar.enabled=.t.
  183. thisform.ivoclar.visible=.t.
  184. thisform.ivoclar.playvideo
  185. ENDPROC
  186. THISFORM
  187. IVOCLAR
  188. PAUSEVIDEO
  189. KONTRON
  190. ENABLED
  191. VISIBLE    
  192. PLAYVIDEO
  193. Click,
  194. _videoplayer
  195. ..\..\klassen\_multimedia.vcx
  196.     container
  197. ivoclar
  198. Form1
  199. Top = 37
  200. Left = 50
  201. Width = 320
  202. Height = 240
  203. BackStyle = 1
  204. SpecialEffect = 2
  205. cfilename = (normalpfad+"movie\ivoclar.avi")
  206. autorepeat = .F.
  207. Name = "ivoclar"
  208. tmrCheckMode.Name = "tmrCheckMode"
  209. !Arial, 0, 9, 5, 15, 12, 16, 3, 0
  210. wwwwpwwwwp
  211. wwwwwwwwwwwwwwp
  212. wwwwwwwwwwwwwwp
  213. wwwwww
  214. wwwwww
  215. PLATFORM
  216. UNIQUEID
  217. TIMESTAMP
  218. CLASS
  219. CLASSLOC
  220. BASECLASS
  221. OBJNAME
  222. PARENT
  223. PROPERTIES
  224. PROTECTED
  225. METHODS
  226. OBJCODE
  227. RESERVED1
  228. RESERVED2
  229. RESERVED3
  230. RESERVED4
  231. RESERVED5
  232. RESERVED6
  233. RESERVED7
  234. RESERVED8
  235.  COMMENT Class               
  236.  WINDOWS _RA20UPS3F 612863321f
  237.  WINDOWS _RA20XBHSA 612863321
  238.  COMMENT RESERVED            
  239.  WINDOWS _RA20UPS3F 612863328
  240.  WINDOWS _RA20XBHSA 609327833s
  241.  COMMENT RESERVED            
  242. VERSION =   3.00
  243. _videoplayer
  244. getmcierror^
  245. Pixels
  246. Class
  247. _container
  248. _videoplayer
  249. STATUS 
  250.  MODE
  251. stopped
  252. PARENT
  253. MCIALIAS
  254. DOMCI    
  255. PLAYSOUND
  256. Timer,
  257. PROCEDURE Timer
  258. LOCAL cCmd
  259. cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
  260. IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
  261.     THIS.PARENT.playVideo
  262. ENDIF
  263. ENDPROC
  264. FTop = 96
  265. Left = 120
  266. Height = 23
  267. Width = 23
  268. Name = "tmrCheckMode"
  269. _videoplayer
  270. tmrCheckMode
  271. timer
  272. timer
  273. mcierror Specifies the result of the last MCI command executed.
  274. mcierrorstring Stores the error string from the last MCI command executed.
  275. autoopen Specifies whether the video file specified should be automatically opened when the class is created.
  276. mcialias Specifies the alias for the video file when calling MCI commands.  If empty, the name of the file is used.
  277. autoplay Specifies whether the video file should automatically play after opening.
  278. autorepeat If .T., video will continuously play
  279. controlsource Specifies the source of data to which an object is bound.
  280. cfilename Specifies the video file associated with the Video Frame.
  281. *domci Executes a MCI command.
  282. *getmcierror Stores the last MCI error into properties of the class.
  283. *openvideo Opens the video file and shows it.
  284. *playvideo Plays the currently loaded video.
  285. *pausevideo Pauses a currently playing video.
  286. *showmcierror Displays the result of the last MCI command in a messagebox.
  287. *closevideo Closes the video file and releases all resources.
  288. *setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
  289. CMCICMD
  290. CRETSTRING    
  291. NRETVALUE
  292. MCISENDSTRING
  293. GETMCIERROR
  294. cErrorb
  295. *ERROR*
  296. cErrorb
  297. CERROR
  298. NERROR
  299. CERRORSTRING
  300. MCIGETERRORSTRING
  301. MCIERROR
  302. MCIERRORSTRING!
  303. MCIERROR
  304. MCIERRORSTRING~
  305. START
  306. STATUS 
  307.  length
  308. STATUS 
  309.  READY
  310. SEEK 
  311. CPOSITION
  312. CALIAS    
  313. NPOSITION
  314. CPOSCMD
  315. NMEDIALENGTH
  316. MCIALIAS
  317. DOMCIq
  318. No filename or control source specified!
  319. cFileName = ALLTRIM(&controlSource)
  320. STATUS 
  321.  READY
  322. CLOSE 
  323.  WAIT
  324. OPEN "
  325. " alias 
  326.  WAIT
  327.  time format milliseconds
  328. CFILENAME
  329. CALIAS
  330. CONTROLSOURCE
  331. MCIALIAS
  332. MOUSEPOINTER
  333. DOMCI
  334. MCIERROR
  335. MCIERRORSTRING
  336. AUTOPLAY    
  337. PLAYSOUND
  338. STATUS 
  339.  mode
  340. playing
  341. PAUSE 
  342. CALIAS
  343. MCIALIAS
  344. DOMCI
  345. MCIERROR
  346. SHOWMCIERROR
  347. AUTOREPEAT
  348. TMRCHECKMODE
  349. INTERVAL!
  350. STATUS 
  351.  length
  352. STATUS 
  353.  position
  354. SEEK 
  355.  to start WAIT
  356. PLAY 
  357. CALIAS
  358. NMEDIALENGTH
  359. NMEDIAPOSITION
  360. MCIALIAS
  361. DOMCI
  362. MCIERROR
  363. SHOWMCIERROR
  364. AUTOREPEAT
  365. TMRCHECKMODE
  366. INTERVAL
  367. STATUS 
  368.  READY
  369. CLOSE 
  370.  WAIT
  371. MCIALIAS
  372. DOMCI
  373. MCIERROR
  374. SHOWMCIERROR
  375. AUTOREPEAT
  376. TMRCHECKMODE
  377. INTERVAL
  378. opensound
  379. Invalid controlSource specified.
  380. NERROR
  381. CMETHOD
  382. NLINE#
  383. AUTOOPEN    
  384. OPENSOUND
  385. mciSendString
  386. WinMM.DLL
  387. mciGetErrorString
  388. WINMM.DLL
  389. SetWindowPos
  390. User32
  391. VISIBLE
  392. MCISENDSTRING
  393. WINMM
  394. MCIGETERRORSTRING
  395. SETWINDOWPOS
  396. USER32
  397. CLOSESOUND
  398. domci,
  399. getmcierror
  400. showmcierrorW
  401. setposition
  402. opensoundp
  403. pausesoundg
  404. playsound|
  405. closesound
  406. ErrorH
  407. Refresh
  408. Init,
  409. Destroy
  410. STATUS 
  411.  MODE
  412. stopped
  413. PARENT
  414. MCIALIAS
  415. DOMCI    
  416. PLAYVIDEO
  417. Timer,
  418.     _base.vcx
  419.     _base.vcx
  420.     container
  421. Width = 33
  422. Height = 36
  423. BorderWidth = 0
  424. Visible = .F.
  425. BackColor = 0,128,255
  426. mcierror = 0
  427. mcierrorstring = 
  428. autoopen = .T.
  429. mcialias = 
  430. autoplay = .T.
  431. autorepeat = .T.
  432. controlsource = 
  433. cfilename = 
  434. Name = "_soundplayer"
  435. timer
  436. Width = 201
  437. Height = 133
  438. BorderWidth = 0
  439. Visible = .F.
  440. BackColor = 0,128,192
  441. mcierror = 0
  442. mcierrorstring = 
  443. autoopen = .T.
  444. mcialias = 
  445. autoplay = .T.
  446. autorepeat = .T.
  447. controlsource = 
  448. cfilename = 
  449. Name = "_videoplayer"
  450.     container
  451. _soundplayer
  452. getmcierror^
  453. Pixels
  454. Class
  455. _container
  456. _soundplayer
  457. timer
  458. tmrCheckMode
  459. _soundplayer
  460. Name = "tmrCheckMode"
  461. PROCEDURE Timer
  462. LOCAL cCmd
  463. cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
  464. IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
  465.     THIS.PARENT.playSound
  466. ENDIF
  467. ENDPROC
  468. amcierror Specifies the result of the last MCI command executed.
  469. mcierrorstring Stores the error string from the last MCI command executed.
  470. autoopen Specifies whether the sound file specified should be automatically opened when the class is created.
  471. mcialias Specifies the alias for the video file when calling MCI commands.  If empty, the name of the file is used.
  472. autoplay Specifies whether the sound file should automatically play after opening.
  473. autorepeat If .T., sound will continuously play
  474. controlsource Specifies the source of data to which an object is bound.
  475. cfilename Sound file name to play.
  476. *domci Executes a MCI command.
  477. *getmcierror Stores the last MCI error into properties of the class.
  478. *showmcierror Displays the result of the last MCI command in a messagebox.
  479. *setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
  480. *opensound Opens the sound file.
  481. *pausesound Pauses the currently playing sound.
  482. *playsound Plays the loaded sound file.
  483. *closesound Closes the loaded sound file and releases it's resources.
  484. qPROCEDURE domci
  485. LPARAMETERS cMCIcmd
  486. LOCAL cRetString,nRetValue,cErr 
  487. *!* This method takes a MCI command string and executes it using
  488. *!* the Windows API function mciSendString
  489. *!* If the function executes successfully, the result is returned.
  490. *!* Otherwise, the error string is returned.
  491. cRetString = space(80)
  492. nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
  493. cErr = THIS.getMCIerror(nRetValue)
  494. IF nRetValue > 0
  495.     RETURN CeRR
  496. ENDIF
  497. RETURN TRIM(STRTRAN(cRetString,chr(0),""))
  498. ENDPROC
  499. PROCEDURE getmcierror
  500. LPARAMETERS cError
  501. LOCAL nError,cErrorString
  502. *!* This method is called from the doMCI to retrieve the last
  503. *!* MCI error string.
  504. *!* This function also saves the last error number and string
  505. *!* into properties associated with the form.
  506. nError=0
  507. IF TYPE("cError")="C"
  508.    IF LEFT(cError,7)="*ERROR*"
  509.       nError=val(substr(cError,8))
  510.    ENDIF
  511. ENDIF   
  512. IF TYPE("cError")="N"
  513.   nError=cError
  514. ENDIF
  515. cErrorString=SPACE(256)  
  516. =mciGetErrorString(nError,@cErrorString,len(cErrorString))
  517. THIS.MCIerror = nError
  518. THIS.MCIerrorString = cErrorString
  519. RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
  520. ENDPROC
  521. PROCEDURE showmcierror
  522. MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
  523. ENDPROC
  524. PROCEDURE setposition
  525. PARAMETERS cPosition
  526. LOCAL cAlias,nPosition,cPosCmd,nMediaLength,cCmd   
  527. cAlias = THIS.MCIalias
  528. IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
  529.     cPosCmd = "to " + cPosition
  530.     nPosition = VAL(cPosition)
  531.     IF EMPTY(nPosition) THEN
  532.         RETURN
  533.     ELSE
  534.         *!* Check to make sure position is not greater than the length
  535.         nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  536.         IF nMediaLength < nPosition THEN
  537.             RETURN
  538.         ELSE
  539.             cPosCmd = "to " + STR(nPosition)
  540.         ENDIF
  541.     ENDIF
  542. ENDIF
  543. *!* Make sure video is loaded
  544. cCmd = ("STATUS " + cAlias + " READY")
  545. IF THIS.doMCI(cCmd) = "true" THEN
  546.     cCmd = "SEEK " + cAlias + " " + cPosCmd
  547.     THIS.doMCI(cCmd)
  548. ENDIF
  549. ENDPROC
  550. PROCEDURE opensound
  551. #DEFINE C_NOFILENAME_LOC "No filename or control source specified!"
  552. LOCAL cFileName,cAlias,cCmd
  553. *!* Get needed properties into variables
  554. IF EMPTY(THIS.controlSource) THEN
  555.     cFileName = THIS.cFileName
  556.     IF EMPTY(cFileName) THEN
  557.         MESSAGEBOX(C_NOFILENAME_LOC)
  558.         RETURN
  559.     ENDIF
  560.     cFileName = ALLTRIM(&controlSource)
  561.     IF EMPTY(cFileName) THEN
  562.         RETURN
  563.     ENDIF
  564. ENDIF
  565. cAlias = THIS.MCIalias
  566. IF EMPTY(cAlias) THEN
  567.     cAlias = THIS.name
  568.     THIS.MCIalias = cAlias
  569. ENDIF
  570. _SCREEN.MousePointer = 11
  571. *!* If sound is already loaded, then close it
  572. cCmd = ("STATUS " + cAlias + " READY")
  573. IF THIS.doMCI(cCmd) = "true" THEN
  574.     *!* If one is, close it
  575.     cCMD = ("CLOSE " + cAlias + " WAIT")
  576.     THIS.doMCI(cCmd)
  577. ENDIF
  578. *!* Set up open MCI command into string variable
  579. cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ' WAIT')
  580. THIS.doMCI(cCmd)
  581. *!* Check to see if MCI command succeeded
  582. IF THIS.MCIerror > 0 THEN
  583.     messagebox(THIS.MCIerrorString)
  584.     _SCREEN.MousePointer = 0
  585.     RETURN
  586. ENDIF
  587. *!* Set the device to use milliseconds when setting/getting position
  588. THIS.doMCI("SET " + cAlias + " time format milliseconds")
  589. IF THIS.autoPlay = .T. THEN
  590.     THIS.playSound
  591. ENDIF
  592. _SCREEN.MousePointer = 0
  593. ENDPROC
  594. PROCEDURE pausesound
  595. LOCAL cAlias
  596. cAlias = THIS.MCIalias
  597. *!* Check to see if there is media acutally playing
  598. IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
  599.     *!* Yes there is, so execute the PAUSE MCI command
  600.     THIS.doMCI("PAUSE " + cAlias)
  601.     IF THIS.MCIerror > 0 THEN
  602.         THIS.showMCIerror
  603.     ENDIF
  604.     IF THIS.autoRepeat = .T. THEN
  605.         THIS.tmrCheckMode.INTERVAL = 0
  606.     ENDIF
  607. ENDIF
  608. ENDPROC
  609. PROCEDURE playsound
  610. LOCAL cAlias,nMediaLength,nMediaPosition  
  611. cAlias = THIS.MCIalias
  612. *!* First need to see if the media is at the end 
  613. *!* by comparing the total length with the current position
  614. nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  615. nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
  616. IF nMediaPosition >= nMediaLength THEN
  617.     *!* The media is at the end, so we need to seek back to the start
  618.     *!* of the clip before playing
  619.     THIS.doMCI("SEEK " + cAlias + " to start WAIT")
  620. ENDIF
  621. *!* Now we can play the media
  622. THIS.doMCI("PLAY " + cAlias)
  623. IF THIS.MCIerror > 0 THEN
  624.     THIS.showMCIerror
  625. ENDIF
  626. IF THIS.autoRepeat = .T. THEN
  627.     THIS.tmrCheckMode.INTERVAL = 300
  628. ENDIF
  629. ENDPROC
  630. PROCEDURE closesound
  631. *!* If sound is not already closed, then close it
  632. LOCAL cCmd
  633. cCmd = ("STATUS " + THIS.MCIalias + " READY")
  634. IF THIS.doMCI(cCmd) = "true" THEN
  635.     *!* If one is, close it
  636.     cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
  637.     THIS.doMCI(cCmd)
  638.     IF THIS.MCIerror > 0 THEN
  639.         THIS.showMCIerror
  640.     ENDIF
  641.     IF THIS.autoRepeat = .T. THEN
  642.         THIS.tmrCheckMode.INTERVAL = 0
  643.     ENDIF
  644. ENDIF
  645. ENDPROC
  646. PROCEDURE Error
  647. #DEFINE INVALID_CONTROLSOURCE_LOC "Invalid controlSource specified."
  648. LPARAMETERS nError, cMethod, nLine
  649. DO CASE
  650.     CASE nError=12 AND cMethod="opensound"
  651.         messageBox(INVALID_CONTROLSOURCE_LOC)
  652.     OTHERWISE
  653.         ERROR (nError)
  654. ENDCASE
  655. ENDPROC
  656. PROCEDURE Refresh
  657. IF THIS.autoOpen = .T. THEN
  658.     THIS.openSound
  659. ENDIF
  660. ENDPROC
  661. PROCEDURE Init
  662. THIS.Visible = .F.
  663. *!* This is the primary Windows API function that is used to 
  664. *!* send MCI commands
  665. DECLARE INTEGER mciSendString ;
  666.    IN WinMM.DLL ;
  667.    STRING cMCIString,;
  668.    STRING @cRetString,;
  669.    INTEGER nRetLength,;
  670.    INTEGER hInstance
  671. *!* This function allows us to retrieve the last MCI error that occured
  672. DECLARE INTEGER mciGetErrorString ;
  673.    IN WINMM.DLL ;
  674.    INTEGER nErrorno, ;
  675.    STRING @cBuffer, ;
  676.    INTEGER nBufSize
  677. *!* When MCI plays a video, it creates its own Window.  By using
  678. *!* this Windows API function we can position this Window to be
  679. *!* in the same position as our Player rectangle on the form
  680. DECLARE integer SetWindowPos ;
  681.     IN User32 ;
  682.     integer, integer, integer, integer, integer, integer, integer
  683. ENDPROC
  684. PROCEDURE Destroy
  685. THIS.closeSound
  686. ENDPROC
  687. \PROCEDURE domci
  688. LPARAMETERS cMCIcmd
  689. LOCAL cRetString,cErr,nRetValue
  690. *!* This method takes a MCI command string and executes it using
  691. *!* the Windows API function mciSendString
  692. *!* If the function executes successfully, the result is returned.
  693. *!* Otherwise, the error string is returned.
  694. cRetString = space(80)
  695. nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
  696. cErr = THIS.getMCIerror(nRetValue)
  697. IF nRetValue > 0
  698.     RETURN CeRR
  699. ENDIF
  700. RETURN TRIM(STRTRAN(cRetString,chr(0),""))
  701. ENDPROC
  702. PROCEDURE getmcierror
  703. LPARAMETERS cError
  704. LOCAL nError,cErrorString
  705. *!* This method is called from the doMCI to retrieve the last
  706. *!* MCI error string.
  707. *!* This function also saves the last error number and string
  708. *!* into properties associated with the form.
  709. nError=0
  710. IF TYPE("cError")="C"
  711.    IF LEFT(cError,7)="*ERROR*"
  712.       nError=val(substr(cError,8))
  713.    ENDIF
  714. ENDIF   
  715. IF TYPE("cError")="N"
  716.   nError=cError
  717. ENDIF
  718. cErrorString=SPACE(256)  
  719. =mciGetErrorString(nError,@cErrorString,len(cErrorString))
  720. THIS.MCIerror = nError
  721. THIS.MCIerrorString = cErrorString
  722. RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
  723. ENDPROC
  724. PROCEDURE openvideo
  725. #DEFINE C_NOFILENAME_LOC "No filename specified or control source specified!"
  726. LOCAL cControlSource,cFileName,cAlias,cCmd,hWin,Main_hWnd,cur_window 
  727. LOCAL x1Pos,x2Pos,y1Pos,y2Pos,NullPointer     
  728. *!* Get needed properties into variables
  729. cControlSource = THIS.controlSource
  730. IF EMPTY(cControlSource) THEN
  731.     cFileName = THIS.cFileName
  732.     IF EMPTY(cFileName) THEN
  733.         MESSAGEBOX(C_NOFILENAME_LOC)
  734.         RETURN
  735.     ENDIF
  736.     cFileName = ALLTRIM(&cControlSource)
  737.     IF EMPTY(cFileName) THEN
  738.         RETURN
  739.     ENDIF
  740. ENDIF
  741. cAlias = THIS.MCIalias
  742. IF EMPTY(cAlias) THEN
  743.     cAlias = THIS.name
  744.     THIS.MCIalias = cAlias
  745. ENDIF
  746. _SCREEN.MousePointer = 11
  747. *!* If video is already loaded, then close it
  748. cCmd = ("STATUS " + cAlias + " READY")
  749. IF THIS.doMCI(cCmd) = "true" THEN
  750.     *!* If one is, close it
  751.     cCMD = ("CLOSE " + cAlias + " WAIT")
  752.     THIS.doMCI(cCmd)
  753. ENDIF
  754. *!* Need to use window handle functions in FoxTools
  755. SET LIBRARY TO HOME() + ".\FOXTOOLS.FLL"
  756. EXTERNAL PROCEDURE MainHWND
  757. EXTERNAL PROCEDURE _WhToHwnd
  758. EXTERNAL PROCEDURE _WOnTop
  759. * Returns Handle of Main VFP Window
  760. Main_hWnd = MainHWND()    
  761. * Get Handle of the form with FOXTOOLS.FLL
  762. cur_window = _WhToHwnd(_WOnTop())
  763. NullPointer = 0
  764. *!* Set up open MCI command into string variable
  765. cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ;
  766.   ' style child parent ' + ALLTRIM(STR(cur_window)) + ' WAIT')
  767. THIS.doMCI(cCmd)
  768. *!* Check to see if MCI command succeeded
  769. IF THIS.MCIerror > 0 THEN
  770.     messagebox(THIS.MCIerrorString)
  771.     _SCREEN.MousePointer = 0
  772.     RETURN
  773.     *!* It does have visual media, so we need to set up the window
  774.     *!* it will play in.
  775.     *!* Get the window handle of the window playing the video
  776.     cCmd = "status " + cAlias + " window handle wait"
  777.     hWin = INT(VAL(THIS.doMCI(cCmd)))
  778.     *!* Once we have the window handle, we need to position
  779.     *!* the video window to be the same position and size
  780.     *!* as our player rectangle on the form
  781.     x1Pos = THIS.LEFT
  782.     y1Pos = THIS.TOP
  783.     x2Pos = THIS.WIDTH
  784.     y2Pos = THIS.HEIGHT
  785.     *!* Use the SetWindowPos Windows function to set position and size
  786.     setWindowPos(hWin,0,x1Pos,y1Pos,x2Pos,y2Pos,0)
  787.     *!* Everything's done, let's show the video
  788.     cCmd = ("WINDOW " + cAlias + " state show")
  789.     THIS.doMCI(cCmd)
  790. ENDIF
  791. *!* Set the device to use milliseconds when setting/getting position
  792. THIS.doMCI("SET " + cAlias + " time format milliseconds")
  793. IF THIS.autoPlay = .T. THEN
  794.     THIS.playVideo
  795. ENDIF
  796. _SCREEN.MousePointer = 0
  797. ENDPROC
  798. PROCEDURE playvideo
  799. LOCAL cAlias,nMediaLength,nMediaPosition  
  800. cAlias = THIS.MCIalias
  801. *!* First need to see if the media is at the end 
  802. *!* by comparing the total length with the current position
  803. nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  804. nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
  805. IF nMediaPosition >= nMediaLength THEN
  806.     *!* The media is at the end, so we need to seek back to the start
  807.     *!* of the clip before playing
  808.     THIS.doMCI("SEEK " + cAlias + " to start WAIT")
  809. ENDIF
  810. *!* Now we can play the media
  811. THIS.doMCI("PLAY " + cAlias)
  812. IF THIS.MCIerror > 0 THEN
  813.     THIS.showMCIerror
  814. ENDIF
  815. IF THIS.autoRepeat = .T. THEN
  816.     THIS.tmrCheckMode.INTERVAL = 100
  817. ENDIF
  818. ENDPROC
  819. PROCEDURE pausevideo
  820. LOCAL cAlias
  821. cAlias = THIS.MCIalias
  822. *!* Check to see if there is media acutally playing
  823. IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
  824.     *!* Yes there is, so execute the PAUSE MCI command
  825.     THIS.doMCI("PAUSE " + cAlias)
  826.     IF THIS.MCIerror > 0 THEN
  827.         THIS.showMCIerror
  828.     ENDIF
  829.     IF THIS.autoRepeat = .T. THEN
  830.         THIS.tmrCheckMode.INTERVAL = 0
  831.     ENDIF
  832. ENDIF
  833. ENDPROC
  834. PROCEDURE showmcierror
  835. MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
  836. ENDPROC
  837. PROCEDURE closevideo
  838. LOCAL cCmd 
  839. *!* If video is not already closed, then close it
  840. cCmd = ("STATUS " + THIS.MCIalias + " READY")
  841. IF THIS.doMCI(cCmd) = "true" THEN
  842.     *!* If one is, close it
  843.     cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
  844.     THIS.doMCI(cCmd)
  845.     IF THIS.MCIerror > 0 THEN
  846.         THIS.showMCIerror
  847.     ENDIF
  848.     IF THIS.autoRepeat = .T. THEN
  849.         THIS.tmrCheckMode.INTERVAL = 0
  850.     ENDIF
  851. ENDIF
  852. ENDPROC
  853. PROCEDURE setposition
  854. PARAMETERS cPosition
  855. LOCAL cAlias,cPosCmd,nPosition,nMediaLength 
  856. cAlias = THIS.MCIalias
  857. IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
  858.     cPosCmd = "to " + cPosition
  859.     nPosition = VAL(cPosition)
  860.     IF EMPTY(nPosition) THEN
  861.         RETURN
  862.     ELSE
  863.         *!* Check to make sure position is not greater than the length
  864.         nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  865.         IF nMediaLength < nPosition THEN
  866.             RETURN
  867.         ELSE
  868.             cPosCmd = "to " + STR(nPosition)
  869.         ENDIF
  870.     ENDIF
  871. ENDIF
  872. *!* Make sure video is loaded
  873. cCmd = ("STATUS " + cAlias + " READY")
  874. IF THIS.doMCI(cCmd) = "true" THEN
  875.     cCmd = "SEEK " + cAlias + " " + cPosCmd
  876.     THIS.doMCI(cCmd)
  877. ENDIF
  878. ENDPROC
  879. PROCEDURE Destroy
  880. THIS.closeVideo
  881. ENDPROC
  882. PROCEDURE Init
  883. THIS.Visible = .F. 
  884. *!* This is the primary Windows API function that is used to 
  885. *!* send MCI commands
  886. DECLARE INTEGER mciSendString ;
  887.    IN WinMM.DLL ;
  888.    STRING cMCIString,;
  889.    STRING @cRetString,;
  890.    INTEGER nRetLength,;
  891.    INTEGER hInstance
  892. *!* This function allows us to retrieve the last MCI error that occured
  893. DECLARE INTEGER mciGetErrorString ;
  894.    IN WINMM.DLL ;
  895.    INTEGER nErrorno, ;
  896.    STRING @cBuffer, ;
  897.    INTEGER nBufSize
  898. *!* When MCI plays a video, it creates its own Window.  By using
  899. *!* this Windows API function we can position this Window to be
  900. *!* in the same position as our Player rectangle on the form
  901. DECLARE integer SetWindowPos ;
  902.     IN User32 ;
  903.     integer, integer, integer, integer, integer, integer, integer
  904. ENDPROC
  905. PROCEDURE Refresh
  906. IF THIS.autoOpen = .T. THEN
  907.     THIS.openVideo
  908. ENDIF
  909. ENDPROC
  910. PROCEDURE Error
  911. #DEFINE INVALID_CONTROLSOURCE_LOC "Invalid controlSource specified."
  912. LPARAMETERS nError, cMethod, nLine
  913. DO CASE
  914.     CASE nError = 12 and cMethod = "openvideo"
  915.         messageBox(INVALID_CONTROLSOURCE_LOC)
  916.     OTHERWISE
  917.         ERROR (nError)
  918. ENDCASE
  919. ENDPROC
  920. CMCICMD
  921. CRETSTRING
  922. CERR    
  923. NRETVALUE
  924. MCISENDSTRING
  925. GETMCIERROR
  926. cErrorb
  927. *ERROR*
  928. cErrorb
  929. CERROR
  930. NERROR
  931. CERRORSTRING
  932. MCIGETERRORSTRING
  933. MCIERROR
  934. MCIERRORSTRING7
  935. No filename specified or control source specified!
  936. cFileName = ALLTRIM(&cControlSource)
  937. STATUS 
  938.  READY
  939. CLOSE 
  940.  WAIT
  941. .\FOXTOOLS.FLL
  942. MainHWND
  943. _WhToHwnd
  944. _WOnTop
  945. OPEN "
  946. " alias 
  947.  style child parent 
  948.  WAIT
  949. status 
  950.  window handle wait
  951. WINDOW 
  952.  state show
  953.  time format milliseconds
  954. CCONTROLSOURCE    
  955. CFILENAME
  956. CALIAS
  957. HWIN    
  958. MAIN_HWND
  959. CUR_WINDOW
  960. X1POS
  961. X2POS
  962. Y1POS
  963. Y2POS
  964. NULLPOINTER
  965. CONTROLSOURCE
  966. MCIALIAS
  967. MOUSEPOINTER
  968. DOMCI
  969. MAINHWND    
  970. _WHTOHWND
  971. _WONTOP
  972. MCIERROR
  973. MCIERRORSTRING
  974. WIDTH
  975. HEIGHT
  976. SETWINDOWPOS
  977. AUTOPLAY    
  978. PLAYVIDEO 
  979. STATUS 
  980.  length
  981. STATUS 
  982.  position
  983. SEEK 
  984.  to start WAIT
  985. PLAY 
  986. CALIAS
  987. NMEDIALENGTH
  988. NMEDIAPOSITION
  989. MCIALIAS
  990. DOMCI
  991. MCIERROR
  992. SHOWMCIERROR
  993. AUTOREPEAT
  994. TMRCHECKMODE
  995. INTERVAL
  996. STATUS 
  997.  mode
  998. playing
  999. PAUSE 
  1000. CALIAS
  1001. MCIALIAS
  1002. DOMCI
  1003. MCIERROR
  1004. SHOWMCIERROR
  1005. AUTOREPEAT
  1006. TMRCHECKMODE
  1007. INTERVAL!
  1008. MCIERROR
  1009. MCIERRORSTRING
  1010. STATUS 
  1011.  READY
  1012. CLOSE 
  1013.  WAIT
  1014. MCIALIAS
  1015. DOMCI
  1016. MCIERROR
  1017. SHOWMCIERROR
  1018. AUTOREPEAT
  1019. TMRCHECKMODE
  1020. INTERVALz
  1021. START
  1022. STATUS 
  1023.  length
  1024. STATUS 
  1025.  READY
  1026. SEEK 
  1027. CPOSITION
  1028. CALIAS
  1029. CPOSCMD    
  1030. NPOSITION
  1031. NMEDIALENGTH
  1032. MCIALIAS
  1033. DOMCI
  1034. CLOSEVIDEO
  1035. mciSendString
  1036. WinMM.DLL
  1037. mciGetErrorString
  1038. WINMM.DLL
  1039. SetWindowPos
  1040. User32
  1041. VISIBLE
  1042. MCISENDSTRING
  1043. WINMM
  1044. MCIGETERRORSTRING
  1045. SETWINDOWPOS
  1046. USER32#
  1047. AUTOOPEN    
  1048. OPENVIDEO
  1049. openvideo
  1050. Invalid controlSource specified.
  1051. NERROR
  1052. CMETHOD
  1053. NLINE
  1054. domci,
  1055. getmcierror
  1056. openvideoW
  1057. playvideo
  1058. pausevideoM    
  1059. showmcierrorb
  1060. closevideo
  1061. setposition
  1062. Destroy
  1063. Refresh
  1064. Error
  1065. PLATFORM
  1066. UNIQUEID
  1067. TIMESTAMP
  1068. CLASS
  1069. CLASSLOC
  1070. BASECLASS
  1071. OBJNAME
  1072. PARENT
  1073. PROPERTIES
  1074. PROTECTED
  1075. METHODS
  1076. OBJCODE
  1077. RESERVED1
  1078. RESERVED2
  1079. RESERVED3
  1080. RESERVED4
  1081. RESERVED5
  1082. RESERVED6
  1083. RESERVED7
  1084. RESERVED8
  1085.  COMMENT Class               
  1086.  WINDOWS _RFH0TJIMM 560754145u
  1087.  COMMENT RESERVED            
  1088.  WINDOWS _RFH0TJUI1 560754153A
  1089.  COMMENT RESERVED            
  1090.  WINDOWS _RFH0TK41Y 560754159o
  1091.  COMMENT RESERVED            
  1092.  WINDOWS _RFH0TKWGH 560754179
  1093.  COMMENT RESERVED            
  1094.  WINDOWS _RFH0TL694 560754185
  1095.  COMMENT RESERVED            
  1096.  WINDOWS _RFH0TM5BE 560754210
  1097.  COMMENT RESERVED            
  1098.  WINDOWS _RFH0TN1LS 560754231V
  1099.  COMMENT RESERVED            
  1100.  WINDOWS _RFH0TO4SH 560754258j
  1101.  COMMENT RESERVED            
  1102.  WINDOWS _RFH0TOFY3 560754266
  1103.  COMMENT RESERVED            
  1104.  WINDOWS _RFH0TORHM 560754275i    
  1105.  COMMENT RESERVED            
  1106.  WINDOWS _RFH0TP4MN 560754283
  1107.  COMMENT RESERVED            
  1108.  WINDOWS _RFH0TQPLW 560754322
  1109.  COMMENT RESERVED            
  1110.  WINDOWS _RFH0TQZT5 560754329
  1111.  COMMENT RESERVED            
  1112.  WINDOWS _RFH0TRAT8 560754338?
  1113.  COMMENT RESERVED            
  1114.  WINDOWS _RFH0TRNAK 560754346r
  1115.  COMMENT RESERVED            
  1116.  WINDOWS _RFH0TRWLB 560754352a
  1117.  COMMENT RESERVED            
  1118.  WINDOWS _RFH0TSAN0 560754361
  1119.  COMMENT RESERVED            
  1120.  WINDOWS _RFH0TMNOX 560756119
  1121.  WINDOWS _RFH0TMNQY 560754222Y
  1122.  COMMENT RESERVED            
  1123.  WINDOWS _RKG0Z8AU6 581534552
  1124.  COMMENT RESERVED            
  1125.  WINDOWS _RKG0Z69ZT 581925859
  1126.  COMMENT RESERVED            
  1127.  WINDOWS _RFH0TNO1H 582252775J
  1128.  COMMENT RESERVED            
  1129.  WINDOWS _RML0XWL1D 586776102
  1130.  COMMENT RESERVED            
  1131.  WINDOWS _RFH0TNH5N 592012320r
  1132.  COMMENT RESERVED            
  1133.  WINDOWS _RSL0XGTQR 609778861c
  1134.  COMMENT RESERVED            
  1135.  WINDOWS _RFH0TMEE8 610442374
  1136.  COMMENT RESERVED            
  1137.  WINDOWS _RFH0TSJRX 610442376
  1138.  COMMENT RESERVED            
  1139.  WINDOWS _RFH0TLOXD 611583448<
  1140.  COMMENT RESERVED            
  1141. VERSION =   3.00
  1142. _label
  1143. Pixels
  1144. Class
  1145. label
  1146. _label
  1147. label
  1148. _hyperlink
  1149. Pixels
  1150. _custom
  1151. addtoproject
  1152. Pixels
  1153. Foundation Custom class.
  1154. _grid
  1155. checkbox
  1156. Pixels
  1157. Class
  1158.     hyperlink
  1159.     activedoc
  1160. optiongroup
  1161.     _checkbox
  1162. checkbox
  1163. Class
  1164. Pixels
  1165.     _checkbox
  1166. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1167.     pageframe
  1168.     hyperlink
  1169. _hyperlink
  1170. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1171. Class
  1172. _grid
  1173. _optiongroup
  1174. optiongroup
  1175. Class
  1176. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1177. _imageox
  1178. addtoproject
  1179. Pixels
  1180.     _combobox
  1181. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1182. Class
  1183. formset
  1184. _formset
  1185. +PROCEDURE Release
  1186. RELEASE this
  1187. ENDPROC
  1188. _pageframe
  1189.     separator
  1190. _separator
  1191. Class
  1192. _formset
  1193. Form1
  1194. Pixels
  1195. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1196. _form
  1197. addtoproject
  1198. Pixels
  1199. commandbutton
  1200. Class
  1201.     separator
  1202. Pixels
  1203. _separator
  1204. shape
  1205. Pixels
  1206. _commandbutton
  1207. commandbutton
  1208. Class
  1209. Pixels
  1210. _commandbutton
  1211. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1212. _activedoc
  1213.     activedoc
  1214. Class
  1215. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1216. _editbox
  1217. Pixels
  1218. Class
  1219. editbox
  1220. _editbox
  1221. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1222. Class
  1223. editbox
  1224. listbox
  1225. _listbox
  1226. _spinner
  1227. _image
  1228. formset
  1229. _optionbutton
  1230. optionbutton
  1231. _optionbutton
  1232. _shape
  1233. _optiongroup
  1234. Pixels
  1235. _container
  1236. Pixels
  1237. Class
  1238.     container
  1239. commandgroup
  1240. _container
  1241. addtoproject
  1242. Pixels
  1243. Class
  1244. spinner
  1245. Pixels
  1246. _spinner
  1247. Class
  1248. Class
  1249. Pixels
  1250. _projecthook
  1251. projecthook
  1252. _projecthook
  1253. projecthook
  1254. textbox
  1255. Class
  1256. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1257. _listbox
  1258. Pixels
  1259. Class
  1260. _commandgroup
  1261. commandgroup
  1262. Class
  1263. Pixels
  1264. _commandgroup
  1265. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1266. optionbutton
  1267. shape
  1268. Class
  1269.     container
  1270. _toolbar
  1271. addtoproject
  1272. Pixels
  1273. Class
  1274. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1275. toolbar
  1276. _timer
  1277. Pixels
  1278. Pixels
  1279. _shape
  1280. spinner
  1281. _line
  1282. image
  1283. Class
  1284. Pixels
  1285. _line
  1286. Class
  1287. timer
  1288. _timer
  1289. Class
  1290. Pixels
  1291. _activedoc
  1292. timer
  1293. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1294. _textbox
  1295. Pixels
  1296. Class
  1297. textbox
  1298. _textbox
  1299. listbox
  1300. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1301. Release,
  1302. Foundation Toolbar class.
  1303. Foundation Timer class.
  1304. Foundation TextBox class.
  1305. Foundation Spinner class.
  1306. Foundation Shape class.
  1307. Foundation Separator class.
  1308. Foundation ProjectHook class.
  1309. Foundation PageFrame class.
  1310. Foundation OptionGroup class.
  1311. Foundation OptionButton class.
  1312. Foundation Listbox class.
  1313. Foundation Line class.
  1314. addtoproject
  1315. _toolbar
  1316. toolbar
  1317. control
  1318. _control
  1319. control
  1320. image
  1321. Class
  1322. Pixels
  1323. _control
  1324. addtoproject
  1325. addtoproject
  1326. addtoproject
  1327. addtoproject
  1328. addtoproject
  1329. addtoproject
  1330. Foundation Form class.
  1331. _form
  1332. Foundation ActiveDoc class.
  1333. Foundation CheckBox class.
  1334. Foundation ComboBox class.
  1335. Foundation CommandButton class.
  1336. Foundation CommandGroup class.
  1337. Foundation Container class.
  1338. custom
  1339. _custom
  1340. custom
  1341. Foundation Label class.
  1342. Foundation Image class.
  1343. Foundation Hyperlink class.
  1344. Foundation Grid class.
  1345. Foundation FormSet class.
  1346. Foundation EditBox class.
  1347. addtoproject
  1348. addtoproject
  1349. addtoproject
  1350. addtoproject
  1351. addtoproject
  1352. addtoproject
  1353. addtoproject
  1354. addtoproject
  1355. addtoproject
  1356. addtoproject
  1357. addtoproject
  1358. addtoproject
  1359. addtoproject
  1360. addtoproject
  1361. addtoproject
  1362. Caption = "Toolbar1"
  1363. ShowWindow = 1
  1364. cversion = 
  1365. builder = 
  1366. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1367. nobjectrefcount = 0
  1368. ninstances = 0
  1369. ohost = .NULL.
  1370. vresult = .T.
  1371. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1372. Name = "_toolbar"
  1373. ShowWindow = 1
  1374. DoCreate = .T.
  1375. Caption = "Form1"
  1376. cversion = 
  1377. builder = 
  1378. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1379. nobjectrefcount = 0
  1380. ninstances = 0
  1381. ohost = .NULL.
  1382. vresult = .T.
  1383. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1384. Name = "_form"
  1385. Height = 22
  1386. Width = 24
  1387. cversion = 
  1388. builder = 
  1389. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1390. nobjectrefcount = 0
  1391. ninstances = 0
  1392. ohost = .NULL.
  1393. vresult = .T.
  1394. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1395. Name = "_control"
  1396. Height = 68
  1397. Width = 68
  1398. cversion = 
  1399. builder = 
  1400. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1401. nobjectrefcount = 0
  1402. ninstances = 0
  1403. ohost = .NULL.
  1404. vresult = .T.
  1405. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1406. Name = "_image"
  1407. Height = 68
  1408. Width = 68
  1409. Name = "_projecthook"
  1410. cversion = 
  1411. builder = 
  1412. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1413. nobjectrefcount = 0
  1414. ninstances = 0
  1415. ohost = .NULL.
  1416. vresult = .T.
  1417. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1418. Caption = "Label1"
  1419. Height = 16
  1420. Width = 40
  1421. Name = "_label"
  1422. cversion = 
  1423. builder = 
  1424. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1425. nobjectrefcount = 0
  1426. ninstances = 0
  1427. ohost = .NULL.
  1428. vresult = .T.
  1429. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1430.     Height = 23
  1431. Width = 23
  1432. Name = "_hyperlink"
  1433. cversion = 
  1434. builder = 
  1435. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1436. nobjectrefcount = 0
  1437. ninstances = 0
  1438. ohost = .NULL.
  1439. vresult = .T.
  1440. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1441.     Height = 68
  1442. Width = 68
  1443. Name = "_activedoc"
  1444. cversion = 
  1445. builder = 
  1446. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1447. nobjectrefcount = 0
  1448. ninstances = 0
  1449. ohost = .NULL.
  1450. vresult = .T.
  1451. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1452. DoCreate = .T.
  1453. Caption = "Form1"
  1454. Name = "Form1"
  1455. cversion = 
  1456. builder = 
  1457. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1458. nobjectrefcount = 0
  1459. ninstances = 0
  1460. ohost = .NULL.
  1461. vresult = .T.
  1462. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1463. Name = "_formset"
  1464. cversion = 
  1465. builder = 
  1466. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1467. nobjectrefcount = 0
  1468. ninstances = 0
  1469. ohost = .NULL.
  1470. vresult = .T.
  1471. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1472. Height = 23
  1473. Width = 23
  1474. Name = "_timer"
  1475. cversion = 
  1476. builder = 
  1477. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1478. nobjectrefcount = 0
  1479. ninstances = 0
  1480. ohost = .NULL.
  1481. vresult = .T.
  1482. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1483. Height = 23
  1484. Width = 100
  1485. Name = "_textbox"
  1486. cversion = 
  1487. builder = 
  1488. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1489. nobjectrefcount = 0
  1490. ninstances = 0
  1491. ohost = .NULL.
  1492. vresult = .T.
  1493. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1494.     Height = 24
  1495. Width = 100
  1496. Name = "_combobox"
  1497. cversion = 
  1498. builder = 
  1499. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1500. nobjectrefcount = 0
  1501. ninstances = 0
  1502. ohost = .NULL.
  1503. vresult = .T.
  1504. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1505. Height = 24
  1506. Width = 120
  1507. Name = "_spinner"
  1508. cversion = 
  1509. builder = 
  1510. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1511. nobjectrefcount = 0
  1512. ninstances = 0
  1513. ohost = .NULL.
  1514. vresult = .T.
  1515. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1516. Height = 68
  1517. Width = 68
  1518. Name = "_shape"
  1519. cversion = 
  1520. builder = 
  1521. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1522. nobjectrefcount = 0
  1523. ninstances = 0
  1524. ohost = .NULL.
  1525. vresult = .T.
  1526. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1527. Height = 0
  1528. Width = 0
  1529. Name = "_separator"
  1530. cversion = 
  1531. builder = 
  1532. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1533. nobjectrefcount = 0
  1534. ninstances = 0
  1535. ohost = .NULL.
  1536. vresult = .T.
  1537. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1538. ErasePage = .T.
  1539. PageCount = 2
  1540. Width = 241
  1541. Height = 169
  1542. Name = "_pageframe"
  1543. Page1.Caption = "Page1"
  1544. Page1.Name = "Page1"
  1545. Page2.Caption = "Page2"
  1546. Page2.Name = "Page2"
  1547. cversion = 
  1548. builder = 
  1549. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1550. nobjectrefcount = 0
  1551. ninstances = 0
  1552. ohost = .NULL.
  1553. vresult = .T.
  1554. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1555. AButtonCount = 2
  1556. Value = 1
  1557. Height = 46
  1558. Width = 71
  1559. Name = "_optiongroup"
  1560. Option1.Caption = "Option1"
  1561. Option1.Value = 1
  1562. Option1.Height = 17
  1563. Option1.Left = 5
  1564. Option1.Top = 5
  1565. Option1.Width = 61
  1566. Option1.Name = "Option1"
  1567. Option2.Caption = "Option2"
  1568. Option2.Height = 17
  1569. Option2.Left = 5
  1570. Option2.Top = 24
  1571. Option2.Width = 61
  1572. Option2.Name = "Option2"
  1573. cversion = 
  1574. builder = 
  1575. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1576. nobjectrefcount = 0
  1577. ninstances = 0
  1578. ohost = .NULL.
  1579. vresult = .T.
  1580. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1581. !Caption = "Option1"
  1582. Height = 17
  1583. Width = 61
  1584. Name = "_optionbutton"
  1585. cversion = 
  1586. builder = 
  1587. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1588. nobjectrefcount = 0
  1589. ninstances = 0
  1590. ohost = .NULL.
  1591. vresult = .T.
  1592. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1593.     Height = 170
  1594. Width = 100
  1595. Name = "_listbox"
  1596. cversion = 
  1597. builder = 
  1598. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1599. nobjectrefcount = 0
  1600. ninstances = 0
  1601. ohost = .NULL.
  1602. vresult = .T.
  1603. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1604. Height = 68
  1605. Width = 68
  1606. Name = "_line"
  1607. cversion = 
  1608. builder = 
  1609. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1610. nobjectrefcount = 0
  1611. ninstances = 0
  1612. ohost = .NULL.
  1613. vresult = .T.
  1614. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1615. Height = 200
  1616. Width = 320
  1617. Name = "_grid"
  1618. cversion = 
  1619. builder = 
  1620. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1621. nobjectrefcount = 0
  1622. ninstances = 0
  1623. ohost = .NULL.
  1624. vresult = .T.
  1625. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1626. Height = 53
  1627. Width = 100
  1628. Name = "_editbox"
  1629. cversion = 
  1630. builder = 
  1631. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1632. nobjectrefcount = 0
  1633. ninstances = 0
  1634. ohost = .NULL.
  1635. vresult = .T.
  1636. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1637. cversion Version property.
  1638. builder Bulder property.
  1639. builderx BuilderX property.
  1640. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  1641. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  1642. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  1643. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  1644. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  1645. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  1646. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  1647. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  1648. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  1649. ninstances
  1650. *release Releases object from memory.
  1651. *setobjectref Set object reference to specific property.
  1652. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  1653. *releaseobjrefs Releases all object references of aObjectRefs array.
  1654. *nobjectrefcount_access Access method for nObjectRefCount property.
  1655. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  1656. ^aobjectrefs[1,3] Array of object references properties.
  1657. *sethost Set oHost property to form reference object.
  1658. *newinstance Returns new instance of object.
  1659. *addtoproject Dummy code for adding files to project.
  1660. *ninstances_access 
  1661. *ninstances_assign 
  1662. Width = 200
  1663. Height = 200
  1664. Name = "_container"
  1665. cversion = 
  1666. builder = 
  1667. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1668. nobjectrefcount = 0
  1669. ninstances = 0
  1670. ohost = .NULL.
  1671. vresult = .T.
  1672. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1673. Height = 22
  1674. Width = 24
  1675. cversion = 
  1676. builder = 
  1677. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1678. nobjectrefcount = 0
  1679. ohost = .NULL.
  1680. vresult = .T.
  1681. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1682. ninstances = 0
  1683. Name = "_custom"
  1684. #Height = 27
  1685. Width = 84
  1686. Caption = "Command1"
  1687. Name = "_commandbutton"
  1688. cversion = 
  1689. builder = 
  1690. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1691. nobjectrefcount = 0
  1692. ninstances = 0
  1693. ohost = .NULL.
  1694. vresult = .T.
  1695. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1696. cversion Version property.
  1697. builder Bulder property.
  1698. builderx BuilderX property.
  1699. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  1700. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  1701. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  1702. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  1703. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  1704. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  1705. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  1706. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  1707. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  1708. ninstances
  1709. *release Releases object from memory.
  1710. *setobjectref Set object reference to specific property.
  1711. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  1712. *releaseobjrefs Releases all object references of aObjectRefs array.
  1713. *nobjectrefcount_access Access method for nObjectRefCount property.
  1714. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  1715. ^aobjectrefs[1,3] Array of object references properties.
  1716. *sethost Set oHost property to form reference object.
  1717. *newinstance Returns new instance of object.
  1718. *addtoproject Dummy code for adding files to project.
  1719. *ninstances_access 
  1720. *ninstances_assign 
  1721. AButtonCount = 2
  1722. Value = 1
  1723. Height = 66
  1724. Width = 94
  1725. Name = "_commandgroup"
  1726. Command1.Top = 5
  1727. Command1.Left = 5
  1728. Command1.Height = 27
  1729. Command1.Width = 84
  1730. Command1.Caption = "Command1"
  1731. Command1.Name = "Command1"
  1732. Command2.Top = 34
  1733. Command2.Left = 5
  1734. Command2.Height = 27
  1735. Command2.Width = 84
  1736. and2.Caption = "Command2"
  1737. Command2.Name = "Command2"
  1738. cversion = 
  1739. builder = 
  1740. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1741. nobjectrefcount = 0
  1742. ninstances = 0
  1743. ohost = .NULL.
  1744. vresult = .T.
  1745. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1746. Height = 17
  1747. Width = 60
  1748. Caption = "Check1"
  1749. Name = "_checkbox"
  1750. cversion = 
  1751. builder = 
  1752. builderx = (HOME()+"Wizards\BuilderD,BuilderDForm")
  1753. nobjectrefcount = 0
  1754. ninstances = 0
  1755. ohost = .NULL.
  1756. vresult = .T.
  1757. csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg")
  1758. form 
  1759. formset 
  1760. toolbar 
  1761. LCBASECLASS
  1762. LRELEASE    
  1763. BASECLASS
  1764. OHOST
  1765. RELEASEOBJREFSw
  1766. TCNAME
  1767. TVCLASS
  1768. TVCLASSLIBRARY
  1769. LVRESULT
  1770. VRESULT
  1771. CSETOBJREFPROGRAM
  1772. TOOBJECT
  1773. this.
  1774. oObject=this.&lcName
  1775. oObjectb
  1776. Release
  1777. oHost
  1778. this.&lcName=.NULL.
  1779. LCNAME
  1780. OOBJECT
  1781. LNCOUNT
  1782. NOBJECTREFCOUNT
  1783. AOBJECTREFS
  1784. RELEASE
  1785. OHOSTZ
  1786. LNOBJECTREFCOUNT
  1787. AOBJECTREFS
  1788. VNEWVAL.
  1789. thisformb
  1790. OHOST
  1791. THISFORM
  1792. DATASESSIONv
  1793. tnDataSessionIDb
  1794. TNDATASESSIONID
  1795. ONEWOBJECT
  1796. LNLASTDATASESSIONID
  1797. CLASS
  1798. CLASSLIBRARY
  1799. SetObjRf.prg
  1800. SETOBJRF
  1801. LAINSTANCES
  1802. CLASS
  1803. VNEWVAL
  1804. ERROR
  1805. ERROR()
  1806. nError
  1807. PROGRAM()
  1808. cMethod
  1809. LINENO()
  1810. nLine
  1811. &lcOnError
  1812. Error:           
  1813. Method:       
  1814. Line:            
  1815. NERROR
  1816. CMETHOD
  1817. NLINE    
  1818. LCONERROR
  1819. LCERRORMSG
  1820. LCCODELINEMSG
  1821. LIGNOREERRORS
  1822. CAPTIONL
  1823. LSETHOST
  1824. SETHOST
  1825. LAUTOSETOBJECTREFS
  1826. SETOBJECTREFSD
  1827. LRELEASE
  1828. RELEASEOBJREFS
  1829. OHOST
  1830. release,
  1831. setobjectref
  1832. setobjectrefs
  1833. releaseobjrefs
  1834. nobjectrefcount_access
  1835. nobjectrefcount_assigni
  1836. sethost
  1837. newinstance
  1838. addtoproject
  1839. ninstances_access
  1840. ninstances_assign/
  1841. ErrorP
  1842. Destroy+    
  1843. form 
  1844. formset 
  1845. toolbar 
  1846. LCBASECLASS
  1847. LRELEASE    
  1848. BASECLASS
  1849. OHOST
  1850. RELEASEOBJREFSw
  1851. TCNAME
  1852. TVCLASS
  1853. TVCLASSLIBRARY
  1854. LVRESULT
  1855. VRESULT
  1856. CSETOBJREFPROGRAM
  1857. TOOBJECT
  1858. this.
  1859. oObject=this.&lcName
  1860. oObjectb
  1861. Release
  1862. oHost
  1863. this.&lcName=.NULL.
  1864. LCNAME
  1865. OOBJECT
  1866. LNCOUNT
  1867. NOBJECTREFCOUNT
  1868. AOBJECTREFS
  1869. RELEASE
  1870. OHOSTZ
  1871. LNOBJECTREFCOUNT
  1872. AOBJECTREFS
  1873. VNEWVAL.
  1874. thisformb
  1875. OHOST
  1876. THISFORM
  1877. DATASESSIONv
  1878. tnDataSessionIDb
  1879. TNDATASESSIONID
  1880. ONEWOBJECT
  1881. LNLASTDATASESSIONID
  1882. CLASS
  1883. CLASSLIBRARY
  1884. SetObjRf.prg
  1885. SETOBJRF
  1886. LAINSTANCES
  1887. CLASS
  1888. VNEWVAL
  1889. ERROR
  1890. ERROR()
  1891. nError
  1892. PROGRAM()
  1893. cMethod
  1894. LINENO()
  1895. nLine
  1896. &lcOnError
  1897. Error:           
  1898. Method:       
  1899. Line:            
  1900. NERROR
  1901. CMETHOD
  1902. NLINE    
  1903. LCONERROR
  1904. LCERRORMSG
  1905. LCCODELINEMSG
  1906. LIGNOREERRORS
  1907. CAPTIONL
  1908. LSETHOST
  1909. SETHOST
  1910. LAUTOSETOBJECTREFS
  1911. SETOBJECTREFSD
  1912. LRELEASE
  1913. RELEASEOBJREFS
  1914. OHOST
  1915. release,
  1916. setobjectref
  1917. setobjectrefs
  1918. releaseobjrefs
  1919. nobjectrefcount_access
  1920. nobjectrefcount_assigni
  1921. sethost
  1922. newinstance
  1923. addtoproject
  1924. ninstances_access
  1925. ninstances_assign/
  1926. ErrorP
  1927. Destroy+    
  1928. form 
  1929. formset 
  1930. toolbar 
  1931. LCBASECLASS
  1932. LRELEASE    
  1933. BASECLASS
  1934. OHOST
  1935. RELEASEOBJREFSw
  1936. TCNAME
  1937. TVCLASS
  1938. TVCLASSLIBRARY
  1939. LVRESULT
  1940. VRESULT
  1941. CSETOBJREFPROGRAM
  1942. TOOBJECT
  1943. this.
  1944. oObject=this.&lcName
  1945. oObjectb
  1946. Release
  1947. oHost
  1948. this.&lcName=.NULL.
  1949. LCNAME
  1950. OOBJECT
  1951. LNCOUNT
  1952. NOBJECTREFCOUNT
  1953. AOBJECTREFS
  1954. RELEASE
  1955. OHOSTZ
  1956. LNOBJECTREFCOUNT
  1957. AOBJECTREFS
  1958. VNEWVAL.
  1959. thisformb
  1960. OHOST
  1961. THISFORM
  1962. DATASESSIONv
  1963. tnDataSessionIDb
  1964. TNDATASESSIONID
  1965. ONEWOBJECT
  1966. LNLASTDATASESSIONID
  1967. CLASS
  1968. CLASSLIBRARY
  1969. SetObjRf.prg
  1970. SETOBJRF
  1971. LAINSTANCES
  1972. CLASS
  1973. VNEWVAL
  1974. ERROR
  1975. ERROR()
  1976. nError
  1977. PROGRAM()
  1978. cMethod
  1979. LINENO()
  1980. nLine
  1981. &lcOnError
  1982. Error:           
  1983. Method:       
  1984. Line:            
  1985. NERROR
  1986. CMETHOD
  1987. NLINE    
  1988. LCONERROR
  1989. LCERRORMSG
  1990. LCCODELINEMSG
  1991. LIGNOREERRORS
  1992. CAPTIONL
  1993. LSETHOST
  1994. SETHOST
  1995. LAUTOSETOBJECTREFS
  1996. SETOBJECTREFSD
  1997. LRELEASE
  1998. RELEASEOBJREFS
  1999. OHOST
  2000. release,
  2001. setobjectref
  2002. setobjectrefs
  2003. releaseobjrefs
  2004. nobjectrefcount_access
  2005. nobjectrefcount_assigni
  2006. sethost
  2007. newinstance
  2008. addtoproject
  2009. ninstances_access
  2010. ninstances_assign/
  2011. ErrorP
  2012. Destroy+    
  2013. form 
  2014. formset 
  2015. toolbar 
  2016. LCBASECLASS
  2017. LRELEASE    
  2018. BASECLASS
  2019. OHOST
  2020. RELEASEOBJREFSw
  2021. TCNAME
  2022. TVCLASS
  2023. TVCLASSLIBRARY
  2024. LVRESULT
  2025. VRESULT
  2026. CSETOBJREFPROGRAM
  2027. TOOBJECT
  2028. this.
  2029. oObject=this.&lcName
  2030. oObjectb
  2031. Release
  2032. oHost
  2033. this.&lcName=.NULL.
  2034. LCNAME
  2035. OOBJECT
  2036. LNCOUNT
  2037. NOBJECTREFCOUNT
  2038. AOBJECTREFS
  2039. RELEASE
  2040. OHOSTZ
  2041. LNOBJECTREFCOUNT
  2042. AOBJECTREFS
  2043. VNEWVAL.
  2044. thisformb
  2045. OHOST
  2046. THISFORM
  2047. DATASESSIONv
  2048. tnDataSessionIDb
  2049. TNDATASESSIONID
  2050. ONEWOBJECT
  2051. LNLASTDATASESSIONID
  2052. CLASS
  2053. CLASSLIBRARY
  2054. SetObjRf.prg
  2055. SETOBJRF
  2056. LAINSTANCES
  2057. CLASS
  2058. VNEWVAL
  2059. ERROR
  2060. ERROR()
  2061. nError
  2062. PROGRAM()
  2063. cMethod
  2064. LINENO()
  2065. nLine
  2066. &lcOnError
  2067. Error:           
  2068. Method:       
  2069. Line:            
  2070. NERROR
  2071. CMETHOD
  2072. NLINE    
  2073. LCONERROR
  2074. LCERRORMSG
  2075. LCCODELINEMSG
  2076. LIGNOREERRORS
  2077. CAPTIONL
  2078. LSETHOST
  2079. SETHOST
  2080. LAUTOSETOBJECTREFS
  2081. SETOBJECTREFSD
  2082. LRELEASE
  2083. RELEASEOBJREFS
  2084. OHOST
  2085. release,
  2086. setobjectref
  2087. setobjectrefs
  2088. releaseobjrefs
  2089. nobjectrefcount_access
  2090. nobjectrefcount_assigni
  2091. sethost
  2092. newinstance
  2093. addtoproject
  2094. ninstances_access
  2095. ninstances_assign/
  2096. ErrorP
  2097. Destroy+    
  2098. form 
  2099. formset 
  2100. toolbar 
  2101. LCBASECLASS
  2102. LRELEASE    
  2103. BASECLASS
  2104. OHOST
  2105. RELEASEOBJREFSw
  2106. TCNAME
  2107. TVCLASS
  2108. TVCLASSLIBRARY
  2109. LVRESULT
  2110. VRESULT
  2111. CSETOBJREFPROGRAM
  2112. TOOBJECT
  2113. this.
  2114. oObject=this.&lcName
  2115. oObjectb
  2116. Release
  2117. oHost
  2118. this.&lcName=.NULL.
  2119. LCNAME
  2120. OOBJECT
  2121. LNCOUNT
  2122. NOBJECTREFCOUNT
  2123. AOBJECTREFS
  2124. RELEASE
  2125. OHOSTZ
  2126. LNOBJECTREFCOUNT
  2127. AOBJECTREFS
  2128. VNEWVAL.
  2129. thisformb
  2130. OHOST
  2131. THISFORM
  2132. DATASESSIONv
  2133. tnDataSessionIDb
  2134. TNDATASESSIONID
  2135. ONEWOBJECT
  2136. LNLASTDATASESSIONID
  2137. CLASS
  2138. CLASSLIBRARY
  2139. SetObjRf.prg
  2140. SETOBJRF
  2141. LAINSTANCES
  2142. CLASS
  2143. VNEWVAL
  2144. ERROR
  2145. ERROR()
  2146. nError
  2147. PROGRAM()
  2148. cMethod
  2149. LINENO()
  2150. nLine
  2151. &lcOnError
  2152. Error:           
  2153. Method:       
  2154. Line:            
  2155. NERROR
  2156. CMETHOD
  2157. NLINE    
  2158. LCONERROR
  2159. LCERRORMSG
  2160. LCCODELINEMSG
  2161. LIGNOREERRORS
  2162. CAPTIONL
  2163. LSETHOST
  2164. SETHOST
  2165. LAUTOSETOBJECTREFS
  2166. SETOBJECTREFSD
  2167. LRELEASE
  2168. RELEASEOBJREFS
  2169. OHOST
  2170. release,
  2171. setobjectref
  2172. setobjectrefs
  2173. releaseobjrefs
  2174. nobjectrefcount_access
  2175. nobjectrefcount_assigni
  2176. sethost
  2177. newinstance
  2178. addtoproject
  2179. ninstances_access
  2180. ninstances_assign/
  2181. ErrorP
  2182. Destroy+    
  2183. form 
  2184. formset 
  2185. toolbar 
  2186. LCBASECLASS
  2187. LRELEASE    
  2188. BASECLASS
  2189. OHOST
  2190. RELEASEOBJREFSw
  2191. TCNAME
  2192. TVCLASS
  2193. TVCLASSLIBRARY
  2194. LVRESULT
  2195. VRESULT
  2196. CSETOBJREFPROGRAM
  2197. TOOBJECT
  2198. this.
  2199. oObject=this.&lcName
  2200. oObjectb
  2201. Release
  2202. oHost
  2203. this.&lcName=.NULL.
  2204. LCNAME
  2205. OOBJECT
  2206. LNCOUNT
  2207. NOBJECTREFCOUNT
  2208. AOBJECTREFS
  2209. RELEASE
  2210. OHOSTZ
  2211. LNOBJECTREFCOUNT
  2212. AOBJECTREFS
  2213. VNEWVAL.
  2214. thisformb
  2215. OHOST
  2216. THISFORM
  2217. DATASESSIONv
  2218. tnDataSessionIDb
  2219. TNDATASESSIONID
  2220. ONEWOBJECT
  2221. LNLASTDATASESSIONID
  2222. CLASS
  2223. CLASSLIBRARY
  2224. SetObjRf.prg
  2225. SETOBJRF
  2226. LAINSTANCES
  2227. CLASS
  2228. VNEWVAL
  2229. ERROR
  2230. ERROR()
  2231. nError
  2232. PROGRAM()
  2233. cMethod
  2234. LINENO()
  2235. nLine
  2236. &lcOnError
  2237. Error:           
  2238. Method:       
  2239. Line:            
  2240. NERROR
  2241. CMETHOD
  2242. NLINE    
  2243. LCONERROR
  2244. LCERRORMSG
  2245. LCCODELINEMSG
  2246. LIGNOREERRORS
  2247. CAPTIONL
  2248. LSETHOST
  2249. SETHOST
  2250. LAUTOSETOBJECTREFS
  2251. SETOBJECTREFSD
  2252. LRELEASE
  2253. RELEASEOBJREFS
  2254. OHOST
  2255. release,
  2256. setobjectref
  2257. setobjectrefs
  2258. releaseobjrefs
  2259. nobjectrefcount_access
  2260. nobjectrefcount_assigni
  2261. sethost
  2262. newinstance
  2263. addtoproject
  2264. ninstances_access
  2265. ninstances_assign/
  2266. ErrorP
  2267. Destroy+    
  2268. form 
  2269. formset 
  2270. toolbar 
  2271. LCBASECLASS
  2272. LRELEASE    
  2273. BASECLASS
  2274. OHOST
  2275. RELEASEOBJREFSw
  2276. TCNAME
  2277. TVCLASS
  2278. TVCLASSLIBRARY
  2279. LVRESULT
  2280. VRESULT
  2281. CSETOBJREFPROGRAM
  2282. TOOBJECT
  2283. this.
  2284. oObject=this.&lcName
  2285. oObjectb
  2286. Release
  2287. oHost
  2288. this.&lcName=.NULL.
  2289. LCNAME
  2290. OOBJECT
  2291. LNCOUNT
  2292. NOBJECTREFCOUNT
  2293. AOBJECTREFS
  2294. RELEASE
  2295. OHOSTZ
  2296. LNOBJECTREFCOUNT
  2297. AOBJECTREFS
  2298. VNEWVAL.
  2299. thisformb
  2300. OHOST
  2301. THISFORM
  2302. DATASESSIONv
  2303. tnDataSessionIDb
  2304. TNDATASESSIONID
  2305. ONEWOBJECT
  2306. LNLASTDATASESSIONID
  2307. CLASS
  2308. CLASSLIBRARY
  2309. SetObjRf.prg
  2310. SETOBJRF
  2311. LAINSTANCES
  2312. CLASS
  2313. VNEWVAL
  2314. ERROR
  2315. ERROR()
  2316. nError
  2317. PROGRAM()
  2318. cMethod
  2319. LINENO()
  2320. nLine
  2321. &lcOnError
  2322. Error:           
  2323. Method:       
  2324. Line:            
  2325. NERROR
  2326. CMETHOD
  2327. NLINE    
  2328. LCONERROR
  2329. LCERRORMSG
  2330. LCCODELINEMSG
  2331. LIGNOREERRORS
  2332. CAPTIONL
  2333. LSETHOST
  2334. SETHOST
  2335. LAUTOSETOBJECTREFS
  2336. SETOBJECTREFSD
  2337. LRELEASE
  2338. RELEASEOBJREFS
  2339. OHOST
  2340. release,
  2341. setobjectref
  2342. setobjectrefs
  2343. releaseobjrefs
  2344. nobjectrefcount_access
  2345. nobjectrefcount_assigni
  2346. sethost
  2347. newinstance
  2348. addtoproject
  2349. ninstances_access
  2350. ninstances_assign/
  2351. ErrorP
  2352. Destroy+    
  2353. form 
  2354. formset 
  2355. toolbar 
  2356. LCBASECLASS
  2357. LRELEASE    
  2358. BASECLASS
  2359. OHOST
  2360. RELEASEOBJREFSw
  2361. TCNAME
  2362. TVCLASS
  2363. TVCLASSLIBRARY
  2364. LVRESULT
  2365. VRESULT
  2366. CSETOBJREFPROGRAM
  2367. TOOBJECT
  2368. this.
  2369. oObject=this.&lcName
  2370. oObjectb
  2371. Release
  2372. oHost
  2373. this.&lcName=.NULL.
  2374. LCNAME
  2375. OOBJECT
  2376. LNCOUNT
  2377. NOBJECTREFCOUNT
  2378. AOBJECTREFS
  2379. RELEASE
  2380. OHOSTZ
  2381. LNOBJECTREFCOUNT
  2382. AOBJECTREFS
  2383. VNEWVAL.
  2384. thisformb
  2385. OHOST
  2386. THISFORM
  2387. DATASESSIONv
  2388. tnDataSessionIDb
  2389. TNDATASESSIONID
  2390. ONEWOBJECT
  2391. LNLASTDATASESSIONID
  2392. CLASS
  2393. CLASSLIBRARY
  2394. SetObjRf.prg
  2395. SETOBJRF
  2396. LAINSTANCES
  2397. CLASS
  2398. VNEWVAL
  2399. ERROR
  2400. ERROR()
  2401. nError
  2402. PROGRAM()
  2403. cMethod
  2404. LINENO()
  2405. nLine
  2406. &lcOnError
  2407. Error:           
  2408. Method:       
  2409. Line:            
  2410. NERROR
  2411. CMETHOD
  2412. NLINE    
  2413. LCONERROR
  2414. LCERRORMSG
  2415. LCCODELINEMSG
  2416. LIGNOREERRORS
  2417. CAPTIONL
  2418. LSETHOST
  2419. SETHOST
  2420. LAUTOSETOBJECTREFS
  2421. SETOBJECTREFSD
  2422. LRELEASE
  2423. RELEASEOBJREFS
  2424. OHOST
  2425. release,
  2426. setobjectref
  2427. setobjectrefs
  2428. releaseobjrefs
  2429. nobjectrefcount_access
  2430. nobjectrefcount_assigni
  2431. sethost
  2432. newinstance
  2433. addtoproject
  2434. ninstances_access
  2435. ninstances_assign/
  2436. ErrorP
  2437. Destroy+    
  2438. form 
  2439. formset 
  2440. toolbar 
  2441. LCBASECLASS
  2442. LRELEASE    
  2443. BASECLASS
  2444. OHOST
  2445. RELEASEOBJREFSw
  2446. TCNAME
  2447. TVCLASS
  2448. TVCLASSLIBRARY
  2449. LVRESULT
  2450. VRESULT
  2451. CSETOBJREFPROGRAM
  2452. TOOBJECT
  2453. this.
  2454. oObject=this.&lcName
  2455. oObjectb
  2456. Release
  2457. oHost
  2458. this.&lcName=.NULL.
  2459. LCNAME
  2460. OOBJECT
  2461. LNCOUNT
  2462. NOBJECTREFCOUNT
  2463. AOBJECTREFS
  2464. RELEASE
  2465. OHOSTZ
  2466. LNOBJECTREFCOUNT
  2467. AOBJECTREFS
  2468. VNEWVAL.
  2469. thisformb
  2470. OHOST
  2471. THISFORM
  2472. DATASESSIONv
  2473. tnDataSessionIDb
  2474. TNDATASESSIONID
  2475. ONEWOBJECT
  2476. LNLASTDATASESSIONID
  2477. CLASS
  2478. CLASSLIBRARY
  2479. SetObjRf.prg
  2480. SETOBJRF
  2481. LAINSTANCES
  2482. CLASS
  2483. VNEWVAL
  2484. ERROR
  2485. ERROR()
  2486. nError
  2487. PROGRAM()
  2488. cMethod
  2489. LINENO()
  2490. nLine
  2491. &lcOnError
  2492. Error:           
  2493. Method:       
  2494. Line:            
  2495. NERROR
  2496. CMETHOD
  2497. NLINE    
  2498. LCONERROR
  2499. LCERRORMSG
  2500. LCCODELINEMSG
  2501. LIGNOREERRORS
  2502. CAPTIONL
  2503. LSETHOST
  2504. SETHOST
  2505. LAUTOSETOBJECTREFS
  2506. SETOBJECTREFSD
  2507. LRELEASE
  2508. RELEASEOBJREFS
  2509. OHOST
  2510. release,
  2511. setobjectref
  2512. setobjectrefs
  2513. releaseobjrefs
  2514. nobjectrefcount_access
  2515. nobjectrefcount_assigni
  2516. sethost
  2517. newinstance
  2518. addtoproject
  2519. ninstances_access
  2520. ninstances_assign/
  2521. ErrorP
  2522. Destroy+    
  2523. form 
  2524. formset 
  2525. toolbar 
  2526. LCBASECLASS
  2527. LRELEASE    
  2528. BASECLASS
  2529. OHOST
  2530. RELEASEOBJREFSw
  2531. TCNAME
  2532. TVCLASS
  2533. TVCLASSLIBRARY
  2534. LVRESULT
  2535. VRESULT
  2536. CSETOBJREFPROGRAM
  2537. TOOBJECT
  2538. this.
  2539. oObject=this.&lcName
  2540. oObjectb
  2541. Release
  2542. oHost
  2543. this.&lcName=.NULL.
  2544. LCNAME
  2545. OOBJECT
  2546. LNCOUNT
  2547. NOBJECTREFCOUNT
  2548. AOBJECTREFS
  2549. RELEASE
  2550. OHOSTZ
  2551. LNOBJECTREFCOUNT
  2552. AOBJECTREFS
  2553. VNEWVAL.
  2554. thisformb
  2555. OHOST
  2556. THISFORM
  2557. DATASESSIONv
  2558. tnDataSessionIDb
  2559. TNDATASESSIONID
  2560. ONEWOBJECT
  2561. LNLASTDATASESSIONID
  2562. CLASS
  2563. CLASSLIBRARY
  2564. SetObjRf.prg
  2565. SETOBJRF
  2566. LAINSTANCES
  2567. CLASS
  2568. VNEWVAL
  2569. ERROR
  2570. ERROR()
  2571. nError
  2572. PROGRAM()
  2573. cMethod
  2574. LINENO()
  2575. nLine
  2576. &lcOnError
  2577. Error:           
  2578. Method:       
  2579. Line:            
  2580. NERROR
  2581. CMETHOD
  2582. NLINE    
  2583. LCONERROR
  2584. LCERRORMSG
  2585. LCCODELINEMSG
  2586. LIGNOREERRORS
  2587. CAPTIONL
  2588. LSETHOST
  2589. SETHOST
  2590. LAUTOSETOBJECTREFS
  2591. SETOBJECTREFSD
  2592. LRELEASE
  2593. RELEASEOBJREFS
  2594. OHOST
  2595. release,
  2596. setobjectref
  2597. setobjectrefs
  2598. releaseobjrefs
  2599. nobjectrefcount_access
  2600. nobjectrefcount_assigni
  2601. sethost
  2602. newinstance
  2603. addtoproject
  2604. ninstances_access
  2605. ninstances_assign/
  2606. ErrorP
  2607. Destroy+    
  2608. form 
  2609. formset 
  2610. toolbar 
  2611. LCBASECLASS
  2612. LRELEASE    
  2613. BASECLASS
  2614. OHOST
  2615. RELEASEOBJREFSw
  2616. TCNAME
  2617. TVCLASS
  2618. TVCLASSLIBRARY
  2619. LVRESULT
  2620. VRESULT
  2621. CSETOBJREFPROGRAM
  2622. TOOBJECT
  2623. this.
  2624. oObject=this.&lcName
  2625. oObjectb
  2626. Release
  2627. oHost
  2628. this.&lcName=.NULL.
  2629. LCNAME
  2630. OOBJECT
  2631. LNCOUNT
  2632. NOBJECTREFCOUNT
  2633. AOBJECTREFS
  2634. RELEASE
  2635. OHOSTZ
  2636. LNOBJECTREFCOUNT
  2637. AOBJECTREFS
  2638. VNEWVAL.
  2639. thisformb
  2640. OHOST
  2641. THISFORM
  2642. DATASESSIONv
  2643. tnDataSessionIDb
  2644. TNDATASESSIONID
  2645. ONEWOBJECT
  2646. LNLASTDATASESSIONID
  2647. CLASS
  2648. CLASSLIBRARY
  2649. SetObjRf.prg
  2650. SETOBJRF
  2651. LAINSTANCES
  2652. CLASS
  2653. VNEWVAL
  2654. ERROR
  2655. ERROR()
  2656. nError
  2657. PROGRAM()
  2658. cMethod
  2659. LINENO()
  2660. nLine
  2661. &lcOnError
  2662. Error:           
  2663. Method:       
  2664. Line:            
  2665. NERROR
  2666. CMETHOD
  2667. NLINE    
  2668. LCONERROR
  2669. LCERRORMSG
  2670. LCCODELINEMSG
  2671. LIGNOREERRORS
  2672. CAPTIONL
  2673. LSETHOST
  2674. SETHOST
  2675. LAUTOSETOBJECTREFS
  2676. SETOBJECTREFSD
  2677. LRELEASE
  2678. RELEASEOBJREFS
  2679. OHOST
  2680. release,
  2681. setobjectref
  2682. setobjectrefs
  2683. releaseobjrefs
  2684. nobjectrefcount_access
  2685. nobjectrefcount_assigni
  2686. sethost
  2687. newinstance
  2688. addtoproject
  2689. ninstances_access
  2690. ninstances_assign/
  2691. ErrorP
  2692. Destroy+    
  2693. form 
  2694. formset 
  2695. toolbar 
  2696. LCBASECLASS
  2697. LRELEASE    
  2698. BASECLASS
  2699. OHOST
  2700. RELEASEOBJREFSw
  2701. TCNAME
  2702. TVCLASS
  2703. TVCLASSLIBRARY
  2704. LVRESULT
  2705. VRESULT
  2706. CSETOBJREFPROGRAM
  2707. TOOBJECT
  2708. this.
  2709. oObject=this.&lcName
  2710. oObjectb
  2711. Release
  2712. oHost
  2713. this.&lcName=.NULL.
  2714. LCNAME
  2715. OOBJECT
  2716. LNCOUNT
  2717. NOBJECTREFCOUNT
  2718. AOBJECTREFS
  2719. RELEASE
  2720. OHOSTZ
  2721. LNOBJECTREFCOUNT
  2722. AOBJECTREFS
  2723. VNEWVAL.
  2724. thisformb
  2725. OHOST
  2726. THISFORM
  2727. DATASESSIONv
  2728. tnDataSessionIDb
  2729. TNDATASESSIONID
  2730. ONEWOBJECT
  2731. LNLASTDATASESSIONID
  2732. CLASS
  2733. CLASSLIBRARY
  2734. SetObjRf.prg
  2735. SETOBJRF
  2736. LAINSTANCES
  2737. CLASS
  2738. VNEWVAL
  2739. ERROR
  2740. ERROR()
  2741. nError
  2742. PROGRAM()
  2743. cMethod
  2744. LINENO()
  2745. nLine
  2746. &lcOnError
  2747. Error:           
  2748. Method:       
  2749. Line:            
  2750. NERROR
  2751. CMETHOD
  2752. NLINE    
  2753. LCONERROR
  2754. LCERRORMSG
  2755. LCCODELINEMSG
  2756. LIGNOREERRORS
  2757. CAPTIONL
  2758. LSETHOST
  2759. SETHOST
  2760. LAUTOSETOBJECTREFS
  2761. SETOBJECTREFSD
  2762. LRELEASE
  2763. RELEASEOBJREFS
  2764. OHOST
  2765. release,
  2766. setobjectref
  2767. setobjectrefs
  2768. releaseobjrefs
  2769. nobjectrefcount_access
  2770. nobjectrefcount_assigni
  2771. sethost
  2772. newinstance
  2773. addtoproject
  2774. ninstances_access
  2775. ninstances_assign/
  2776. ErrorP
  2777. Destroy+    
  2778. form 
  2779. formset 
  2780. toolbar 
  2781. LCBASECLASS
  2782. LRELEASE    
  2783. BASECLASS
  2784. OHOST
  2785. RELEASEOBJREFSw
  2786. TCNAME
  2787. TVCLASS
  2788. TVCLASSLIBRARY
  2789. LVRESULT
  2790. VRESULT
  2791. CSETOBJREFPROGRAM
  2792. TOOBJECT
  2793. this.
  2794. oObject=this.&lcName
  2795. oObjectb
  2796. Release
  2797. oHost
  2798. this.&lcName=.NULL.
  2799. LCNAME
  2800. OOBJECT
  2801. LNCOUNT
  2802. NOBJECTREFCOUNT
  2803. AOBJECTREFS
  2804. RELEASE
  2805. OHOSTZ
  2806. LNOBJECTREFCOUNT
  2807. AOBJECTREFS
  2808. VNEWVAL.
  2809. thisformb
  2810. OHOST
  2811. THISFORM
  2812. DATASESSIONv
  2813. tnDataSessionIDb
  2814. TNDATASESSIONID
  2815. ONEWOBJECT
  2816. LNLASTDATASESSIONID
  2817. CLASS
  2818. CLASSLIBRARY
  2819. SetObjRf.prg
  2820. SETOBJRF
  2821. LAINSTANCES
  2822. CLASS
  2823. VNEWVAL
  2824. ERROR
  2825. ERROR()
  2826. nError
  2827. PROGRAM()
  2828. cMethod
  2829. LINENO()
  2830. nLine
  2831. &lcOnError
  2832. Error:           
  2833. Method:       
  2834. Line:            
  2835. NERROR
  2836. CMETHOD
  2837. NLINE    
  2838. LCONERROR
  2839. LCERRORMSG
  2840. LCCODELINEMSG
  2841. LIGNOREERRORS
  2842. CAPTIONL
  2843. LSETHOST
  2844. SETHOST
  2845. LAUTOSETOBJECTREFS
  2846. SETOBJECTREFSD
  2847. LRELEASE
  2848. RELEASEOBJREFS
  2849. OHOST
  2850. release,
  2851. setobjectref
  2852. setobjectrefs
  2853. releaseobjrefs
  2854. nobjectrefcount_access
  2855. nobjectrefcount_assigni
  2856. sethost
  2857. newinstance
  2858. addtoproject
  2859. ninstances_access
  2860. ninstances_assign/
  2861. ErrorP
  2862. Destroy+    
  2863. form 
  2864. formset 
  2865. toolbar 
  2866. LCBASECLASS
  2867. LRELEASE    
  2868. BASECLASS
  2869. OHOST
  2870. RELEASEOBJREFSw
  2871. TCNAME
  2872. TVCLASS
  2873. TVCLASSLIBRARY
  2874. LVRESULT
  2875. VRESULT
  2876. CSETOBJREFPROGRAM
  2877. TOOBJECT
  2878. this.
  2879. oObject=this.&lcName
  2880. oObjectb
  2881. Release
  2882. oHost
  2883. this.&lcName=.NULL.
  2884. LCNAME
  2885. OOBJECT
  2886. LNCOUNT
  2887. NOBJECTREFCOUNT
  2888. AOBJECTREFS
  2889. RELEASE
  2890. OHOSTZ
  2891. LNOBJECTREFCOUNT
  2892. AOBJECTREFS
  2893. VNEWVAL.
  2894. thisformb
  2895. OHOST
  2896. THISFORM
  2897. DATASESSIONv
  2898. tnDataSessionIDb
  2899. TNDATASESSIONID
  2900. ONEWOBJECT
  2901. LNLASTDATASESSIONID
  2902. CLASS
  2903. CLASSLIBRARY
  2904. SetObjRf.prg
  2905. SETOBJRF
  2906. LAINSTANCES
  2907. CLASS
  2908. VNEWVAL
  2909. ERROR
  2910. ERROR()
  2911. nError
  2912. PROGRAM()
  2913. cMethod
  2914. LINENO()
  2915. nLine
  2916. &lcOnError
  2917. Error:           
  2918. Method:       
  2919. Line:            
  2920. NERROR
  2921. CMETHOD
  2922. NLINE    
  2923. LCONERROR
  2924. LCERRORMSG
  2925. LCCODELINEMSG
  2926. LIGNOREERRORS
  2927. CAPTIONL
  2928. LSETHOST
  2929. SETHOST
  2930. LAUTOSETOBJECTREFS
  2931. SETOBJECTREFSD
  2932. LRELEASE
  2933. RELEASEOBJREFS
  2934. OHOST
  2935. release,
  2936. setobjectref
  2937. setobjectrefs
  2938. releaseobjrefs
  2939. nobjectrefcount_access
  2940. nobjectrefcount_assigni
  2941. sethost
  2942. newinstance
  2943. addtoproject
  2944. ninstances_access
  2945. ninstances_assign/
  2946. ErrorP
  2947. Destroy+    
  2948. form 
  2949. formset 
  2950. toolbar 
  2951. LCBASECLASS
  2952. LRELEASE    
  2953. BASECLASS
  2954. OHOST
  2955. RELEASEOBJREFSw
  2956. TCNAME
  2957. TVCLASS
  2958. TVCLASSLIBRARY
  2959. LVRESULT
  2960. VRESULT
  2961. CSETOBJREFPROGRAM
  2962. TOOBJECT
  2963. this.
  2964. oObject=this.&lcName
  2965. oObjectb
  2966. Release
  2967. oHost
  2968. this.&lcName=.NULL.
  2969. LCNAME
  2970. OOBJECT
  2971. LNCOUNT
  2972. NOBJECTREFCOUNT
  2973. AOBJECTREFS
  2974. RELEASE
  2975. OHOSTZ
  2976. LNOBJECTREFCOUNT
  2977. AOBJECTREFS
  2978. VNEWVAL.
  2979. thisformb
  2980. OHOST
  2981. THISFORM
  2982. DATASESSIONv
  2983. tnDataSessionIDb
  2984. TNDATASESSIONID
  2985. ONEWOBJECT
  2986. LNLASTDATASESSIONID
  2987. CLASS
  2988. CLASSLIBRARY
  2989. SetObjRf.prg
  2990. SETOBJRF
  2991. LAINSTANCES
  2992. CLASS
  2993. VNEWVAL
  2994. ERROR
  2995. ERROR()
  2996. nError
  2997. PROGRAM()
  2998. cMethod
  2999. LINENO()
  3000. nLine
  3001. &lcOnError
  3002. Error:           
  3003. Method:       
  3004. Line:            
  3005. NERROR
  3006. CMETHOD
  3007. NLINE    
  3008. LCONERROR
  3009. LCERRORMSG
  3010. LCCODELINEMSG
  3011. LIGNOREERRORS
  3012. CAPTIONL
  3013. LSETHOST
  3014. SETHOST
  3015. LAUTOSETOBJECTREFS
  3016. SETOBJECTREFSD
  3017. LRELEASE
  3018. RELEASEOBJREFS
  3019. OHOST
  3020. release,
  3021. setobjectref
  3022. setobjectrefs
  3023. releaseobjrefs
  3024. nobjectrefcount_access
  3025. nobjectrefcount_assigni
  3026. sethost
  3027. newinstance
  3028. addtoproject
  3029. ninstances_access
  3030. ninstances_assign/
  3031. ErrorP
  3032. Destroy+    
  3033. form 
  3034. formset 
  3035. toolbar 
  3036. LCBASECLASS
  3037. LRELEASE    
  3038. BASECLASS
  3039. OHOST
  3040. RELEASEOBJREFSw
  3041. TCNAME
  3042. TVCLASS
  3043. TVCLASSLIBRARY
  3044. LVRESULT
  3045. VRESULT
  3046. CSETOBJREFPROGRAM
  3047. TOOBJECT
  3048. this.
  3049. oObject=this.&lcName
  3050. oObjectb
  3051. Release
  3052. oHost
  3053. this.&lcName=.NULL.
  3054. LCNAME
  3055. OOBJECT
  3056. LNCOUNT
  3057. NOBJECTREFCOUNT
  3058. AOBJECTREFS
  3059. RELEASE
  3060. OHOSTZ
  3061. LNOBJECTREFCOUNT
  3062. AOBJECTREFS
  3063. VNEWVAL.
  3064. thisformb
  3065. OHOST
  3066. THISFORM
  3067. DATASESSIONv
  3068. tnDataSessionIDb
  3069. TNDATASESSIONID
  3070. ONEWOBJECT
  3071. LNLASTDATASESSIONID
  3072. CLASS
  3073. CLASSLIBRARY
  3074. SetObjRf.prg
  3075. SETOBJRF
  3076. LAINSTANCES
  3077. CLASS
  3078. VNEWVAL
  3079. ERROR
  3080. ERROR()
  3081. nError
  3082. PROGRAM()
  3083. cMethod
  3084. LINENO()
  3085. nLine
  3086. &lcOnError
  3087. Error:           
  3088. Method:       
  3089. Line:            
  3090. NERROR
  3091. CMETHOD
  3092. NLINE    
  3093. LCONERROR
  3094. LCERRORMSG
  3095. LCCODELINEMSG
  3096. LIGNOREERRORS
  3097. CAPTIONL
  3098. LSETHOST
  3099. SETHOST
  3100. LAUTOSETOBJECTREFS
  3101. SETOBJECTREFSD
  3102. LRELEASE
  3103. RELEASEOBJREFS
  3104. OHOST
  3105. release,
  3106. setobjectref
  3107. setobjectrefs
  3108. releaseobjrefs
  3109. nobjectrefcount_access
  3110. nobjectrefcount_assigni
  3111. sethost
  3112. newinstance
  3113. addtoproject
  3114. ninstances_access
  3115. ninstances_assign/
  3116. ErrorP
  3117. Destroy+    
  3118. form 
  3119. formset 
  3120. toolbar 
  3121. LCBASECLASS
  3122. LRELEASE    
  3123. BASECLASS
  3124. OHOST
  3125. RELEASEOBJREFSw
  3126. TCNAME
  3127. TVCLASS
  3128. TVCLASSLIBRARY
  3129. LVRESULT
  3130. VRESULT
  3131. CSETOBJREFPROGRAM
  3132. TOOBJECT
  3133. this.
  3134. oObject=this.&lcName
  3135. oObjectb
  3136. Release
  3137. oHost
  3138. this.&lcName=.NULL.
  3139. LCNAME
  3140. OOBJECT
  3141. LNCOUNT
  3142. NOBJECTREFCOUNT
  3143. AOBJECTREFS
  3144. RELEASE
  3145. OHOSTZ
  3146. LNOBJECTREFCOUNT
  3147. AOBJECTREFS
  3148. VNEWVAL.
  3149. thisformb
  3150. OHOST
  3151. THISFORM
  3152. DATASESSIONv
  3153. tnDataSessionIDb
  3154. TNDATASESSIONID
  3155. ONEWOBJECT
  3156. LNLASTDATASESSIONID
  3157. CLASS
  3158. CLASSLIBRARY
  3159. SetObjRf.prg
  3160. SETOBJRF
  3161. LAINSTANCES
  3162. CLASS
  3163. VNEWVAL
  3164. ERROR
  3165. ERROR()
  3166. nError
  3167. PROGRAM()
  3168. cMethod
  3169. LINENO()
  3170. nLine
  3171. &lcOnError
  3172. Error:           
  3173. Method:       
  3174. Line:            
  3175. NERROR
  3176. CMETHOD
  3177. NLINE    
  3178. LCONERROR
  3179. LCERRORMSG
  3180. LCCODELINEMSG
  3181. LIGNOREERRORS
  3182. CAPTIONL
  3183. LSETHOST
  3184. SETHOST
  3185. LAUTOSETOBJECTREFS
  3186. SETOBJECTREFSD
  3187. LRELEASE
  3188. RELEASEOBJREFS
  3189. OHOST
  3190. release,
  3191. setobjectref
  3192. setobjectrefs
  3193. releaseobjrefs
  3194. nobjectrefcount_access
  3195. nobjectrefcount_assigni
  3196. sethost
  3197. newinstance
  3198. addtoproject
  3199. ninstances_access
  3200. ninstances_assign/
  3201. ErrorP
  3202. Destroy+    
  3203. form 
  3204. formset 
  3205. toolbar 
  3206. LCBASECLASS
  3207. LRELEASE    
  3208. BASECLASS
  3209. OHOST
  3210. RELEASEOBJREFSw
  3211. TCNAME
  3212. TVCLASS
  3213. TVCLASSLIBRARY
  3214. LVRESULT
  3215. VRESULT
  3216. CSETOBJREFPROGRAM
  3217. TOOBJECT
  3218. this.
  3219. oObject=this.&lcName
  3220. oObjectb
  3221. Release
  3222. oHost
  3223. this.&lcName=.NULL.
  3224. LCNAME
  3225. OOBJECT
  3226. LNCOUNT
  3227. NOBJECTREFCOUNT
  3228. AOBJECTREFS
  3229. RELEASE
  3230. OHOSTZ
  3231. LNOBJECTREFCOUNT
  3232. AOBJECTREFS
  3233. VNEWVAL.
  3234. thisformb
  3235. OHOST
  3236. THISFORM
  3237. DATASESSIONv
  3238. tnDataSessionIDb
  3239. TNDATASESSIONID
  3240. ONEWOBJECT
  3241. LNLASTDATASESSIONID
  3242. CLASS
  3243. CLASSLIBRARY
  3244. SetObjRf.prg
  3245. SETOBJRF
  3246. LAINSTANCES
  3247. CLASS
  3248. VNEWVAL
  3249. ERROR
  3250. ERROR()
  3251. nError
  3252. PROGRAM()
  3253. cMethod
  3254. LINENO()
  3255. nLine
  3256. &lcOnError
  3257. Error:           
  3258. Method:       
  3259. Line:            
  3260. NERROR
  3261. CMETHOD
  3262. NLINE    
  3263. LCONERROR
  3264. LCERRORMSG
  3265. LCCODELINEMSG
  3266. LIGNOREERRORS
  3267. CAPTIONL
  3268. LSETHOST
  3269. SETHOST
  3270. LAUTOSETOBJECTREFS
  3271. SETOBJECTREFSD
  3272. LRELEASE
  3273. RELEASEOBJREFS
  3274. OHOST
  3275. release,
  3276. setobjectref
  3277. setobjectrefs
  3278. releaseobjrefs
  3279. nobjectrefcount_access
  3280. nobjectrefcount_assigni
  3281. sethost
  3282. newinstance
  3283. addtoproject
  3284. ninstances_access
  3285. ninstances_assign/
  3286. ErrorP
  3287. Destroy+    
  3288. form 
  3289. formset 
  3290. toolbar 
  3291. LCBASECLASS
  3292. LRELEASE    
  3293. BASECLASS
  3294. OHOST
  3295. RELEASEOBJREFSw
  3296. TCNAME
  3297. TVCLASS
  3298. TVCLASSLIBRARY
  3299. LVRESULT
  3300. VRESULT
  3301. CSETOBJREFPROGRAM
  3302. TOOBJECT
  3303. this.
  3304. oObject=this.&lcName
  3305. oObjectb
  3306. Release
  3307. oHost
  3308. this.&lcName=.NULL.
  3309. LCNAME
  3310. OOBJECT
  3311. LNCOUNT
  3312. NOBJECTREFCOUNT
  3313. AOBJECTREFS
  3314. RELEASE
  3315. OHOSTZ
  3316. LNOBJECTREFCOUNT
  3317. AOBJECTREFS
  3318. VNEWVAL.
  3319. thisformb
  3320. OHOST
  3321. THISFORM
  3322. DATASESSIONv
  3323. tnDataSessionIDb
  3324. TNDATASESSIONID
  3325. ONEWOBJECT
  3326. LNLASTDATASESSIONID
  3327. CLASS
  3328. CLASSLIBRARY
  3329. SetObjRf.prg
  3330. SETOBJRF
  3331. LAINSTANCES
  3332. CLASS
  3333. VNEWVAL
  3334. ERROR
  3335. ERROR()
  3336. nError
  3337. PROGRAM()
  3338. cMethod
  3339. LINENO()
  3340. nLine
  3341. &lcOnError
  3342. Error:           
  3343. Method:       
  3344. Line:            
  3345. NERROR
  3346. CMETHOD
  3347. NLINE    
  3348. LCONERROR
  3349. LCERRORMSG
  3350. LCCODELINEMSG
  3351. LIGNOREERRORS
  3352. CAPTIONL
  3353. LSETHOST
  3354. SETHOST
  3355. LAUTOSETOBJECTREFS
  3356. SETOBJECTREFSD
  3357. LRELEASE
  3358. RELEASEOBJREFS
  3359. OHOST
  3360. release,
  3361. setobjectref
  3362. setobjectrefs
  3363. releaseobjrefs
  3364. nobjectrefcount_access
  3365. nobjectrefcount_assigni
  3366. sethost
  3367. newinstance
  3368. addtoproject
  3369. ninstances_access
  3370. ninstances_assign/
  3371. ErrorP
  3372. Destroy+    
  3373. form 
  3374. formset 
  3375. toolbar 
  3376. LCBASECLASS
  3377. LRELEASE    
  3378. BASECLASS
  3379. OHOST
  3380. RELEASEOBJREFSw
  3381. TCNAME
  3382. TVCLASS
  3383. TVCLASSLIBRARY
  3384. LVRESULT
  3385. VRESULT
  3386. CSETOBJREFPROGRAM
  3387. TOOBJECT
  3388. this.
  3389. oObject=this.&lcName
  3390. oObjectb
  3391. Release
  3392. oHost
  3393. this.&lcName=.NULL.
  3394. LCNAME
  3395. OOBJECT
  3396. LNCOUNT
  3397. NOBJECTREFCOUNT
  3398. AOBJECTREFS
  3399. RELEASE
  3400. OHOSTZ
  3401. LNOBJECTREFCOUNT
  3402. AOBJECTREFS
  3403. VNEWVAL.
  3404. thisformb
  3405. OHOST
  3406. THISFORM
  3407. DATASESSIONv
  3408. tnDataSessionIDb
  3409. TNDATASESSIONID
  3410. ONEWOBJECT
  3411. LNLASTDATASESSIONID
  3412. CLASS
  3413. CLASSLIBRARY
  3414. SetObjRf.prg
  3415. SETOBJRF
  3416. LAINSTANCES
  3417. CLASS
  3418. VNEWVAL
  3419. ERROR
  3420. ERROR()
  3421. nError
  3422. PROGRAM()
  3423. cMethod
  3424. LINENO()
  3425. nLine
  3426. &lcOnError
  3427. Error:           
  3428. Method:       
  3429. Line:            
  3430. NERROR
  3431. CMETHOD
  3432. NLINE    
  3433. LCONERROR
  3434. LCERRORMSG
  3435. LCCODELINEMSG
  3436. LIGNOREERRORS
  3437. CAPTIONL
  3438. LSETHOST
  3439. SETHOST
  3440. LAUTOSETOBJECTREFS
  3441. SETOBJECTREFSD
  3442. LRELEASE
  3443. RELEASEOBJREFS
  3444. OHOST
  3445. release,
  3446. setobjectref
  3447. setobjectrefs
  3448. releaseobjrefs
  3449. nobjectrefcount_access
  3450. nobjectrefcount_assigni
  3451. sethost
  3452. newinstance
  3453. addtoproject
  3454. ninstances_access
  3455. ninstances_assign/
  3456. ErrorP
  3457. Destroy+    
  3458. form 
  3459. formset 
  3460. toolbar 
  3461. LCBASECLASS
  3462. LRELEASE    
  3463. BASECLASS
  3464. OHOST
  3465. RELEASEOBJREFSw
  3466. TCNAME
  3467. TVCLASS
  3468. TVCLASSLIBRARY
  3469. LVRESULT
  3470. VRESULT
  3471. CSETOBJREFPROGRAM
  3472. TOOBJECT
  3473. this.
  3474. oObject=this.&lcName
  3475. oObjectb
  3476. Release
  3477. oHost
  3478. this.&lcName=.NULL.
  3479. LCNAME
  3480. OOBJECT
  3481. LNCOUNT
  3482. NOBJECTREFCOUNT
  3483. AOBJECTREFS
  3484. RELEASE
  3485. OHOSTZ
  3486. LNOBJECTREFCOUNT
  3487. AOBJECTREFS
  3488. VNEWVAL.
  3489. thisformb
  3490. OHOST
  3491. THISFORM
  3492. DATASESSIONv
  3493. tnDataSessionIDb
  3494. TNDATASESSIONID
  3495. ONEWOBJECT
  3496. LNLASTDATASESSIONID
  3497. CLASS
  3498. CLASSLIBRARY
  3499. SetObjRf.prg
  3500. SETOBJRF
  3501. LAINSTANCES
  3502. CLASS
  3503. VNEWVAL
  3504. ERROR
  3505. ERROR()
  3506. nError
  3507. PROGRAM()
  3508. cMethod
  3509. LINENO()
  3510. nLine
  3511. &lcOnError
  3512. Error:           
  3513. Method:       
  3514. Line:            
  3515. NERROR
  3516. CMETHOD
  3517. NLINE    
  3518. LCONERROR
  3519. LCERRORMSG
  3520. LCCODELINEMSG
  3521. LIGNOREERRORS
  3522. CAPTIONL
  3523. LSETHOST
  3524. SETHOST
  3525. LAUTOSETOBJECTREFS
  3526. SETOBJECTREFSD
  3527. LRELEASE
  3528. RELEASEOBJREFS
  3529. OHOST
  3530. release,
  3531. setobjectref
  3532. setobjectrefs
  3533. releaseobjrefs
  3534. nobjectrefcount_access
  3535. nobjectrefcount_assigni
  3536. sethost
  3537. newinstance
  3538. addtoproject
  3539. ninstances_access
  3540. ninstances_assign/
  3541. ErrorP
  3542. Destroy+    
  3543. form 
  3544. formset 
  3545. toolbar 
  3546. LCBASECLASS
  3547. LRELEASE    
  3548. BASECLASS
  3549. OHOST
  3550. RELEASEOBJREFSw
  3551. TCNAME
  3552. TVCLASS
  3553. TVCLASSLIBRARY
  3554. LVRESULT
  3555. VRESULT
  3556. CSETOBJREFPROGRAM
  3557. TOOBJECT
  3558. this.
  3559. oObject=this.&lcName
  3560. oObjectb
  3561. Release
  3562. oHost
  3563. this.&lcName=.NULL.
  3564. LCNAME
  3565. OOBJECT
  3566. LNCOUNT
  3567. NOBJECTREFCOUNT
  3568. AOBJECTREFS
  3569. RELEASE
  3570. OHOSTZ
  3571. LNOBJECTREFCOUNT
  3572. AOBJECTREFS
  3573. VNEWVAL.
  3574. thisformb
  3575. OHOST
  3576. THISFORM
  3577. DATASESSIONv
  3578. tnDataSessionIDb
  3579. TNDATASESSIONID
  3580. ONEWOBJECT
  3581. LNLASTDATASESSIONID
  3582. CLASS
  3583. CLASSLIBRARY
  3584. SetObjRf.prg
  3585. SETOBJRF
  3586. LAINSTANCES
  3587. CLASS
  3588. VNEWVAL
  3589. ERROR
  3590. ERROR()
  3591. nError
  3592. PROGRAM()
  3593. cMethod
  3594. LINENO()
  3595. nLine
  3596. &lcOnError
  3597. Error:           
  3598. Method:       
  3599. Line:            
  3600. NERROR
  3601. CMETHOD
  3602. NLINE    
  3603. LCONERROR
  3604. LCERRORMSG
  3605. LCCODELINEMSG
  3606. LIGNOREERRORS
  3607. CAPTIONL
  3608. LSETHOST
  3609. SETHOST
  3610. LAUTOSETOBJECTREFS
  3611. SETOBJECTREFSD
  3612. LRELEASE
  3613. RELEASEOBJREFS
  3614. OHOST
  3615. release,
  3616. setobjectref
  3617. setobjectrefs
  3618. releaseobjrefs
  3619. nobjectrefcount_access
  3620. nobjectrefcount_assigni
  3621. sethost
  3622. newinstance
  3623. addtoproject
  3624. ninstances_access
  3625. ninstances_assign/
  3626. ErrorP
  3627. Destroy+    
  3628. form 
  3629. formset 
  3630. toolbar 
  3631. LCBASECLASS
  3632. LRELEASE    
  3633. BASECLASS
  3634. OHOST
  3635. RELEASEOBJREFSw
  3636. TCNAME
  3637. TVCLASS
  3638. TVCLASSLIBRARY
  3639. LVRESULT
  3640. VRESULT
  3641. CSETOBJREFPROGRAM
  3642. TOOBJECT
  3643. this.
  3644. oObject=this.&lcName
  3645. oObjectb
  3646. Release
  3647. oHost
  3648. this.&lcName=.NULL.
  3649. LCNAME
  3650. OOBJECT
  3651. LNCOUNT
  3652. NOBJECTREFCOUNT
  3653. AOBJECTREFS
  3654. RELEASE
  3655. OHOSTZ
  3656. LNOBJECTREFCOUNT
  3657. AOBJECTREFS
  3658. VNEWVAL.
  3659. thisformb
  3660. OHOST
  3661. THISFORM
  3662. DATASESSIONv
  3663. tnDataSessionIDb
  3664. TNDATASESSIONID
  3665. ONEWOBJECT
  3666. LNLASTDATASESSIONID
  3667. CLASS
  3668. CLASSLIBRARY
  3669. SetObjRf.prg
  3670. SETOBJRF
  3671. LAINSTANCES
  3672. CLASS
  3673. VNEWVAL
  3674. ERROR
  3675. ERROR()
  3676. nError
  3677. PROGRAM()
  3678. cMethod
  3679. LINENO()
  3680. nLine
  3681. &lcOnError
  3682. Error:           
  3683. Method:       
  3684. Line:            
  3685. NERROR
  3686. CMETHOD
  3687. NLINE    
  3688. LCONERROR
  3689. LCERRORMSG
  3690. LCCODELINEMSG
  3691. LIGNOREERRORS
  3692. CAPTIONL
  3693. LSETHOST
  3694. SETHOST
  3695. LAUTOSETOBJECTREFS
  3696. SETOBJECTREFSD
  3697. LRELEASE
  3698. RELEASEOBJREFS
  3699. OHOST
  3700. release,
  3701. setobjectref
  3702. setobjectrefs
  3703. releaseobjrefs
  3704. nobjectrefcount_access
  3705. nobjectrefcount_assigni
  3706. sethost
  3707. newinstance
  3708. addtoproject
  3709. ninstances_access
  3710. ninstances_assign/
  3711. ErrorP
  3712. Destroy+    
  3713. form 
  3714. formset 
  3715. toolbar 
  3716. LCBASECLASS
  3717. LRELEASE    
  3718. BASECLASS
  3719. OHOST
  3720. RELEASEOBJREFSw
  3721. TCNAME
  3722. TVCLASS
  3723. TVCLASSLIBRARY
  3724. LVRESULT
  3725. VRESULT
  3726. CSETOBJREFPROGRAM
  3727. TOOBJECT
  3728. this.
  3729. oObject=this.&lcName
  3730. oObjectb
  3731. Release
  3732. oHost
  3733. this.&lcName=.NULL.
  3734. LCNAME
  3735. OOBJECT
  3736. LNCOUNT
  3737. NOBJECTREFCOUNT
  3738. AOBJECTREFS
  3739. RELEASE
  3740. OHOSTZ
  3741. LNOBJECTREFCOUNT
  3742. AOBJECTREFS
  3743. VNEWVAL.
  3744. thisformb
  3745. OHOST
  3746. THISFORM
  3747. DATASESSIONv
  3748. tnDataSessionIDb
  3749. TNDATASESSIONID
  3750. ONEWOBJECT
  3751. LNLASTDATASESSIONID
  3752. CLASS
  3753. CLASSLIBRARY
  3754. SetObjRf.prg
  3755. SETOBJRF
  3756. LAINSTANCES
  3757. CLASS
  3758. VNEWVAL
  3759. ERROR
  3760. ERROR()
  3761. nError
  3762. PROGRAM()
  3763. cMethod
  3764. LINENO()
  3765. nLine
  3766. &lcOnError
  3767. Error:           
  3768. Method:       
  3769. Line:            
  3770. NERROR
  3771. CMETHOD
  3772. NLINE    
  3773. LCONERROR
  3774. LCERRORMSG
  3775. LCCODELINEMSG
  3776. LIGNOREERRORS
  3777. CAPTIONL
  3778. LSETHOST
  3779. SETHOST
  3780. LAUTOSETOBJECTREFS
  3781. SETOBJECTREFSD
  3782. LRELEASE
  3783. RELEASEOBJREFS
  3784. OHOST
  3785. release,
  3786. setobjectref
  3787. setobjectrefs
  3788. releaseobjrefs
  3789. nobjectrefcount_access
  3790. nobjectrefcount_assigni
  3791. sethost
  3792. newinstance
  3793. addtoproject
  3794. ninstances_access
  3795. ninstances_assign/
  3796. ErrorP
  3797. Destroy+    
  3798. cversion Version property.
  3799. builder Bulder property.
  3800. builderx BuilderX property.
  3801. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  3802. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  3803. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  3804. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  3805. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  3806. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  3807. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  3808. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  3809. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  3810. ninstances
  3811. *release Releases object from memory.
  3812. *setobjectref Set object reference to specific property.
  3813. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  3814. *releaseobjrefs Releases all object references of aObjectRefs array.
  3815. *nobjectrefcount_access Access method for nObjectRefCount property.
  3816. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  3817. ^aobjectrefs[1,3] Array of object references properties.
  3818. *sethost Set oHost property to form reference object.
  3819. *newinstance Returns new instance of object.
  3820. *addtoproject Dummy code for adding files to project.
  3821. *ninstances_access 
  3822. *ninstances_assign 
  3823. cversion Version property.
  3824. builder Bulder property.
  3825. builderx BuilderX property.
  3826. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  3827. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  3828. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  3829. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  3830. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  3831. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  3832. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  3833. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  3834. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  3835. ninstances
  3836. *release Releases object from memory.
  3837. *setobjectref Set object reference to specific property.
  3838. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  3839. *releaseobjrefs Releases all object references of aObjectRefs array.
  3840. *nobjectrefcount_access Access method for nObjectRefCount property.
  3841. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  3842. ^aobjectrefs[1,3] Array of object references properties.
  3843. *sethost Set oHost property to form reference object.
  3844. *newinstance Returns new instance of object.
  3845. *addtoproject Dummy code for adding files to project.
  3846. *ninstances_access 
  3847. *ninstances_assign 
  3848. cversion Version property.
  3849. builder Bulder property.
  3850. builderx BuilderX property.
  3851. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  3852. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  3853. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  3854. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  3855. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  3856. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  3857. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  3858. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  3859. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  3860. ninstances
  3861. *release Releases object from memory.
  3862. *setobjectref Set object reference to specific property.
  3863. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  3864. *releaseobjrefs Releases all object references of aObjectRefs array.
  3865. *nobjectrefcount_access Access method for nObjectRefCount property.
  3866. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  3867. ^aobjectrefs[1,3] Array of object references properties.
  3868. *sethost Set oHost property to form reference object.
  3869. *newinstance Returns new instance of object.
  3870. *addtoproject Dummy code for adding files to project.
  3871. *ninstances_access 
  3872. *ninstances_assign 
  3873. form 
  3874. formset 
  3875. toolbar 
  3876. LCBASECLASS
  3877. LRELEASE    
  3878. BASECLASS
  3879. OHOST
  3880. RELEASEOBJREFSw
  3881. TCNAME
  3882. TVCLASS
  3883. TVCLASSLIBRARY
  3884. LVRESULT
  3885. VRESULT
  3886. CSETOBJREFPROGRAM
  3887. TOOBJECT
  3888. this.
  3889. oObject=this.&lcName
  3890. oObjectb
  3891. Release
  3892. oHost
  3893. this.&lcName=.NULL.
  3894. LCNAME
  3895. OOBJECT
  3896. LNCOUNT
  3897. NOBJECTREFCOUNT
  3898. AOBJECTREFS
  3899. RELEASE
  3900. OHOSTZ
  3901. LNOBJECTREFCOUNT
  3902. AOBJECTREFS
  3903. VNEWVAL.
  3904. thisformb
  3905. OHOST
  3906. THISFORM
  3907. DATASESSIONv
  3908. tnDataSessionIDb
  3909. TNDATASESSIONID
  3910. ONEWOBJECT
  3911. LNLASTDATASESSIONID
  3912. CLASS
  3913. CLASSLIBRARY
  3914. SetObjRf.prg
  3915. SETOBJRF
  3916. LAINSTANCES
  3917. CLASS
  3918. VNEWVAL
  3919. ERROR
  3920. ERROR()
  3921. nError
  3922. PROGRAM()
  3923. cMethod
  3924. LINENO()
  3925. nLine
  3926. &lcOnError
  3927. Error:           
  3928. Method:       
  3929. Line:            
  3930. NERROR
  3931. CMETHOD
  3932. NLINE    
  3933. LCONERROR
  3934. LCERRORMSG
  3935. LCCODELINEMSG
  3936. LIGNOREERRORS
  3937. CAPTIONL
  3938. LSETHOST
  3939. SETHOST
  3940. LAUTOSETOBJECTREFS
  3941. SETOBJECTREFSD
  3942. LRELEASE
  3943. RELEASEOBJREFS
  3944. OHOST
  3945. release,
  3946. setobjectref
  3947. setobjectrefs
  3948. releaseobjrefs
  3949. nobjectrefcount_access
  3950. nobjectrefcount_assigni
  3951. sethost
  3952. newinstance
  3953. addtoproject
  3954. ninstances_access
  3955. ninstances_assign/
  3956. ErrorP
  3957. Destroy+    
  3958. cversion Version property.
  3959. builder Bulder property.
  3960. builderx BuilderX property.
  3961. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  3962. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  3963. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  3964. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  3965. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  3966. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  3967. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  3968. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  3969. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  3970. ninstances
  3971. *release Releases object from memory.
  3972. *setobjectref Set object reference to specific property.
  3973. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  3974. *releaseobjrefs Releases all object references of aObjectRefs array.
  3975. *nobjectrefcount_access Access method for nObjectRefCount property.
  3976. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  3977. ^aobjectrefs[1,3] Array of object references properties.
  3978. *sethost Set oHost property to form reference object.
  3979. *newinstance Returns new instance of object.
  3980. *addtoproject Dummy code for adding files to project.
  3981. *ninstances_access 
  3982. *ninstances_assign 
  3983. form 
  3984. formset 
  3985. toolbar 
  3986. LCBASECLASS
  3987. LRELEASE    
  3988. BASECLASS
  3989. OHOST
  3990. RELEASEOBJREFSw
  3991. TCNAME
  3992. TVCLASS
  3993. TVCLASSLIBRARY
  3994. LVRESULT
  3995. VRESULT
  3996. CSETOBJREFPROGRAM
  3997. TOOBJECT
  3998. this.
  3999. oObject=this.&lcName
  4000. oObjectb
  4001. Release
  4002. oHost
  4003. this.&lcName=.NULL.
  4004. LCNAME
  4005. OOBJECT
  4006. LNCOUNT
  4007. NOBJECTREFCOUNT
  4008. AOBJECTREFS
  4009. RELEASE
  4010. OHOSTZ
  4011. LNOBJECTREFCOUNT
  4012. AOBJECTREFS
  4013. VNEWVAL.
  4014. thisformb
  4015. OHOST
  4016. THISFORM
  4017. DATASESSIONv
  4018. tnDataSessionIDb
  4019. TNDATASESSIONID
  4020. ONEWOBJECT
  4021. LNLASTDATASESSIONID
  4022. CLASS
  4023. CLASSLIBRARY
  4024. SetObjRf.prg
  4025. SETOBJRF
  4026. LAINSTANCES
  4027. CLASS
  4028. VNEWVAL
  4029. ERROR
  4030. ERROR()
  4031. nError
  4032. PROGRAM()
  4033. cMethod
  4034. LINENO()
  4035. nLine
  4036. &lcOnError
  4037. Error:           
  4038. Method:       
  4039. Line:            
  4040. NERROR
  4041. CMETHOD
  4042. NLINE    
  4043. LCONERROR
  4044. LCERRORMSG
  4045. LCCODELINEMSG
  4046. LIGNOREERRORS
  4047. CAPTIONL
  4048. LSETHOST
  4049. SETHOST
  4050. LAUTOSETOBJECTREFS
  4051. SETOBJECTREFSD
  4052. LRELEASE
  4053. RELEASEOBJREFS
  4054. OHOST
  4055. release,
  4056. setobjectref
  4057. setobjectrefs
  4058. releaseobjrefs
  4059. nobjectrefcount_access
  4060. nobjectrefcount_assigni
  4061. sethost
  4062. newinstance
  4063. addtoproject
  4064. ninstances_access
  4065. ninstances_assign/
  4066. ErrorP
  4067. Destroy+    
  4068. cversion Version property.
  4069. builder Bulder property.
  4070. builderx BuilderX property.
  4071. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4072. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4073. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4074. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4075. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4076. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4077. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4078. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4079. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4080. ninstances
  4081. *release Releases object from memory.
  4082. *setobjectref Set object reference to specific property.
  4083. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4084. *releaseobjrefs Releases all object references of aObjectRefs array.
  4085. *nobjectrefcount_access Access method for nObjectRefCount property.
  4086. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4087. ^aobjectrefs[1,3] Array of object references properties.
  4088. *sethost Set oHost property to form reference object.
  4089. *newinstance Returns new instance of object.
  4090. *addtoproject Dummy code for adding files to project.
  4091. *ninstances_access 
  4092. *ninstances_assign 
  4093. IPROCEDURE release
  4094. LOCAL lcBaseClass
  4095. IF this.lRelease
  4096.     NODEFAULT
  4097.     RETURN .F.
  4098. ENDIF
  4099. this.lRelease=.T.
  4100. lcBaseClass=LOWER(this.BaseClass)
  4101. this.oHost=.NULL.
  4102. this.ReleaseObjRefs
  4103. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4104.     RELEASE this
  4105. ENDIF
  4106. ENDPROC
  4107. PROCEDURE setobjectref
  4108. LPARAMETERS tcName,tvClass,tvClassLibrary
  4109. LOCAL lvResult
  4110. this.vResult=.T.
  4111. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4112. lvResult=this.vResult
  4113. this.vResult=.T.
  4114. RETURN lvResult
  4115. ENDPROC
  4116. PROCEDURE setobjectrefs
  4117. LPARAMETERS toObject
  4118. RETURN
  4119. ENDPROC
  4120. PROCEDURE releaseobjrefs
  4121. LOCAL lcName,oObject,lnCount
  4122. IF this.nObjectRefCount=0
  4123.     RETURN
  4124. ENDIF
  4125. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4126.     lcName=this.aObjectRefs[lnCount,1]
  4127.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4128.         LOOP
  4129.     ENDIF
  4130.     oObject=this.&lcName
  4131.     IF ISNULL(oObject)
  4132.         LOOP
  4133.     ENDIF
  4134.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4135.         oObject.Release
  4136.     ENDIF
  4137.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4138.         oObject.oHost=.NULL.
  4139.     ENDIF
  4140.     this.&lcName=.NULL.
  4141.     oObject=.NULL.
  4142. ENDFOR
  4143. DIMENSION this.aObjectRefs[1,3]
  4144. this.aObjectRefs=""
  4145. ENDPROC
  4146. PROCEDURE nobjectrefcount_access
  4147. LOCAL lnObjectRefCount
  4148. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4149. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4150.     lnObjectRefCount=0
  4151. ENDIF
  4152. RETURN lnObjectRefCount
  4153. ENDPROC
  4154. PROCEDURE nobjectrefcount_assign
  4155. LPARAMETERS m.vNewVal
  4156. ERROR 1743
  4157. ENDPROC
  4158. PROCEDURE sethost
  4159. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4160. ENDPROC
  4161. PROCEDURE newinstance
  4162. LPARAMETERS tnDataSessionID
  4163. LOCAL oNewObject,lnLastDataSessionID
  4164. lnLastDataSessionID=SET("DATASESSION")
  4165. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4166.     SET DATASESSION TO tnDataSessionID
  4167. ENDIF
  4168. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4169. SET DATASESSION TO (lnLastDataSessionID)
  4170. RETURN oNewObject
  4171. ENDPROC
  4172. PROCEDURE addtoproject
  4173. *-- Dummy code for adding files to project.
  4174. RETURN
  4175. DO SetObjRf.prg
  4176. ENDPROC
  4177. PROCEDURE ninstances_access
  4178. LOCAL laInstances[1]
  4179. RETURN AINSTANCE(laInstances,this.Class)
  4180. ENDPROC
  4181. PROCEDURE ninstances_assign
  4182. LPARAMETERS vNewVal
  4183. ERROR 1743
  4184. ENDPROC
  4185. PROCEDURE Error
  4186. LPARAMETERS nError, cMethod, nLine
  4187. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4188. IF this.lIgnoreErrors
  4189.     RETURN .F.
  4190. ENDIF
  4191. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4192. IF NOT EMPTY(lcOnError)
  4193.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4194.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4195.     &lcOnError
  4196.     RETURN
  4197. ENDIF
  4198. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4199.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  4200.         "Method:       "+LOWER(ALLTRIM(cMethod))
  4201. lcCodeLineMsg=MESSAGE(1)
  4202. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  4203.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  4204.     IF NOT EMPTY(lcCodeLineMsg)
  4205.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  4206.     ENDIF
  4207. ENDIF
  4208. WAIT CLEAR
  4209. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  4210. ERROR nError
  4211. ENDPROC
  4212. PROCEDURE Init
  4213. IF this.lSetHost
  4214.     this.SetHost
  4215. ENDIF
  4216. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  4217.     RETURN .F.
  4218. ENDIF
  4219. ENDPROC
  4220. PROCEDURE Destroy
  4221. IF this.lRelease
  4222.     RETURN .F.
  4223. ENDIF
  4224. this.lRelease=.T.
  4225. this.ReleaseObjRefs
  4226. this.oHost=.NULL.
  4227. ENDPROC
  4228. cversion Version property.
  4229. builder Bulder property.
  4230. builderx BuilderX property.
  4231. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4232. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4233. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4234. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4235. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4236. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4237. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4238. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4239. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4240. ninstances
  4241. *release Releases object from memory.
  4242. *setobjectref Set object reference to specific property.
  4243. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4244. *releaseobjrefs Releases all object references of aObjectRefs array.
  4245. *nobjectrefcount_access Access method for nObjectRefCount property.
  4246. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4247. ^aobjectrefs[1,3] Array of object references properties.
  4248. *sethost Set oHost property to form reference object.
  4249. *newinstance Returns new instance of object.
  4250. *addtoproject Dummy code for adding files to project.
  4251. *ninstances_access 
  4252. *ninstances_assign 
  4253. IPROCEDURE release
  4254. LOCAL lcBaseClass
  4255. IF this.lRelease
  4256.     NODEFAULT
  4257.     RETURN .F.
  4258. ENDIF
  4259. this.lRelease=.T.
  4260. lcBaseClass=LOWER(this.BaseClass)
  4261. this.oHost=.NULL.
  4262. this.ReleaseObjRefs
  4263. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4264.     RELEASE this
  4265. ENDIF
  4266. ENDPROC
  4267. PROCEDURE setobjectref
  4268. LPARAMETERS tcName,tvClass,tvClassLibrary
  4269. LOCAL lvResult
  4270. this.vResult=.T.
  4271. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4272. lvResult=this.vResult
  4273. this.vResult=.T.
  4274. RETURN lvResult
  4275. ENDPROC
  4276. PROCEDURE setobjectrefs
  4277. LPARAMETERS toObject
  4278. RETURN
  4279. ENDPROC
  4280. PROCEDURE releaseobjrefs
  4281. LOCAL lcName,oObject,lnCount
  4282. IF this.nObjectRefCount=0
  4283.     RETURN
  4284. ENDIF
  4285. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4286.     lcName=this.aObjectRefs[lnCount,1]
  4287.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4288.         LOOP
  4289.     ENDIF
  4290.     oObject=this.&lcName
  4291.     IF ISNULL(oObject)
  4292.         LOOP
  4293.     ENDIF
  4294.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4295.         oObject.Release
  4296.     ENDIF
  4297.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4298.         oObject.oHost=.NULL.
  4299.     ENDIF
  4300.     this.&lcName=.NULL.
  4301.     oObject=.NULL.
  4302. ENDFOR
  4303. DIMENSION this.aObjectRefs[1,3]
  4304. this.aObjectRefs=""
  4305. ENDPROC
  4306. PROCEDURE nobjectrefcount_access
  4307. LOCAL lnObjectRefCount
  4308. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4309. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4310.     lnObjectRefCount=0
  4311. ENDIF
  4312. RETURN lnObjectRefCount
  4313. ENDPROC
  4314. PROCEDURE nobjectrefcount_assign
  4315. LPARAMETERS m.vNewVal
  4316. ERROR 1743
  4317. ENDPROC
  4318. PROCEDURE sethost
  4319. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4320. ENDPROC
  4321. PROCEDURE newinstance
  4322. LPARAMETERS tnDataSessionID
  4323. LOCAL oNewObject,lnLastDataSessionID
  4324. lnLastDataSessionID=SET("DATASESSION")
  4325. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4326.     SET DATASESSION TO tnDataSessionID
  4327. ENDIF
  4328. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4329. SET DATASESSION TO (lnLastDataSessionID)
  4330. RETURN oNewObject
  4331. ENDPROC
  4332. PROCEDURE addtoproject
  4333. *-- Dummy code for adding files to project.
  4334. RETURN
  4335. DO SetObjRf.prg
  4336. ENDPROC
  4337. PROCEDURE ninstances_access
  4338. LOCAL laInstances[1]
  4339. RETURN AINSTANCE(laInstances,this.Class)
  4340. ENDPROC
  4341. PROCEDURE ninstances_assign
  4342. LPARAMETERS vNewVal
  4343. ERROR 1743
  4344. ENDPROC
  4345. PROCEDURE Error
  4346. LPARAMETERS nError, cMethod, nLine
  4347. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4348. IF this.lIgnoreErrors
  4349.     RETURN .F.
  4350. ENDIF
  4351. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4352. IF NOT EMPTY(lcOnError)
  4353.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4354.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4355.     &lcOnError
  4356.     RETURN
  4357. ENDIF
  4358. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4359.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  4360.         "Method:       "+LOWER(ALLTRIM(cMethod))
  4361. lcCodeLineMsg=MESSAGE(1)
  4362. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  4363.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  4364.     IF NOT EMPTY(lcCodeLineMsg)
  4365.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  4366.     ENDIF
  4367. ENDIF
  4368. WAIT CLEAR
  4369. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  4370. ERROR nError
  4371. ENDPROC
  4372. PROCEDURE Init
  4373. IF this.lSetHost
  4374.     this.SetHost
  4375. ENDIF
  4376. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  4377.     RETURN .F.
  4378. ENDIF
  4379. ENDPROC
  4380. PROCEDURE Destroy
  4381. IF this.lRelease
  4382.     RETURN .F.
  4383. ENDIF
  4384. this.lRelease=.T.
  4385. this.ReleaseObjRefs
  4386. this.oHost=.NULL.
  4387. ENDPROC
  4388. cversion Version property.
  4389. builder Bulder property.
  4390. builderx BuilderX property.
  4391. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4392. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4393. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4394. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4395. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4396. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4397. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4398. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4399. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4400. ninstances
  4401. *release Releases object from memory.
  4402. *setobjectref Set object reference to specific property.
  4403. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4404. *releaseobjrefs Releases all object references of aObjectRefs array.
  4405. *nobjectrefcount_access Access method for nObjectRefCount property.
  4406. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4407. ^aobjectrefs[1,3] Array of object references properties.
  4408. *sethost Set oHost property to form reference object.
  4409. *newinstance Returns new instance of object.
  4410. *addtoproject Dummy code for adding files to project.
  4411. *ninstances_access 
  4412. *ninstances_assign 
  4413. IPROCEDURE release
  4414. LOCAL lcBaseClass
  4415. IF this.lRelease
  4416.     NODEFAULT
  4417.     RETURN .F.
  4418. ENDIF
  4419. this.lRelease=.T.
  4420. lcBaseClass=LOWER(this.BaseClass)
  4421. this.oHost=.NULL.
  4422. this.ReleaseObjRefs
  4423. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4424.     RELEASE this
  4425. ENDIF
  4426. ENDPROC
  4427. PROCEDURE setobjectref
  4428. LPARAMETERS tcName,tvClass,tvClassLibrary
  4429. LOCAL lvResult
  4430. this.vResult=.T.
  4431. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4432. lvResult=this.vResult
  4433. this.vResult=.T.
  4434. RETURN lvResult
  4435. ENDPROC
  4436. PROCEDURE setobjectrefs
  4437. LPARAMETERS toObject
  4438. RETURN
  4439. ENDPROC
  4440. PROCEDURE releaseobjrefs
  4441. LOCAL lcName,oObject,lnCount
  4442. IF this.nObjectRefCount=0
  4443.     RETURN
  4444. ENDIF
  4445. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4446.     lcName=this.aObjectRefs[lnCount,1]
  4447.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4448.         LOOP
  4449.     ENDIF
  4450.     oObject=this.&lcName
  4451.     IF ISNULL(oObject)
  4452.         LOOP
  4453.     ENDIF
  4454.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4455.         oObject.Release
  4456.     ENDIF
  4457.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4458.         oObject.oHost=.NULL.
  4459.     ENDIF
  4460.     this.&lcName=.NULL.
  4461.     oObject=.NULL.
  4462. ENDFOR
  4463. DIMENSION this.aObjectRefs[1,3]
  4464. this.aObjectRefs=""
  4465. ENDPROC
  4466. PROCEDURE nobjectrefcount_access
  4467. LOCAL lnObjectRefCount
  4468. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4469. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4470.     lnObjectRefCount=0
  4471. ENDIF
  4472. RETURN lnObjectRefCount
  4473. ENDPROC
  4474. PROCEDURE nobjectrefcount_assign
  4475. LPARAMETERS m.vNewVal
  4476. ERROR 1743
  4477. ENDPROC
  4478. PROCEDURE sethost
  4479. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4480. ENDPROC
  4481. PROCEDURE newinstance
  4482. LPARAMETERS tnDataSessionID
  4483. LOCAL oNewObject,lnLastDataSessionID
  4484. lnLastDataSessionID=SET("DATASESSION")
  4485. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4486.     SET DATASESSION TO tnDataSessionID
  4487. ENDIF
  4488. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4489. SET DATASESSION TO (lnLastDataSessionID)
  4490. RETURN oNewObject
  4491. ENDPROC
  4492. PROCEDURE addtoproject
  4493. *-- Dummy code for adding files to project.
  4494. RETURN
  4495. DO SetObjRf.prg
  4496. ENDPROC
  4497. PROCEDURE ninstances_access
  4498. LOCAL laInstances[1]
  4499. RETURN AINSTANCE(laInstances,this.Class)
  4500. ENDPROC
  4501. PROCEDURE ninstances_assign
  4502. LPARAMETERS vNewVal
  4503. ERROR 1743
  4504. ENDPROC
  4505. PROCEDURE Error
  4506. LPARAMETERS nError, cMethod, nLine
  4507. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4508. IF this.lIgnoreErrors
  4509.     RETURN .F.
  4510. ENDIF
  4511. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4512. IF NOT EMPTY(lcOnError)
  4513.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4514.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4515.     &lcOnError
  4516.     RETURN
  4517. ENDIF
  4518. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4519.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  4520.         "Method:       "+LOWER(ALLTRIM(cMethod))
  4521. lcCodeLineMsg=MESSAGE(1)
  4522. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  4523.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  4524.     IF NOT EMPTY(lcCodeLineMsg)
  4525.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  4526.     ENDIF
  4527. ENDIF
  4528. WAIT CLEAR
  4529. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  4530. ERROR nError
  4531. ENDPROC
  4532. PROCEDURE Init
  4533. IF this.lSetHost
  4534.     this.SetHost
  4535. ENDIF
  4536. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  4537.     RETURN .F.
  4538. ENDIF
  4539. ENDPROC
  4540. PROCEDURE Destroy
  4541. IF this.lRelease
  4542.     RETURN .F.
  4543. ENDIF
  4544. this.lRelease=.T.
  4545. this.ReleaseObjRefs
  4546. this.oHost=.NULL.
  4547. ENDPROC
  4548. cversion Version property.
  4549. builder Bulder property.
  4550. builderx BuilderX property.
  4551. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4552. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4553. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4554. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4555. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4556. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4557. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4558. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4559. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4560. ninstances
  4561. *release Releases object from memory.
  4562. *setobjectref Set object reference to specific property.
  4563. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4564. *releaseobjrefs Releases all object references of aObjectRefs array.
  4565. *nobjectrefcount_access Access method for nObjectRefCount property.
  4566. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4567. ^aobjectrefs[1,3] Array of object references properties.
  4568. *sethost Set oHost property to form reference object.
  4569. *newinstance Returns new instance of object.
  4570. *addtoproject Dummy code for adding files to project.
  4571. *ninstances_access 
  4572. *ninstances_assign 
  4573. IPROCEDURE release
  4574. LOCAL lcBaseClass
  4575. IF this.lRelease
  4576.     NODEFAULT
  4577.     RETURN .F.
  4578. ENDIF
  4579. this.lRelease=.T.
  4580. lcBaseClass=LOWER(this.BaseClass)
  4581. this.oHost=.NULL.
  4582. this.ReleaseObjRefs
  4583. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4584.     RELEASE this
  4585. ENDIF
  4586. ENDPROC
  4587. PROCEDURE setobjectref
  4588. LPARAMETERS tcName,tvClass,tvClassLibrary
  4589. LOCAL lvResult
  4590. this.vResult=.T.
  4591. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4592. lvResult=this.vResult
  4593. this.vResult=.T.
  4594. RETURN lvResult
  4595. ENDPROC
  4596. PROCEDURE setobjectrefs
  4597. LPARAMETERS toObject
  4598. RETURN
  4599. ENDPROC
  4600. PROCEDURE releaseobjrefs
  4601. LOCAL lcName,oObject,lnCount
  4602. IF this.nObjectRefCount=0
  4603.     RETURN
  4604. ENDIF
  4605. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4606.     lcName=this.aObjectRefs[lnCount,1]
  4607.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4608.         LOOP
  4609.     ENDIF
  4610.     oObject=this.&lcName
  4611.     IF ISNULL(oObject)
  4612.         LOOP
  4613.     ENDIF
  4614.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4615.         oObject.Release
  4616.     ENDIF
  4617.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4618.         oObject.oHost=.NULL.
  4619.     ENDIF
  4620.     this.&lcName=.NULL.
  4621.     oObject=.NULL.
  4622. ENDFOR
  4623. DIMENSION this.aObjectRefs[1,3]
  4624. this.aObjectRefs=""
  4625. ENDPROC
  4626. PROCEDURE nobjectrefcount_access
  4627. LOCAL lnObjectRefCount
  4628. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4629. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4630.     lnObjectRefCount=0
  4631. ENDIF
  4632. RETURN lnObjectRefCount
  4633. ENDPROC
  4634. PROCEDURE nobjectrefcount_assign
  4635. LPARAMETERS m.vNewVal
  4636. ERROR 1743
  4637. ENDPROC
  4638. PROCEDURE sethost
  4639. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4640. ENDPROC
  4641. PROCEDURE newinstance
  4642. LPARAMETERS tnDataSessionID
  4643. LOCAL oNewObject,lnLastDataSessionID
  4644. lnLastDataSessionID=SET("DATASESSION")
  4645. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4646.     SET DATASESSION TO tnDataSessionID
  4647. ENDIF
  4648. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4649. SET DATASESSION TO (lnLastDataSessionID)
  4650. RETURN oNewObject
  4651. ENDPROC
  4652. PROCEDURE addtoproject
  4653. *-- Dummy code for adding files to project.
  4654. RETURN
  4655. DO SetObjRf.prg
  4656. ENDPROC
  4657. PROCEDURE ninstances_access
  4658. LOCAL laInstances[1]
  4659. RETURN AINSTANCE(laInstances,this.Class)
  4660. ENDPROC
  4661. PROCEDURE ninstances_assign
  4662. LPARAMETERS vNewVal
  4663. ERROR 1743
  4664. ENDPROC
  4665. PROCEDURE Error
  4666. LPARAMETERS nError, cMethod, nLine
  4667. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4668. IF this.lIgnoreErrors
  4669.     RETURN .F.
  4670. ENDIF
  4671. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4672. IF NOT EMPTY(lcOnError)
  4673.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4674.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4675.     &lcOnError
  4676.     RETURN
  4677. ENDIF
  4678. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4679.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  4680.         "Method:       "+LOWER(ALLTRIM(cMethod))
  4681. lcCodeLineMsg=MESSAGE(1)
  4682. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  4683.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  4684.     IF NOT EMPTY(lcCodeLineMsg)
  4685.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  4686.     ENDIF
  4687. ENDIF
  4688. WAIT CLEAR
  4689. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  4690. ERROR nError
  4691. ENDPROC
  4692. PROCEDURE Init
  4693. IF this.lSetHost
  4694.     this.SetHost
  4695. ENDIF
  4696. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  4697.     RETURN .F.
  4698. ENDIF
  4699. ENDPROC
  4700. PROCEDURE Destroy
  4701. IF this.lRelease
  4702.     RETURN .F.
  4703. ENDIF
  4704. this.lRelease=.T.
  4705. this.ReleaseObjRefs
  4706. this.oHost=.NULL.
  4707. ENDPROC
  4708. cversion Version property.
  4709. builder Bulder property.
  4710. builderx BuilderX property.
  4711. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4712. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4713. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4714. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4715. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4716. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4717. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4718. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4719. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4720. ninstances
  4721. *release Releases object from memory.
  4722. *setobjectref Set object reference to specific property.
  4723. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4724. *releaseobjrefs Releases all object references of aObjectRefs array.
  4725. *nobjectrefcount_access Access method for nObjectRefCount property.
  4726. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4727. ^aobjectrefs[1,3] Array of object references properties.
  4728. *sethost Set oHost property to form reference object.
  4729. *newinstance Returns new instance of object.
  4730. *addtoproject Dummy code for adding files to project.
  4731. *ninstances_access 
  4732. *ninstances_assign 
  4733. IPROCEDURE release
  4734. LOCAL lcBaseClass
  4735. IF this.lRelease
  4736.     NODEFAULT
  4737.     RETURN .F.
  4738. ENDIF
  4739. this.lRelease=.T.
  4740. lcBaseClass=LOWER(this.BaseClass)
  4741. this.oHost=.NULL.
  4742. this.ReleaseObjRefs
  4743. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4744.     RELEASE this
  4745. ENDIF
  4746. ENDPROC
  4747. PROCEDURE setobjectref
  4748. LPARAMETERS tcName,tvClass,tvClassLibrary
  4749. LOCAL lvResult
  4750. this.vResult=.T.
  4751. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4752. lvResult=this.vResult
  4753. this.vResult=.T.
  4754. RETURN lvResult
  4755. ENDPROC
  4756. PROCEDURE setobjectrefs
  4757. LPARAMETERS toObject
  4758. RETURN
  4759. ENDPROC
  4760. PROCEDURE releaseobjrefs
  4761. LOCAL lcName,oObject,lnCount
  4762. IF this.nObjectRefCount=0
  4763.     RETURN
  4764. ENDIF
  4765. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4766.     lcName=this.aObjectRefs[lnCount,1]
  4767.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4768.         LOOP
  4769.     ENDIF
  4770.     oObject=this.&lcName
  4771.     IF ISNULL(oObject)
  4772.         LOOP
  4773.     ENDIF
  4774.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4775.         oObject.Release
  4776.     ENDIF
  4777.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4778.         oObject.oHost=.NULL.
  4779.     ENDIF
  4780.     this.&lcName=.NULL.
  4781.     oObject=.NULL.
  4782. ENDFOR
  4783. DIMENSION this.aObjectRefs[1,3]
  4784. this.aObjectRefs=""
  4785. ENDPROC
  4786. PROCEDURE nobjectrefcount_access
  4787. LOCAL lnObjectRefCount
  4788. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4789. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4790.     lnObjectRefCount=0
  4791. ENDIF
  4792. RETURN lnObjectRefCount
  4793. ENDPROC
  4794. PROCEDURE nobjectrefcount_assign
  4795. LPARAMETERS m.vNewVal
  4796. ERROR 1743
  4797. ENDPROC
  4798. PROCEDURE sethost
  4799. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4800. ENDPROC
  4801. PROCEDURE newinstance
  4802. LPARAMETERS tnDataSessionID
  4803. LOCAL oNewObject,lnLastDataSessionID
  4804. lnLastDataSessionID=SET("DATASESSION")
  4805. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4806.     SET DATASESSION TO tnDataSessionID
  4807. ENDIF
  4808. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4809. SET DATASESSION TO (lnLastDataSessionID)
  4810. RETURN oNewObject
  4811. ENDPROC
  4812. PROCEDURE addtoproject
  4813. *-- Dummy code for adding files to project.
  4814. RETURN
  4815. DO SetObjRf.prg
  4816. ENDPROC
  4817. PROCEDURE ninstances_access
  4818. LOCAL laInstances[1]
  4819. RETURN AINSTANCE(laInstances,this.Class)
  4820. ENDPROC
  4821. PROCEDURE ninstances_assign
  4822. LPARAMETERS vNewVal
  4823. ERROR 1743
  4824. ENDPROC
  4825. PROCEDURE Error
  4826. LPARAMETERS nError, cMethod, nLine
  4827. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4828. IF this.lIgnoreErrors
  4829.     RETURN .F.
  4830. ENDIF
  4831. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4832. IF NOT EMPTY(lcOnError)
  4833.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4834.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4835.     &lcOnError
  4836.     RETURN
  4837. ENDIF
  4838. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4839.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  4840.         "Method:       "+LOWER(ALLTRIM(cMethod))
  4841. lcCodeLineMsg=MESSAGE(1)
  4842. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  4843.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  4844.     IF NOT EMPTY(lcCodeLineMsg)
  4845.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  4846.     ENDIF
  4847. ENDIF
  4848. WAIT CLEAR
  4849. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  4850. ERROR nError
  4851. ENDPROC
  4852. PROCEDURE Init
  4853. IF this.lSetHost
  4854.     this.SetHost
  4855. ENDIF
  4856. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  4857.     RETURN .F.
  4858. ENDIF
  4859. ENDPROC
  4860. PROCEDURE Destroy
  4861. IF this.lRelease
  4862.     RETURN .F.
  4863. ENDIF
  4864. this.lRelease=.T.
  4865. this.ReleaseObjRefs
  4866. this.oHost=.NULL.
  4867. ENDPROC
  4868. cversion Version property.
  4869. builder Bulder property.
  4870. builderx BuilderX property.
  4871. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  4872. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  4873. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  4874. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  4875. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  4876. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  4877. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  4878. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  4879. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  4880. ninstances
  4881. *release Releases object from memory.
  4882. *setobjectref Set object reference to specific property.
  4883. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  4884. *releaseobjrefs Releases all object references of aObjectRefs array.
  4885. *nobjectrefcount_access Access method for nObjectRefCount property.
  4886. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  4887. ^aobjectrefs[1,3] Array of object references properties.
  4888. *sethost Set oHost property to form reference object.
  4889. *newinstance Returns new instance of object.
  4890. *addtoproject Dummy code for adding files to project.
  4891. *ninstances_access 
  4892. *ninstances_assign 
  4893. IPROCEDURE release
  4894. LOCAL lcBaseClass
  4895. IF this.lRelease
  4896.     NODEFAULT
  4897.     RETURN .F.
  4898. ENDIF
  4899. this.lRelease=.T.
  4900. lcBaseClass=LOWER(this.BaseClass)
  4901. this.oHost=.NULL.
  4902. this.ReleaseObjRefs
  4903. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  4904.     RELEASE this
  4905. ENDIF
  4906. ENDPROC
  4907. PROCEDURE setobjectref
  4908. LPARAMETERS tcName,tvClass,tvClassLibrary
  4909. LOCAL lvResult
  4910. this.vResult=.T.
  4911. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  4912. lvResult=this.vResult
  4913. this.vResult=.T.
  4914. RETURN lvResult
  4915. ENDPROC
  4916. PROCEDURE setobjectrefs
  4917. LPARAMETERS toObject
  4918. RETURN
  4919. ENDPROC
  4920. PROCEDURE releaseobjrefs
  4921. LOCAL lcName,oObject,lnCount
  4922. IF this.nObjectRefCount=0
  4923.     RETURN
  4924. ENDIF
  4925. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  4926.     lcName=this.aObjectRefs[lnCount,1]
  4927.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  4928.         LOOP
  4929.     ENDIF
  4930.     oObject=this.&lcName
  4931.     IF ISNULL(oObject)
  4932.         LOOP
  4933.     ENDIF
  4934.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  4935.         oObject.Release
  4936.     ENDIF
  4937.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  4938.         oObject.oHost=.NULL.
  4939.     ENDIF
  4940.     this.&lcName=.NULL.
  4941.     oObject=.NULL.
  4942. ENDFOR
  4943. DIMENSION this.aObjectRefs[1,3]
  4944. this.aObjectRefs=""
  4945. ENDPROC
  4946. PROCEDURE nobjectrefcount_access
  4947. LOCAL lnObjectRefCount
  4948. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  4949. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  4950.     lnObjectRefCount=0
  4951. ENDIF
  4952. RETURN lnObjectRefCount
  4953. ENDPROC
  4954. PROCEDURE nobjectrefcount_assign
  4955. LPARAMETERS m.vNewVal
  4956. ERROR 1743
  4957. ENDPROC
  4958. PROCEDURE sethost
  4959. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  4960. ENDPROC
  4961. PROCEDURE newinstance
  4962. LPARAMETERS tnDataSessionID
  4963. LOCAL oNewObject,lnLastDataSessionID
  4964. lnLastDataSessionID=SET("DATASESSION")
  4965. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  4966.     SET DATASESSION TO tnDataSessionID
  4967. ENDIF
  4968. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  4969. SET DATASESSION TO (lnLastDataSessionID)
  4970. RETURN oNewObject
  4971. ENDPROC
  4972. PROCEDURE addtoproject
  4973. *-- Dummy code for adding files to project.
  4974. RETURN
  4975. DO SetObjRf.prg
  4976. ENDPROC
  4977. PROCEDURE ninstances_access
  4978. LOCAL laInstances[1]
  4979. RETURN AINSTANCE(laInstances,this.Class)
  4980. ENDPROC
  4981. PROCEDURE ninstances_assign
  4982. LPARAMETERS vNewVal
  4983. ERROR 1743
  4984. ENDPROC
  4985. PROCEDURE Error
  4986. LPARAMETERS nError, cMethod, nLine
  4987. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  4988. IF this.lIgnoreErrors
  4989.     RETURN .F.
  4990. ENDIF
  4991. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  4992. IF NOT EMPTY(lcOnError)
  4993.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  4994.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  4995.     &lcOnError
  4996.     RETURN
  4997. ENDIF
  4998. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  4999.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5000.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5001. lcCodeLineMsg=MESSAGE(1)
  5002. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5003.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5004.     IF NOT EMPTY(lcCodeLineMsg)
  5005.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5006.     ENDIF
  5007. ENDIF
  5008. WAIT CLEAR
  5009. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5010. ERROR nError
  5011. ENDPROC
  5012. PROCEDURE Init
  5013. IF this.lSetHost
  5014.     this.SetHost
  5015. ENDIF
  5016. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5017.     RETURN .F.
  5018. ENDIF
  5019. ENDPROC
  5020. PROCEDURE Destroy
  5021. IF this.lRelease
  5022.     RETURN .F.
  5023. ENDIF
  5024. this.lRelease=.T.
  5025. this.ReleaseObjRefs
  5026. this.oHost=.NULL.
  5027. ENDPROC
  5028. cversion Version property.
  5029. builder Bulder property.
  5030. builderx BuilderX property.
  5031. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5032. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5033. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5034. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5035. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5036. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5037. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5038. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5039. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5040. ninstances
  5041. *release Releases object from memory.
  5042. *setobjectref Set object reference to specific property.
  5043. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5044. *releaseobjrefs Releases all object references of aObjectRefs array.
  5045. *nobjectrefcount_access Access method for nObjectRefCount property.
  5046. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5047. ^aobjectrefs[1,3] Array of object references properties.
  5048. *sethost Set oHost property to form reference object.
  5049. *newinstance Returns new instance of object.
  5050. *addtoproject Dummy code for adding files to project.
  5051. *ninstances_access 
  5052. *ninstances_assign 
  5053. IPROCEDURE release
  5054. LOCAL lcBaseClass
  5055. IF this.lRelease
  5056.     NODEFAULT
  5057.     RETURN .F.
  5058. ENDIF
  5059. this.lRelease=.T.
  5060. lcBaseClass=LOWER(this.BaseClass)
  5061. this.oHost=.NULL.
  5062. this.ReleaseObjRefs
  5063. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5064.     RELEASE this
  5065. ENDIF
  5066. ENDPROC
  5067. PROCEDURE setobjectref
  5068. LPARAMETERS tcName,tvClass,tvClassLibrary
  5069. LOCAL lvResult
  5070. this.vResult=.T.
  5071. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5072. lvResult=this.vResult
  5073. this.vResult=.T.
  5074. RETURN lvResult
  5075. ENDPROC
  5076. PROCEDURE setobjectrefs
  5077. LPARAMETERS toObject
  5078. RETURN
  5079. ENDPROC
  5080. PROCEDURE releaseobjrefs
  5081. LOCAL lcName,oObject,lnCount
  5082. IF this.nObjectRefCount=0
  5083.     RETURN
  5084. ENDIF
  5085. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5086.     lcName=this.aObjectRefs[lnCount,1]
  5087.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5088.         LOOP
  5089.     ENDIF
  5090.     oObject=this.&lcName
  5091.     IF ISNULL(oObject)
  5092.         LOOP
  5093.     ENDIF
  5094.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5095.         oObject.Release
  5096.     ENDIF
  5097.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5098.         oObject.oHost=.NULL.
  5099.     ENDIF
  5100.     this.&lcName=.NULL.
  5101.     oObject=.NULL.
  5102. ENDFOR
  5103. DIMENSION this.aObjectRefs[1,3]
  5104. this.aObjectRefs=""
  5105. ENDPROC
  5106. PROCEDURE nobjectrefcount_access
  5107. LOCAL lnObjectRefCount
  5108. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5109. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5110.     lnObjectRefCount=0
  5111. ENDIF
  5112. RETURN lnObjectRefCount
  5113. ENDPROC
  5114. PROCEDURE nobjectrefcount_assign
  5115. LPARAMETERS m.vNewVal
  5116. ERROR 1743
  5117. ENDPROC
  5118. PROCEDURE sethost
  5119. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5120. ENDPROC
  5121. PROCEDURE newinstance
  5122. LPARAMETERS tnDataSessionID
  5123. LOCAL oNewObject,lnLastDataSessionID
  5124. lnLastDataSessionID=SET("DATASESSION")
  5125. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5126.     SET DATASESSION TO tnDataSessionID
  5127. ENDIF
  5128. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5129. SET DATASESSION TO (lnLastDataSessionID)
  5130. RETURN oNewObject
  5131. ENDPROC
  5132. PROCEDURE addtoproject
  5133. *-- Dummy code for adding files to project.
  5134. RETURN
  5135. DO SetObjRf.prg
  5136. ENDPROC
  5137. PROCEDURE ninstances_access
  5138. LOCAL laInstances[1]
  5139. RETURN AINSTANCE(laInstances,this.Class)
  5140. ENDPROC
  5141. PROCEDURE ninstances_assign
  5142. LPARAMETERS vNewVal
  5143. ERROR 1743
  5144. ENDPROC
  5145. PROCEDURE Error
  5146. LPARAMETERS nError, cMethod, nLine
  5147. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5148. IF this.lIgnoreErrors
  5149.     RETURN .F.
  5150. ENDIF
  5151. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5152. IF NOT EMPTY(lcOnError)
  5153.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5154.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5155.     &lcOnError
  5156.     RETURN
  5157. ENDIF
  5158. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5159.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5160.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5161. lcCodeLineMsg=MESSAGE(1)
  5162. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5163.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5164.     IF NOT EMPTY(lcCodeLineMsg)
  5165.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5166.     ENDIF
  5167. ENDIF
  5168. WAIT CLEAR
  5169. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5170. ERROR nError
  5171. ENDPROC
  5172. PROCEDURE Init
  5173. IF this.lSetHost
  5174.     this.SetHost
  5175. ENDIF
  5176. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5177.     RETURN .F.
  5178. ENDIF
  5179. ENDPROC
  5180. PROCEDURE Destroy
  5181. IF this.lRelease
  5182.     RETURN .F.
  5183. ENDIF
  5184. this.lRelease=.T.
  5185. this.ReleaseObjRefs
  5186. this.oHost=.NULL.
  5187. ENDPROC
  5188. cversion Version property.
  5189. builder Bulder property.
  5190. builderx BuilderX property.
  5191. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5192. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5193. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5194. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5195. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5196. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5197. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5198. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5199. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5200. ninstances
  5201. *release Releases object from memory.
  5202. *setobjectref Set object reference to specific property.
  5203. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5204. *releaseobjrefs Releases all object references of aObjectRefs array.
  5205. *nobjectrefcount_access Access method for nObjectRefCount property.
  5206. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5207. ^aobjectrefs[1,3] Array of object references properties.
  5208. *sethost Set oHost property to form reference object.
  5209. *newinstance Returns new instance of object.
  5210. *addtoproject Dummy code for adding files to project.
  5211. *ninstances_access 
  5212. *ninstances_assign 
  5213. IPROCEDURE release
  5214. LOCAL lcBaseClass
  5215. IF this.lRelease
  5216.     NODEFAULT
  5217.     RETURN .F.
  5218. ENDIF
  5219. this.lRelease=.T.
  5220. lcBaseClass=LOWER(this.BaseClass)
  5221. this.oHost=.NULL.
  5222. this.ReleaseObjRefs
  5223. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5224.     RELEASE this
  5225. ENDIF
  5226. ENDPROC
  5227. PROCEDURE setobjectref
  5228. LPARAMETERS tcName,tvClass,tvClassLibrary
  5229. LOCAL lvResult
  5230. this.vResult=.T.
  5231. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5232. lvResult=this.vResult
  5233. this.vResult=.T.
  5234. RETURN lvResult
  5235. ENDPROC
  5236. PROCEDURE setobjectrefs
  5237. LPARAMETERS toObject
  5238. RETURN
  5239. ENDPROC
  5240. PROCEDURE releaseobjrefs
  5241. LOCAL lcName,oObject,lnCount
  5242. IF this.nObjectRefCount=0
  5243.     RETURN
  5244. ENDIF
  5245. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5246.     lcName=this.aObjectRefs[lnCount,1]
  5247.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5248.         LOOP
  5249.     ENDIF
  5250.     oObject=this.&lcName
  5251.     IF ISNULL(oObject)
  5252.         LOOP
  5253.     ENDIF
  5254.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5255.         oObject.Release
  5256.     ENDIF
  5257.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5258.         oObject.oHost=.NULL.
  5259.     ENDIF
  5260.     this.&lcName=.NULL.
  5261.     oObject=.NULL.
  5262. ENDFOR
  5263. DIMENSION this.aObjectRefs[1,3]
  5264. this.aObjectRefs=""
  5265. ENDPROC
  5266. PROCEDURE nobjectrefcount_access
  5267. LOCAL lnObjectRefCount
  5268. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5269. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5270.     lnObjectRefCount=0
  5271. ENDIF
  5272. RETURN lnObjectRefCount
  5273. ENDPROC
  5274. PROCEDURE nobjectrefcount_assign
  5275. LPARAMETERS m.vNewVal
  5276. ERROR 1743
  5277. ENDPROC
  5278. PROCEDURE sethost
  5279. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5280. ENDPROC
  5281. PROCEDURE newinstance
  5282. LPARAMETERS tnDataSessionID
  5283. LOCAL oNewObject,lnLastDataSessionID
  5284. lnLastDataSessionID=SET("DATASESSION")
  5285. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5286.     SET DATASESSION TO tnDataSessionID
  5287. ENDIF
  5288. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5289. SET DATASESSION TO (lnLastDataSessionID)
  5290. RETURN oNewObject
  5291. ENDPROC
  5292. PROCEDURE addtoproject
  5293. *-- Dummy code for adding files to project.
  5294. RETURN
  5295. DO SetObjRf.prg
  5296. ENDPROC
  5297. PROCEDURE ninstances_access
  5298. LOCAL laInstances[1]
  5299. RETURN AINSTANCE(laInstances,this.Class)
  5300. ENDPROC
  5301. PROCEDURE ninstances_assign
  5302. LPARAMETERS vNewVal
  5303. ERROR 1743
  5304. ENDPROC
  5305. PROCEDURE Error
  5306. LPARAMETERS nError, cMethod, nLine
  5307. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5308. IF this.lIgnoreErrors
  5309.     RETURN .F.
  5310. ENDIF
  5311. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5312. IF NOT EMPTY(lcOnError)
  5313.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5314.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5315.     &lcOnError
  5316.     RETURN
  5317. ENDIF
  5318. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5319.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5320.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5321. lcCodeLineMsg=MESSAGE(1)
  5322. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5323.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5324.     IF NOT EMPTY(lcCodeLineMsg)
  5325.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5326.     ENDIF
  5327. ENDIF
  5328. WAIT CLEAR
  5329. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5330. ERROR nError
  5331. ENDPROC
  5332. PROCEDURE Init
  5333. IF this.lSetHost
  5334.     this.SetHost
  5335. ENDIF
  5336. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5337.     RETURN .F.
  5338. ENDIF
  5339. ENDPROC
  5340. PROCEDURE Destroy
  5341. IF this.lRelease
  5342.     RETURN .F.
  5343. ENDIF
  5344. this.lRelease=.T.
  5345. this.ReleaseObjRefs
  5346. this.oHost=.NULL.
  5347. ENDPROC
  5348. cversion Version property.
  5349. builder Bulder property.
  5350. builderx BuilderX property.
  5351. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5352. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5353. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5354. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5355. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5356. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5357. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5358. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5359. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5360. ninstances
  5361. *release Releases object from memory.
  5362. *setobjectref Set object reference to specific property.
  5363. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5364. *releaseobjrefs Releases all object references of aObjectRefs array.
  5365. *nobjectrefcount_access Access method for nObjectRefCount property.
  5366. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5367. ^aobjectrefs[1,3] Array of object references properties.
  5368. *sethost Set oHost property to form reference object.
  5369. *newinstance Returns new instance of object.
  5370. *addtoproject Dummy code for adding files to project.
  5371. *ninstances_access 
  5372. *ninstances_assign 
  5373. IPROCEDURE release
  5374. LOCAL lcBaseClass
  5375. IF this.lRelease
  5376.     NODEFAULT
  5377.     RETURN .F.
  5378. ENDIF
  5379. this.lRelease=.T.
  5380. lcBaseClass=LOWER(this.BaseClass)
  5381. this.oHost=.NULL.
  5382. this.ReleaseObjRefs
  5383. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5384.     RELEASE this
  5385. ENDIF
  5386. ENDPROC
  5387. PROCEDURE setobjectref
  5388. LPARAMETERS tcName,tvClass,tvClassLibrary
  5389. LOCAL lvResult
  5390. this.vResult=.T.
  5391. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5392. lvResult=this.vResult
  5393. this.vResult=.T.
  5394. RETURN lvResult
  5395. ENDPROC
  5396. PROCEDURE setobjectrefs
  5397. LPARAMETERS toObject
  5398. RETURN
  5399. ENDPROC
  5400. PROCEDURE releaseobjrefs
  5401. LOCAL lcName,oObject,lnCount
  5402. IF this.nObjectRefCount=0
  5403.     RETURN
  5404. ENDIF
  5405. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5406.     lcName=this.aObjectRefs[lnCount,1]
  5407.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5408.         LOOP
  5409.     ENDIF
  5410.     oObject=this.&lcName
  5411.     IF ISNULL(oObject)
  5412.         LOOP
  5413.     ENDIF
  5414.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5415.         oObject.Release
  5416.     ENDIF
  5417.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5418.         oObject.oHost=.NULL.
  5419.     ENDIF
  5420.     this.&lcName=.NULL.
  5421.     oObject=.NULL.
  5422. ENDFOR
  5423. DIMENSION this.aObjectRefs[1,3]
  5424. this.aObjectRefs=""
  5425. ENDPROC
  5426. PROCEDURE nobjectrefcount_access
  5427. LOCAL lnObjectRefCount
  5428. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5429. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5430.     lnObjectRefCount=0
  5431. ENDIF
  5432. RETURN lnObjectRefCount
  5433. ENDPROC
  5434. PROCEDURE nobjectrefcount_assign
  5435. LPARAMETERS m.vNewVal
  5436. ERROR 1743
  5437. ENDPROC
  5438. PROCEDURE sethost
  5439. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5440. ENDPROC
  5441. PROCEDURE newinstance
  5442. LPARAMETERS tnDataSessionID
  5443. LOCAL oNewObject,lnLastDataSessionID
  5444. lnLastDataSessionID=SET("DATASESSION")
  5445. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5446.     SET DATASESSION TO tnDataSessionID
  5447. ENDIF
  5448. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5449. SET DATASESSION TO (lnLastDataSessionID)
  5450. RETURN oNewObject
  5451. ENDPROC
  5452. PROCEDURE addtoproject
  5453. *-- Dummy code for adding files to project.
  5454. RETURN
  5455. DO SetObjRf.prg
  5456. ENDPROC
  5457. PROCEDURE ninstances_access
  5458. LOCAL laInstances[1]
  5459. RETURN AINSTANCE(laInstances,this.Class)
  5460. ENDPROC
  5461. PROCEDURE ninstances_assign
  5462. LPARAMETERS vNewVal
  5463. ERROR 1743
  5464. ENDPROC
  5465. PROCEDURE Error
  5466. LPARAMETERS nError, cMethod, nLine
  5467. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5468. IF this.lIgnoreErrors
  5469.     RETURN .F.
  5470. ENDIF
  5471. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5472. IF NOT EMPTY(lcOnError)
  5473.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5474.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5475.     &lcOnError
  5476.     RETURN
  5477. ENDIF
  5478. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5479.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5480.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5481. lcCodeLineMsg=MESSAGE(1)
  5482. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5483.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5484.     IF NOT EMPTY(lcCodeLineMsg)
  5485.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5486.     ENDIF
  5487. ENDIF
  5488. WAIT CLEAR
  5489. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5490. ERROR nError
  5491. ENDPROC
  5492. PROCEDURE Init
  5493. IF this.lSetHost
  5494.     this.SetHost
  5495. ENDIF
  5496. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5497.     RETURN .F.
  5498. ENDIF
  5499. ENDPROC
  5500. PROCEDURE Destroy
  5501. IF this.lRelease
  5502.     RETURN .F.
  5503. ENDIF
  5504. this.lRelease=.T.
  5505. this.ReleaseObjRefs
  5506. this.oHost=.NULL.
  5507. ENDPROC
  5508. cversion Version property.
  5509. builder Bulder property.
  5510. builderx BuilderX property.
  5511. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5512. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5513. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5514. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5515. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5516. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5517. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5518. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5519. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5520. ninstances
  5521. *release Releases object from memory.
  5522. *setobjectref Set object reference to specific property.
  5523. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5524. *releaseobjrefs Releases all object references of aObjectRefs array.
  5525. *nobjectrefcount_access Access method for nObjectRefCount property.
  5526. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5527. ^aobjectrefs[1,3] Array of object references properties.
  5528. *sethost Set oHost property to form reference object.
  5529. *newinstance Returns new instance of object.
  5530. *addtoproject Dummy code for adding files to project.
  5531. *ninstances_access 
  5532. *ninstances_assign 
  5533. IPROCEDURE release
  5534. LOCAL lcBaseClass
  5535. IF this.lRelease
  5536.     NODEFAULT
  5537.     RETURN .F.
  5538. ENDIF
  5539. this.lRelease=.T.
  5540. lcBaseClass=LOWER(this.BaseClass)
  5541. this.oHost=.NULL.
  5542. this.ReleaseObjRefs
  5543. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5544.     RELEASE this
  5545. ENDIF
  5546. ENDPROC
  5547. PROCEDURE setobjectref
  5548. LPARAMETERS tcName,tvClass,tvClassLibrary
  5549. LOCAL lvResult
  5550. this.vResult=.T.
  5551. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5552. lvResult=this.vResult
  5553. this.vResult=.T.
  5554. RETURN lvResult
  5555. ENDPROC
  5556. PROCEDURE setobjectrefs
  5557. LPARAMETERS toObject
  5558. RETURN
  5559. ENDPROC
  5560. PROCEDURE releaseobjrefs
  5561. LOCAL lcName,oObject,lnCount
  5562. IF this.nObjectRefCount=0
  5563.     RETURN
  5564. ENDIF
  5565. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5566.     lcName=this.aObjectRefs[lnCount,1]
  5567.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5568.         LOOP
  5569.     ENDIF
  5570.     oObject=this.&lcName
  5571.     IF ISNULL(oObject)
  5572.         LOOP
  5573.     ENDIF
  5574.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5575.         oObject.Release
  5576.     ENDIF
  5577.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5578.         oObject.oHost=.NULL.
  5579.     ENDIF
  5580.     this.&lcName=.NULL.
  5581.     oObject=.NULL.
  5582. ENDFOR
  5583. DIMENSION this.aObjectRefs[1,3]
  5584. this.aObjectRefs=""
  5585. ENDPROC
  5586. PROCEDURE nobjectrefcount_access
  5587. LOCAL lnObjectRefCount
  5588. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5589. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5590.     lnObjectRefCount=0
  5591. ENDIF
  5592. RETURN lnObjectRefCount
  5593. ENDPROC
  5594. PROCEDURE nobjectrefcount_assign
  5595. LPARAMETERS m.vNewVal
  5596. ERROR 1743
  5597. ENDPROC
  5598. PROCEDURE sethost
  5599. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5600. ENDPROC
  5601. PROCEDURE newinstance
  5602. LPARAMETERS tnDataSessionID
  5603. LOCAL oNewObject,lnLastDataSessionID
  5604. lnLastDataSessionID=SET("DATASESSION")
  5605. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5606.     SET DATASESSION TO tnDataSessionID
  5607. ENDIF
  5608. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5609. SET DATASESSION TO (lnLastDataSessionID)
  5610. RETURN oNewObject
  5611. ENDPROC
  5612. PROCEDURE addtoproject
  5613. *-- Dummy code for adding files to project.
  5614. RETURN
  5615. DO SetObjRf.prg
  5616. ENDPROC
  5617. PROCEDURE ninstances_access
  5618. LOCAL laInstances[1]
  5619. RETURN AINSTANCE(laInstances,this.Class)
  5620. ENDPROC
  5621. PROCEDURE ninstances_assign
  5622. LPARAMETERS vNewVal
  5623. ERROR 1743
  5624. ENDPROC
  5625. PROCEDURE Error
  5626. LPARAMETERS nError, cMethod, nLine
  5627. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5628. IF this.lIgnoreErrors
  5629.     RETURN .F.
  5630. ENDIF
  5631. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5632. IF NOT EMPTY(lcOnError)
  5633.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5634.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5635.     &lcOnError
  5636.     RETURN
  5637. ENDIF
  5638. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5639.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5640.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5641. lcCodeLineMsg=MESSAGE(1)
  5642. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5643.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5644.     IF NOT EMPTY(lcCodeLineMsg)
  5645.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5646.     ENDIF
  5647. ENDIF
  5648. WAIT CLEAR
  5649. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5650. ERROR nError
  5651. ENDPROC
  5652. PROCEDURE Init
  5653. IF this.lSetHost
  5654.     this.SetHost
  5655. ENDIF
  5656. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5657.     RETURN .F.
  5658. ENDIF
  5659. ENDPROC
  5660. PROCEDURE Destroy
  5661. IF this.lRelease
  5662.     RETURN .F.
  5663. ENDIF
  5664. this.lRelease=.T.
  5665. this.ReleaseObjRefs
  5666. this.oHost=.NULL.
  5667. ENDPROC
  5668. cversion Version property.
  5669. builder Bulder property.
  5670. builderx BuilderX property.
  5671. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5672. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5673. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5674. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5675. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5676. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5677. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5678. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5679. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5680. ninstances
  5681. *release Releases object from memory.
  5682. *setobjectref Set object reference to specific property.
  5683. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5684. *releaseobjrefs Releases all object references of aObjectRefs array.
  5685. *nobjectrefcount_access Access method for nObjectRefCount property.
  5686. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5687. ^aobjectrefs[1,3] Array of object references properties.
  5688. *sethost Set oHost property to form reference object.
  5689. *newinstance Returns new instance of object.
  5690. *addtoproject Dummy code for adding files to project.
  5691. *ninstances_access 
  5692. *ninstances_assign 
  5693. IPROCEDURE release
  5694. LOCAL lcBaseClass
  5695. IF this.lRelease
  5696.     NODEFAULT
  5697.     RETURN .F.
  5698. ENDIF
  5699. this.lRelease=.T.
  5700. lcBaseClass=LOWER(this.BaseClass)
  5701. this.oHost=.NULL.
  5702. this.ReleaseObjRefs
  5703. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5704.     RELEASE this
  5705. ENDIF
  5706. ENDPROC
  5707. PROCEDURE setobjectref
  5708. LPARAMETERS tcName,tvClass,tvClassLibrary
  5709. LOCAL lvResult
  5710. this.vResult=.T.
  5711. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5712. lvResult=this.vResult
  5713. this.vResult=.T.
  5714. RETURN lvResult
  5715. ENDPROC
  5716. PROCEDURE setobjectrefs
  5717. LPARAMETERS toObject
  5718. RETURN
  5719. ENDPROC
  5720. PROCEDURE releaseobjrefs
  5721. LOCAL lcName,oObject,lnCount
  5722. IF this.nObjectRefCount=0
  5723.     RETURN
  5724. ENDIF
  5725. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5726.     lcName=this.aObjectRefs[lnCount,1]
  5727.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5728.         LOOP
  5729.     ENDIF
  5730.     oObject=this.&lcName
  5731.     IF ISNULL(oObject)
  5732.         LOOP
  5733.     ENDIF
  5734.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5735.         oObject.Release
  5736.     ENDIF
  5737.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5738.         oObject.oHost=.NULL.
  5739.     ENDIF
  5740.     this.&lcName=.NULL.
  5741.     oObject=.NULL.
  5742. ENDFOR
  5743. DIMENSION this.aObjectRefs[1,3]
  5744. this.aObjectRefs=""
  5745. ENDPROC
  5746. PROCEDURE nobjectrefcount_access
  5747. LOCAL lnObjectRefCount
  5748. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5749. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5750.     lnObjectRefCount=0
  5751. ENDIF
  5752. RETURN lnObjectRefCount
  5753. ENDPROC
  5754. PROCEDURE nobjectrefcount_assign
  5755. LPARAMETERS m.vNewVal
  5756. ERROR 1743
  5757. ENDPROC
  5758. PROCEDURE sethost
  5759. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5760. ENDPROC
  5761. PROCEDURE newinstance
  5762. LPARAMETERS tnDataSessionID
  5763. LOCAL oNewObject,lnLastDataSessionID
  5764. lnLastDataSessionID=SET("DATASESSION")
  5765. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5766.     SET DATASESSION TO tnDataSessionID
  5767. ENDIF
  5768. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5769. SET DATASESSION TO (lnLastDataSessionID)
  5770. RETURN oNewObject
  5771. ENDPROC
  5772. PROCEDURE addtoproject
  5773. *-- Dummy code for adding files to project.
  5774. RETURN
  5775. DO SetObjRf.prg
  5776. ENDPROC
  5777. PROCEDURE ninstances_access
  5778. LOCAL laInstances[1]
  5779. RETURN AINSTANCE(laInstances,this.Class)
  5780. ENDPROC
  5781. PROCEDURE ninstances_assign
  5782. LPARAMETERS vNewVal
  5783. ERROR 1743
  5784. ENDPROC
  5785. PROCEDURE Error
  5786. LPARAMETERS nError, cMethod, nLine
  5787. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5788. IF this.lIgnoreErrors
  5789.     RETURN .F.
  5790. ENDIF
  5791. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5792. IF NOT EMPTY(lcOnError)
  5793.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5794.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5795.     &lcOnError
  5796.     RETURN
  5797. ENDIF
  5798. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5799.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5800.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5801. lcCodeLineMsg=MESSAGE(1)
  5802. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5803.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5804.     IF NOT EMPTY(lcCodeLineMsg)
  5805.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5806.     ENDIF
  5807. ENDIF
  5808. WAIT CLEAR
  5809. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5810. ERROR nError
  5811. ENDPROC
  5812. PROCEDURE Init
  5813. IF this.lSetHost
  5814.     this.SetHost
  5815. ENDIF
  5816. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5817.     RETURN .F.
  5818. ENDIF
  5819. ENDPROC
  5820. PROCEDURE Destroy
  5821. IF this.lRelease
  5822.     RETURN .F.
  5823. ENDIF
  5824. this.lRelease=.T.
  5825. this.ReleaseObjRefs
  5826. this.oHost=.NULL.
  5827. ENDPROC
  5828. cversion Version property.
  5829. builder Bulder property.
  5830. builderx BuilderX property.
  5831. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5832. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5833. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5834. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5835. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5836. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5837. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5838. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5839. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  5840. ninstances
  5841. *release Releases object from memory.
  5842. *setobjectref Set object reference to specific property.
  5843. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  5844. *releaseobjrefs Releases all object references of aObjectRefs array.
  5845. *nobjectrefcount_access Access method for nObjectRefCount property.
  5846. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  5847. ^aobjectrefs[1,3] Array of object references properties.
  5848. *sethost Set oHost property to form reference object.
  5849. *newinstance Returns new instance of object.
  5850. *addtoproject Dummy code for adding files to project.
  5851. *ninstances_access 
  5852. *ninstances_assign 
  5853. IPROCEDURE release
  5854. LOCAL lcBaseClass
  5855. IF this.lRelease
  5856.     NODEFAULT
  5857.     RETURN .F.
  5858. ENDIF
  5859. this.lRelease=.T.
  5860. lcBaseClass=LOWER(this.BaseClass)
  5861. this.oHost=.NULL.
  5862. this.ReleaseObjRefs
  5863. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  5864.     RELEASE this
  5865. ENDIF
  5866. ENDPROC
  5867. PROCEDURE setobjectref
  5868. LPARAMETERS tcName,tvClass,tvClassLibrary
  5869. LOCAL lvResult
  5870. this.vResult=.T.
  5871. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  5872. lvResult=this.vResult
  5873. this.vResult=.T.
  5874. RETURN lvResult
  5875. ENDPROC
  5876. PROCEDURE setobjectrefs
  5877. LPARAMETERS toObject
  5878. RETURN
  5879. ENDPROC
  5880. PROCEDURE releaseobjrefs
  5881. LOCAL lcName,oObject,lnCount
  5882. IF this.nObjectRefCount=0
  5883.     RETURN
  5884. ENDIF
  5885. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  5886.     lcName=this.aObjectRefs[lnCount,1]
  5887.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  5888.         LOOP
  5889.     ENDIF
  5890.     oObject=this.&lcName
  5891.     IF ISNULL(oObject)
  5892.         LOOP
  5893.     ENDIF
  5894.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  5895.         oObject.Release
  5896.     ENDIF
  5897.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  5898.         oObject.oHost=.NULL.
  5899.     ENDIF
  5900.     this.&lcName=.NULL.
  5901.     oObject=.NULL.
  5902. ENDFOR
  5903. DIMENSION this.aObjectRefs[1,3]
  5904. this.aObjectRefs=""
  5905. ENDPROC
  5906. PROCEDURE nobjectrefcount_access
  5907. LOCAL lnObjectRefCount
  5908. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  5909. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  5910.     lnObjectRefCount=0
  5911. ENDIF
  5912. RETURN lnObjectRefCount
  5913. ENDPROC
  5914. PROCEDURE nobjectrefcount_assign
  5915. LPARAMETERS m.vNewVal
  5916. ERROR 1743
  5917. ENDPROC
  5918. PROCEDURE sethost
  5919. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  5920. ENDPROC
  5921. PROCEDURE newinstance
  5922. LPARAMETERS tnDataSessionID
  5923. LOCAL oNewObject,lnLastDataSessionID
  5924. lnLastDataSessionID=SET("DATASESSION")
  5925. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  5926.     SET DATASESSION TO tnDataSessionID
  5927. ENDIF
  5928. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  5929. SET DATASESSION TO (lnLastDataSessionID)
  5930. RETURN oNewObject
  5931. ENDPROC
  5932. PROCEDURE addtoproject
  5933. *-- Dummy code for adding files to project.
  5934. RETURN
  5935. DO SetObjRf.prg
  5936. ENDPROC
  5937. PROCEDURE ninstances_access
  5938. LOCAL laInstances[1]
  5939. RETURN AINSTANCE(laInstances,this.Class)
  5940. ENDPROC
  5941. PROCEDURE ninstances_assign
  5942. LPARAMETERS vNewVal
  5943. ERROR 1743
  5944. ENDPROC
  5945. PROCEDURE Error
  5946. LPARAMETERS nError, cMethod, nLine
  5947. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  5948. IF this.lIgnoreErrors
  5949.     RETURN .F.
  5950. ENDIF
  5951. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  5952. IF NOT EMPTY(lcOnError)
  5953.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  5954.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  5955.     &lcOnError
  5956.     RETURN
  5957. ENDIF
  5958. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  5959.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  5960.         "Method:       "+LOWER(ALLTRIM(cMethod))
  5961. lcCodeLineMsg=MESSAGE(1)
  5962. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  5963.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  5964.     IF NOT EMPTY(lcCodeLineMsg)
  5965.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  5966.     ENDIF
  5967. ENDIF
  5968. WAIT CLEAR
  5969. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  5970. ERROR nError
  5971. ENDPROC
  5972. PROCEDURE Init
  5973. IF this.lSetHost
  5974.     this.SetHost
  5975. ENDIF
  5976. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  5977.     RETURN .F.
  5978. ENDIF
  5979. ENDPROC
  5980. PROCEDURE Destroy
  5981. IF this.lRelease
  5982.     RETURN .F.
  5983. ENDIF
  5984. this.lRelease=.T.
  5985. this.ReleaseObjRefs
  5986. this.oHost=.NULL.
  5987. ENDPROC
  5988. cversion Version property.
  5989. builder Bulder property.
  5990. builderx BuilderX property.
  5991. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  5992. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  5993. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  5994. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  5995. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  5996. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  5997. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  5998. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  5999. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6000. ninstances
  6001. *release Releases object from memory.
  6002. *setobjectref Set object reference to specific property.
  6003. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6004. *releaseobjrefs Releases all object references of aObjectRefs array.
  6005. *nobjectrefcount_access Access method for nObjectRefCount property.
  6006. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6007. ^aobjectrefs[1,3] Array of object references properties.
  6008. *sethost Set oHost property to form reference object.
  6009. *newinstance Returns new instance of object.
  6010. *addtoproject Dummy code for adding files to project.
  6011. *ninstances_access 
  6012. *ninstances_assign 
  6013. IPROCEDURE release
  6014. LOCAL lcBaseClass
  6015. IF this.lRelease
  6016.     NODEFAULT
  6017.     RETURN .F.
  6018. ENDIF
  6019. this.lRelease=.T.
  6020. lcBaseClass=LOWER(this.BaseClass)
  6021. this.oHost=.NULL.
  6022. this.ReleaseObjRefs
  6023. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6024.     RELEASE this
  6025. ENDIF
  6026. ENDPROC
  6027. PROCEDURE setobjectref
  6028. LPARAMETERS tcName,tvClass,tvClassLibrary
  6029. LOCAL lvResult
  6030. this.vResult=.T.
  6031. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6032. lvResult=this.vResult
  6033. this.vResult=.T.
  6034. RETURN lvResult
  6035. ENDPROC
  6036. PROCEDURE setobjectrefs
  6037. LPARAMETERS toObject
  6038. RETURN
  6039. ENDPROC
  6040. PROCEDURE releaseobjrefs
  6041. LOCAL lcName,oObject,lnCount
  6042. IF this.nObjectRefCount=0
  6043.     RETURN
  6044. ENDIF
  6045. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6046.     lcName=this.aObjectRefs[lnCount,1]
  6047.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6048.         LOOP
  6049.     ENDIF
  6050.     oObject=this.&lcName
  6051.     IF ISNULL(oObject)
  6052.         LOOP
  6053.     ENDIF
  6054.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6055.         oObject.Release
  6056.     ENDIF
  6057.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6058.         oObject.oHost=.NULL.
  6059.     ENDIF
  6060.     this.&lcName=.NULL.
  6061.     oObject=.NULL.
  6062. ENDFOR
  6063. DIMENSION this.aObjectRefs[1,3]
  6064. this.aObjectRefs=""
  6065. ENDPROC
  6066. PROCEDURE nobjectrefcount_access
  6067. LOCAL lnObjectRefCount
  6068. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6069. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6070.     lnObjectRefCount=0
  6071. ENDIF
  6072. RETURN lnObjectRefCount
  6073. ENDPROC
  6074. PROCEDURE nobjectrefcount_assign
  6075. LPARAMETERS m.vNewVal
  6076. ERROR 1743
  6077. ENDPROC
  6078. PROCEDURE sethost
  6079. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6080. ENDPROC
  6081. PROCEDURE newinstance
  6082. LPARAMETERS tnDataSessionID
  6083. LOCAL oNewObject,lnLastDataSessionID
  6084. lnLastDataSessionID=SET("DATASESSION")
  6085. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6086.     SET DATASESSION TO tnDataSessionID
  6087. ENDIF
  6088. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6089. SET DATASESSION TO (lnLastDataSessionID)
  6090. RETURN oNewObject
  6091. ENDPROC
  6092. PROCEDURE addtoproject
  6093. *-- Dummy code for adding files to project.
  6094. RETURN
  6095. DO SetObjRf.prg
  6096. ENDPROC
  6097. PROCEDURE ninstances_access
  6098. LOCAL laInstances[1]
  6099. RETURN AINSTANCE(laInstances,this.Class)
  6100. ENDPROC
  6101. PROCEDURE ninstances_assign
  6102. LPARAMETERS vNewVal
  6103. ERROR 1743
  6104. ENDPROC
  6105. PROCEDURE Error
  6106. LPARAMETERS nError, cMethod, nLine
  6107. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6108. IF this.lIgnoreErrors
  6109.     RETURN .F.
  6110. ENDIF
  6111. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6112. IF NOT EMPTY(lcOnError)
  6113.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6114.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6115.     &lcOnError
  6116.     RETURN
  6117. ENDIF
  6118. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6119.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6120.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6121. lcCodeLineMsg=MESSAGE(1)
  6122. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6123.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6124.     IF NOT EMPTY(lcCodeLineMsg)
  6125.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6126.     ENDIF
  6127. ENDIF
  6128. WAIT CLEAR
  6129. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6130. ERROR nError
  6131. ENDPROC
  6132. PROCEDURE Init
  6133. IF this.lSetHost
  6134.     this.SetHost
  6135. ENDIF
  6136. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6137.     RETURN .F.
  6138. ENDIF
  6139. ENDPROC
  6140. PROCEDURE Destroy
  6141. IF this.lRelease
  6142.     RETURN .F.
  6143. ENDIF
  6144. this.lRelease=.T.
  6145. this.ReleaseObjRefs
  6146. this.oHost=.NULL.
  6147. ENDPROC
  6148. cversion Version property.
  6149. builder Bulder property.
  6150. builderx BuilderX property.
  6151. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6152. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6153. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6154. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6155. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6156. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6157. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6158. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6159. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6160. ninstances
  6161. *release Releases object from memory.
  6162. *setobjectref Set object reference to specific property.
  6163. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6164. *releaseobjrefs Releases all object references of aObjectRefs array.
  6165. *nobjectrefcount_access Access method for nObjectRefCount property.
  6166. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6167. ^aobjectrefs[1,3] Array of object references properties.
  6168. *sethost Set oHost property to form reference object.
  6169. *newinstance Returns new instance of object.
  6170. *addtoproject Dummy code for adding files to project.
  6171. *ninstances_access 
  6172. *ninstances_assign 
  6173. IPROCEDURE release
  6174. LOCAL lcBaseClass
  6175. IF this.lRelease
  6176.     NODEFAULT
  6177.     RETURN .F.
  6178. ENDIF
  6179. this.lRelease=.T.
  6180. lcBaseClass=LOWER(this.BaseClass)
  6181. this.oHost=.NULL.
  6182. this.ReleaseObjRefs
  6183. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6184.     RELEASE this
  6185. ENDIF
  6186. ENDPROC
  6187. PROCEDURE setobjectref
  6188. LPARAMETERS tcName,tvClass,tvClassLibrary
  6189. LOCAL lvResult
  6190. this.vResult=.T.
  6191. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6192. lvResult=this.vResult
  6193. this.vResult=.T.
  6194. RETURN lvResult
  6195. ENDPROC
  6196. PROCEDURE setobjectrefs
  6197. LPARAMETERS toObject
  6198. RETURN
  6199. ENDPROC
  6200. PROCEDURE releaseobjrefs
  6201. LOCAL lcName,oObject,lnCount
  6202. IF this.nObjectRefCount=0
  6203.     RETURN
  6204. ENDIF
  6205. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6206.     lcName=this.aObjectRefs[lnCount,1]
  6207.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6208.         LOOP
  6209.     ENDIF
  6210.     oObject=this.&lcName
  6211.     IF ISNULL(oObject)
  6212.         LOOP
  6213.     ENDIF
  6214.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6215.         oObject.Release
  6216.     ENDIF
  6217.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6218.         oObject.oHost=.NULL.
  6219.     ENDIF
  6220.     this.&lcName=.NULL.
  6221.     oObject=.NULL.
  6222. ENDFOR
  6223. DIMENSION this.aObjectRefs[1,3]
  6224. this.aObjectRefs=""
  6225. ENDPROC
  6226. PROCEDURE nobjectrefcount_access
  6227. LOCAL lnObjectRefCount
  6228. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6229. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6230.     lnObjectRefCount=0
  6231. ENDIF
  6232. RETURN lnObjectRefCount
  6233. ENDPROC
  6234. PROCEDURE nobjectrefcount_assign
  6235. LPARAMETERS m.vNewVal
  6236. ERROR 1743
  6237. ENDPROC
  6238. PROCEDURE sethost
  6239. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6240. ENDPROC
  6241. PROCEDURE newinstance
  6242. LPARAMETERS tnDataSessionID
  6243. LOCAL oNewObject,lnLastDataSessionID
  6244. lnLastDataSessionID=SET("DATASESSION")
  6245. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6246.     SET DATASESSION TO tnDataSessionID
  6247. ENDIF
  6248. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6249. SET DATASESSION TO (lnLastDataSessionID)
  6250. RETURN oNewObject
  6251. ENDPROC
  6252. PROCEDURE addtoproject
  6253. *-- Dummy code for adding files to project.
  6254. RETURN
  6255. DO SetObjRf.prg
  6256. ENDPROC
  6257. PROCEDURE ninstances_access
  6258. LOCAL laInstances[1]
  6259. RETURN AINSTANCE(laInstances,this.Class)
  6260. ENDPROC
  6261. PROCEDURE ninstances_assign
  6262. LPARAMETERS vNewVal
  6263. ERROR 1743
  6264. ENDPROC
  6265. PROCEDURE Error
  6266. LPARAMETERS nError, cMethod, nLine
  6267. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6268. IF this.lIgnoreErrors
  6269.     RETURN .F.
  6270. ENDIF
  6271. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6272. IF NOT EMPTY(lcOnError)
  6273.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6274.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6275.     &lcOnError
  6276.     RETURN
  6277. ENDIF
  6278. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6279.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6280.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6281. lcCodeLineMsg=MESSAGE(1)
  6282. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6283.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6284.     IF NOT EMPTY(lcCodeLineMsg)
  6285.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6286.     ENDIF
  6287. ENDIF
  6288. WAIT CLEAR
  6289. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6290. ERROR nError
  6291. ENDPROC
  6292. PROCEDURE Init
  6293. IF this.lSetHost
  6294.     this.SetHost
  6295. ENDIF
  6296. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6297.     RETURN .F.
  6298. ENDIF
  6299. ENDPROC
  6300. PROCEDURE Destroy
  6301. IF this.lRelease
  6302.     RETURN .F.
  6303. ENDIF
  6304. this.lRelease=.T.
  6305. this.ReleaseObjRefs
  6306. this.oHost=.NULL.
  6307. ENDPROC
  6308. cversion Version property.
  6309. builder Bulder property.
  6310. builderx BuilderX property.
  6311. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6312. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6313. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6314. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6315. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6316. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6317. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6318. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6319. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6320. ninstances
  6321. *release Releases object from memory.
  6322. *setobjectref Set object reference to specific property.
  6323. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6324. *releaseobjrefs Releases all object references of aObjectRefs array.
  6325. *nobjectrefcount_access Access method for nObjectRefCount property.
  6326. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6327. ^aobjectrefs[1,3] Array of object references properties.
  6328. *sethost Set oHost property to form reference object.
  6329. *newinstance Returns new instance of object.
  6330. *addtoproject Dummy code for adding files to project.
  6331. *ninstances_access 
  6332. *ninstances_assign 
  6333. IPROCEDURE release
  6334. LOCAL lcBaseClass
  6335. IF this.lRelease
  6336.     NODEFAULT
  6337.     RETURN .F.
  6338. ENDIF
  6339. this.lRelease=.T.
  6340. lcBaseClass=LOWER(this.BaseClass)
  6341. this.oHost=.NULL.
  6342. this.ReleaseObjRefs
  6343. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6344.     RELEASE this
  6345. ENDIF
  6346. ENDPROC
  6347. PROCEDURE setobjectref
  6348. LPARAMETERS tcName,tvClass,tvClassLibrary
  6349. LOCAL lvResult
  6350. this.vResult=.T.
  6351. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6352. lvResult=this.vResult
  6353. this.vResult=.T.
  6354. RETURN lvResult
  6355. ENDPROC
  6356. PROCEDURE setobjectrefs
  6357. LPARAMETERS toObject
  6358. RETURN
  6359. ENDPROC
  6360. PROCEDURE releaseobjrefs
  6361. LOCAL lcName,oObject,lnCount
  6362. IF this.nObjectRefCount=0
  6363.     RETURN
  6364. ENDIF
  6365. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6366.     lcName=this.aObjectRefs[lnCount,1]
  6367.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6368.         LOOP
  6369.     ENDIF
  6370.     oObject=this.&lcName
  6371.     IF ISNULL(oObject)
  6372.         LOOP
  6373.     ENDIF
  6374.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6375.         oObject.Release
  6376.     ENDIF
  6377.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6378.         oObject.oHost=.NULL.
  6379.     ENDIF
  6380.     this.&lcName=.NULL.
  6381.     oObject=.NULL.
  6382. ENDFOR
  6383. DIMENSION this.aObjectRefs[1,3]
  6384. this.aObjectRefs=""
  6385. ENDPROC
  6386. PROCEDURE nobjectrefcount_access
  6387. LOCAL lnObjectRefCount
  6388. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6389. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6390.     lnObjectRefCount=0
  6391. ENDIF
  6392. RETURN lnObjectRefCount
  6393. ENDPROC
  6394. PROCEDURE nobjectrefcount_assign
  6395. LPARAMETERS m.vNewVal
  6396. ERROR 1743
  6397. ENDPROC
  6398. PROCEDURE sethost
  6399. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6400. ENDPROC
  6401. PROCEDURE newinstance
  6402. LPARAMETERS tnDataSessionID
  6403. LOCAL oNewObject,lnLastDataSessionID
  6404. lnLastDataSessionID=SET("DATASESSION")
  6405. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6406.     SET DATASESSION TO tnDataSessionID
  6407. ENDIF
  6408. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6409. SET DATASESSION TO (lnLastDataSessionID)
  6410. RETURN oNewObject
  6411. ENDPROC
  6412. PROCEDURE addtoproject
  6413. *-- Dummy code for adding files to project.
  6414. RETURN
  6415. DO SetObjRf.prg
  6416. ENDPROC
  6417. PROCEDURE ninstances_access
  6418. LOCAL laInstances[1]
  6419. RETURN AINSTANCE(laInstances,this.Class)
  6420. ENDPROC
  6421. PROCEDURE ninstances_assign
  6422. LPARAMETERS vNewVal
  6423. ERROR 1743
  6424. ENDPROC
  6425. PROCEDURE Error
  6426. LPARAMETERS nError, cMethod, nLine
  6427. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6428. IF this.lIgnoreErrors
  6429.     RETURN .F.
  6430. ENDIF
  6431. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6432. IF NOT EMPTY(lcOnError)
  6433.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6434.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6435.     &lcOnError
  6436.     RETURN
  6437. ENDIF
  6438. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6439.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6440.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6441. lcCodeLineMsg=MESSAGE(1)
  6442. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6443.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6444.     IF NOT EMPTY(lcCodeLineMsg)
  6445.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6446.     ENDIF
  6447. ENDIF
  6448. WAIT CLEAR
  6449. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6450. ERROR nError
  6451. ENDPROC
  6452. PROCEDURE Init
  6453. IF this.lSetHost
  6454.     this.SetHost
  6455. ENDIF
  6456. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6457.     RETURN .F.
  6458. ENDIF
  6459. ENDPROC
  6460. PROCEDURE Destroy
  6461. IF this.lRelease
  6462.     RETURN .F.
  6463. ENDIF
  6464. this.lRelease=.T.
  6465. this.ReleaseObjRefs
  6466. this.oHost=.NULL.
  6467. ENDPROC
  6468. cversion Version property.
  6469. builder Bulder property.
  6470. builderx BuilderX property.
  6471. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6472. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6473. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6474. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6475. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6476. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6477. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6478. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6479. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6480. ninstances
  6481. *release Releases object from memory.
  6482. *setobjectref Set object reference to specific property.
  6483. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6484. *releaseobjrefs Releases all object references of aObjectRefs array.
  6485. *nobjectrefcount_access Access method for nObjectRefCount property.
  6486. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6487. ^aobjectrefs[1,3] Array of object references properties.
  6488. *sethost Set oHost property to form reference object.
  6489. *newinstance Returns new instance of object.
  6490. *addtoproject Dummy code for adding files to project.
  6491. *ninstances_access 
  6492. *ninstances_assign 
  6493. IPROCEDURE release
  6494. LOCAL lcBaseClass
  6495. IF this.lRelease
  6496.     NODEFAULT
  6497.     RETURN .F.
  6498. ENDIF
  6499. this.lRelease=.T.
  6500. lcBaseClass=LOWER(this.BaseClass)
  6501. this.oHost=.NULL.
  6502. this.ReleaseObjRefs
  6503. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6504.     RELEASE this
  6505. ENDIF
  6506. ENDPROC
  6507. PROCEDURE setobjectref
  6508. LPARAMETERS tcName,tvClass,tvClassLibrary
  6509. LOCAL lvResult
  6510. this.vResult=.T.
  6511. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6512. lvResult=this.vResult
  6513. this.vResult=.T.
  6514. RETURN lvResult
  6515. ENDPROC
  6516. PROCEDURE setobjectrefs
  6517. LPARAMETERS toObject
  6518. RETURN
  6519. ENDPROC
  6520. PROCEDURE releaseobjrefs
  6521. LOCAL lcName,oObject,lnCount
  6522. IF this.nObjectRefCount=0
  6523.     RETURN
  6524. ENDIF
  6525. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6526.     lcName=this.aObjectRefs[lnCount,1]
  6527.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6528.         LOOP
  6529.     ENDIF
  6530.     oObject=this.&lcName
  6531.     IF ISNULL(oObject)
  6532.         LOOP
  6533.     ENDIF
  6534.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6535.         oObject.Release
  6536.     ENDIF
  6537.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6538.         oObject.oHost=.NULL.
  6539.     ENDIF
  6540.     this.&lcName=.NULL.
  6541.     oObject=.NULL.
  6542. ENDFOR
  6543. DIMENSION this.aObjectRefs[1,3]
  6544. this.aObjectRefs=""
  6545. ENDPROC
  6546. PROCEDURE nobjectrefcount_access
  6547. LOCAL lnObjectRefCount
  6548. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6549. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6550.     lnObjectRefCount=0
  6551. ENDIF
  6552. RETURN lnObjectRefCount
  6553. ENDPROC
  6554. PROCEDURE nobjectrefcount_assign
  6555. LPARAMETERS m.vNewVal
  6556. ERROR 1743
  6557. ENDPROC
  6558. PROCEDURE sethost
  6559. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6560. ENDPROC
  6561. PROCEDURE newinstance
  6562. LPARAMETERS tnDataSessionID
  6563. LOCAL oNewObject,lnLastDataSessionID
  6564. lnLastDataSessionID=SET("DATASESSION")
  6565. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6566.     SET DATASESSION TO tnDataSessionID
  6567. ENDIF
  6568. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6569. SET DATASESSION TO (lnLastDataSessionID)
  6570. RETURN oNewObject
  6571. ENDPROC
  6572. PROCEDURE addtoproject
  6573. *-- Dummy code for adding files to project.
  6574. RETURN
  6575. DO SetObjRf.prg
  6576. ENDPROC
  6577. PROCEDURE ninstances_access
  6578. LOCAL laInstances[1]
  6579. RETURN AINSTANCE(laInstances,this.Class)
  6580. ENDPROC
  6581. PROCEDURE ninstances_assign
  6582. LPARAMETERS vNewVal
  6583. ERROR 1743
  6584. ENDPROC
  6585. PROCEDURE Error
  6586. LPARAMETERS nError, cMethod, nLine
  6587. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6588. IF this.lIgnoreErrors
  6589.     RETURN .F.
  6590. ENDIF
  6591. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6592. IF NOT EMPTY(lcOnError)
  6593.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6594.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6595.     &lcOnError
  6596.     RETURN
  6597. ENDIF
  6598. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6599.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6600.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6601. lcCodeLineMsg=MESSAGE(1)
  6602. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6603.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6604.     IF NOT EMPTY(lcCodeLineMsg)
  6605.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6606.     ENDIF
  6607. ENDIF
  6608. WAIT CLEAR
  6609. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6610. ERROR nError
  6611. ENDPROC
  6612. PROCEDURE Init
  6613. IF this.lSetHost
  6614.     this.SetHost
  6615. ENDIF
  6616. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6617.     RETURN .F.
  6618. ENDIF
  6619. ENDPROC
  6620. PROCEDURE Destroy
  6621. IF this.lRelease
  6622.     RETURN .F.
  6623. ENDIF
  6624. this.lRelease=.T.
  6625. this.ReleaseObjRefs
  6626. this.oHost=.NULL.
  6627. ENDPROC
  6628. cversion Version property.
  6629. builder Bulder property.
  6630. builderx BuilderX property.
  6631. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6632. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6633. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6634. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6635. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6636. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6637. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6638. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6639. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6640. ninstances
  6641. *release Releases object from memory.
  6642. *setobjectref Set object reference to specific property.
  6643. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6644. *releaseobjrefs Releases all object references of aObjectRefs array.
  6645. *nobjectrefcount_access Access method for nObjectRefCount property.
  6646. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6647. ^aobjectrefs[1,3] Array of object references properties.
  6648. *sethost Set oHost property to form reference object.
  6649. *newinstance Returns new instance of object.
  6650. *addtoproject Dummy code for adding files to project.
  6651. *ninstances_access 
  6652. *ninstances_assign 
  6653. IPROCEDURE release
  6654. LOCAL lcBaseClass
  6655. IF this.lRelease
  6656.     NODEFAULT
  6657.     RETURN .F.
  6658. ENDIF
  6659. this.lRelease=.T.
  6660. lcBaseClass=LOWER(this.BaseClass)
  6661. this.oHost=.NULL.
  6662. this.ReleaseObjRefs
  6663. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6664.     RELEASE this
  6665. ENDIF
  6666. ENDPROC
  6667. PROCEDURE setobjectref
  6668. LPARAMETERS tcName,tvClass,tvClassLibrary
  6669. LOCAL lvResult
  6670. this.vResult=.T.
  6671. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6672. lvResult=this.vResult
  6673. this.vResult=.T.
  6674. RETURN lvResult
  6675. ENDPROC
  6676. PROCEDURE setobjectrefs
  6677. LPARAMETERS toObject
  6678. RETURN
  6679. ENDPROC
  6680. PROCEDURE releaseobjrefs
  6681. LOCAL lcName,oObject,lnCount
  6682. IF this.nObjectRefCount=0
  6683.     RETURN
  6684. ENDIF
  6685. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6686.     lcName=this.aObjectRefs[lnCount,1]
  6687.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6688.         LOOP
  6689.     ENDIF
  6690.     oObject=this.&lcName
  6691.     IF ISNULL(oObject)
  6692.         LOOP
  6693.     ENDIF
  6694.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6695.         oObject.Release
  6696.     ENDIF
  6697.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6698.         oObject.oHost=.NULL.
  6699.     ENDIF
  6700.     this.&lcName=.NULL.
  6701.     oObject=.NULL.
  6702. ENDFOR
  6703. DIMENSION this.aObjectRefs[1,3]
  6704. this.aObjectRefs=""
  6705. ENDPROC
  6706. PROCEDURE nobjectrefcount_access
  6707. LOCAL lnObjectRefCount
  6708. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6709. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6710.     lnObjectRefCount=0
  6711. ENDIF
  6712. RETURN lnObjectRefCount
  6713. ENDPROC
  6714. PROCEDURE nobjectrefcount_assign
  6715. LPARAMETERS m.vNewVal
  6716. ERROR 1743
  6717. ENDPROC
  6718. PROCEDURE sethost
  6719. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6720. ENDPROC
  6721. PROCEDURE newinstance
  6722. LPARAMETERS tnDataSessionID
  6723. LOCAL oNewObject,lnLastDataSessionID
  6724. lnLastDataSessionID=SET("DATASESSION")
  6725. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6726.     SET DATASESSION TO tnDataSessionID
  6727. ENDIF
  6728. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6729. SET DATASESSION TO (lnLastDataSessionID)
  6730. RETURN oNewObject
  6731. ENDPROC
  6732. PROCEDURE addtoproject
  6733. *-- Dummy code for adding files to project.
  6734. RETURN
  6735. DO SetObjRf.prg
  6736. ENDPROC
  6737. PROCEDURE ninstances_access
  6738. LOCAL laInstances[1]
  6739. RETURN AINSTANCE(laInstances,this.Class)
  6740. ENDPROC
  6741. PROCEDURE ninstances_assign
  6742. LPARAMETERS vNewVal
  6743. ERROR 1743
  6744. ENDPROC
  6745. PROCEDURE Error
  6746. LPARAMETERS nError, cMethod, nLine
  6747. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6748. IF this.lIgnoreErrors
  6749.     RETURN .F.
  6750. ENDIF
  6751. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6752. IF NOT EMPTY(lcOnError)
  6753.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6754.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6755.     &lcOnError
  6756.     RETURN
  6757. ENDIF
  6758. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6759.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6760.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6761. lcCodeLineMsg=MESSAGE(1)
  6762. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6763.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6764.     IF NOT EMPTY(lcCodeLineMsg)
  6765.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6766.     ENDIF
  6767. ENDIF
  6768. WAIT CLEAR
  6769. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6770. ERROR nError
  6771. ENDPROC
  6772. PROCEDURE Init
  6773. IF this.lSetHost
  6774.     this.SetHost
  6775. ENDIF
  6776. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6777.     RETURN .F.
  6778. ENDIF
  6779. ENDPROC
  6780. PROCEDURE Destroy
  6781. IF this.lRelease
  6782.     RETURN .F.
  6783. ENDIF
  6784. this.lRelease=.T.
  6785. this.ReleaseObjRefs
  6786. this.oHost=.NULL.
  6787. ENDPROC
  6788. cversion Version property.
  6789. builder Bulder property.
  6790. builderx BuilderX property.
  6791. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6792. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6793. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6794. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6795. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6796. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6797. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6798. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6799. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6800. ninstances
  6801. *release Releases object from memory.
  6802. *setobjectref Set object reference to specific property.
  6803. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6804. *releaseobjrefs Releases all object references of aObjectRefs array.
  6805. *nobjectrefcount_access Access method for nObjectRefCount property.
  6806. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6807. ^aobjectrefs[1,3] Array of object references properties.
  6808. *sethost Set oHost property to form reference object.
  6809. *newinstance Returns new instance of object.
  6810. *addtoproject Dummy code for adding files to project.
  6811. *ninstances_access 
  6812. *ninstances_assign 
  6813. cversion Version property.
  6814. builder Bulder property.
  6815. builderx BuilderX property.
  6816. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6817. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6818. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6819. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6820. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6821. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6822. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6823. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6824. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6825. ninstances
  6826. *release Releases object from memory.
  6827. *setobjectref Set object reference to specific property.
  6828. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6829. *releaseobjrefs Releases all object references of aObjectRefs array.
  6830. *nobjectrefcount_access Access method for nObjectRefCount property.
  6831. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6832. ^aobjectrefs[1,3] Array of object references properties.
  6833. *sethost Set oHost property to form reference object.
  6834. *newinstance Returns new instance of object.
  6835. *addtoproject Dummy code for adding files to project.
  6836. *ninstances_access 
  6837. *ninstances_assign 
  6838. IPROCEDURE release
  6839. LOCAL lcBaseClass
  6840. IF this.lRelease
  6841.     NODEFAULT
  6842.     RETURN .F.
  6843. ENDIF
  6844. this.lRelease=.T.
  6845. lcBaseClass=LOWER(this.BaseClass)
  6846. this.oHost=.NULL.
  6847. this.ReleaseObjRefs
  6848. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  6849.     RELEASE this
  6850. ENDIF
  6851. ENDPROC
  6852. PROCEDURE setobjectref
  6853. LPARAMETERS tcName,tvClass,tvClassLibrary
  6854. LOCAL lvResult
  6855. this.vResult=.T.
  6856. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  6857. lvResult=this.vResult
  6858. this.vResult=.T.
  6859. RETURN lvResult
  6860. ENDPROC
  6861. PROCEDURE setobjectrefs
  6862. LPARAMETERS toObject
  6863. RETURN
  6864. ENDPROC
  6865. PROCEDURE releaseobjrefs
  6866. LOCAL lcName,oObject,lnCount
  6867. IF this.nObjectRefCount=0
  6868.     RETURN
  6869. ENDIF
  6870. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  6871.     lcName=this.aObjectRefs[lnCount,1]
  6872.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  6873.         LOOP
  6874.     ENDIF
  6875.     oObject=this.&lcName
  6876.     IF ISNULL(oObject)
  6877.         LOOP
  6878.     ENDIF
  6879.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  6880.         oObject.Release
  6881.     ENDIF
  6882.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  6883.         oObject.oHost=.NULL.
  6884.     ENDIF
  6885.     this.&lcName=.NULL.
  6886.     oObject=.NULL.
  6887. ENDFOR
  6888. DIMENSION this.aObjectRefs[1,3]
  6889. this.aObjectRefs=""
  6890. ENDPROC
  6891. PROCEDURE nobjectrefcount_access
  6892. LOCAL lnObjectRefCount
  6893. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  6894. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  6895.     lnObjectRefCount=0
  6896. ENDIF
  6897. RETURN lnObjectRefCount
  6898. ENDPROC
  6899. PROCEDURE nobjectrefcount_assign
  6900. LPARAMETERS m.vNewVal
  6901. ERROR 1743
  6902. ENDPROC
  6903. PROCEDURE sethost
  6904. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  6905. ENDPROC
  6906. PROCEDURE newinstance
  6907. LPARAMETERS tnDataSessionID
  6908. LOCAL oNewObject,lnLastDataSessionID
  6909. lnLastDataSessionID=SET("DATASESSION")
  6910. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  6911.     SET DATASESSION TO tnDataSessionID
  6912. ENDIF
  6913. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  6914. SET DATASESSION TO (lnLastDataSessionID)
  6915. RETURN oNewObject
  6916. ENDPROC
  6917. PROCEDURE addtoproject
  6918. *-- Dummy code for adding files to project.
  6919. RETURN
  6920. DO SetObjRf.prg
  6921. ENDPROC
  6922. PROCEDURE ninstances_access
  6923. LOCAL laInstances[1]
  6924. RETURN AINSTANCE(laInstances,this.Class)
  6925. ENDPROC
  6926. PROCEDURE ninstances_assign
  6927. LPARAMETERS vNewVal
  6928. ERROR 1743
  6929. ENDPROC
  6930. PROCEDURE Error
  6931. LPARAMETERS nError, cMethod, nLine
  6932. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  6933. IF this.lIgnoreErrors
  6934.     RETURN .F.
  6935. ENDIF
  6936. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  6937. IF NOT EMPTY(lcOnError)
  6938.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  6939.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  6940.     &lcOnError
  6941.     RETURN
  6942. ENDIF
  6943. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  6944.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  6945.         "Method:       "+LOWER(ALLTRIM(cMethod))
  6946. lcCodeLineMsg=MESSAGE(1)
  6947. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  6948.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  6949.     IF NOT EMPTY(lcCodeLineMsg)
  6950.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  6951.     ENDIF
  6952. ENDIF
  6953. WAIT CLEAR
  6954. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  6955. ERROR nError
  6956. ENDPROC
  6957. PROCEDURE Init
  6958. IF this.lSetHost
  6959.     this.SetHost
  6960. ENDIF
  6961. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  6962.     RETURN .F.
  6963. ENDIF
  6964. ENDPROC
  6965. PROCEDURE Destroy
  6966. IF this.lRelease
  6967.     RETURN .F.
  6968. ENDIF
  6969. this.lRelease=.T.
  6970. this.ReleaseObjRefs
  6971. this.oHost=.NULL.
  6972. ENDPROC
  6973. cversion Version property.
  6974. builder Bulder property.
  6975. builderx BuilderX property.
  6976. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  6977. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  6978. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  6979. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  6980. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  6981. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  6982. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  6983. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  6984. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  6985. ninstances
  6986. *release Releases object from memory.
  6987. *setobjectref Set object reference to specific property.
  6988. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  6989. *releaseobjrefs Releases all object references of aObjectRefs array.
  6990. *nobjectrefcount_access Access method for nObjectRefCount property.
  6991. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  6992. ^aobjectrefs[1,3] Array of object references properties.
  6993. *sethost Set oHost property to form reference object.
  6994. *newinstance Returns new instance of object.
  6995. *addtoproject Dummy code for adding files to project.
  6996. *ninstances_access 
  6997. *ninstances_assign 
  6998. IPROCEDURE release
  6999. LOCAL lcBaseClass
  7000. IF this.lRelease
  7001.     NODEFAULT
  7002.     RETURN .F.
  7003. ENDIF
  7004. this.lRelease=.T.
  7005. lcBaseClass=LOWER(this.BaseClass)
  7006. this.oHost=.NULL.
  7007. this.ReleaseObjRefs
  7008. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7009.     RELEASE this
  7010. ENDIF
  7011. ENDPROC
  7012. PROCEDURE setobjectref
  7013. LPARAMETERS tcName,tvClass,tvClassLibrary
  7014. LOCAL lvResult
  7015. this.vResult=.T.
  7016. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7017. lvResult=this.vResult
  7018. this.vResult=.T.
  7019. RETURN lvResult
  7020. ENDPROC
  7021. PROCEDURE setobjectrefs
  7022. LPARAMETERS toObject
  7023. RETURN
  7024. ENDPROC
  7025. PROCEDURE releaseobjrefs
  7026. LOCAL lcName,oObject,lnCount
  7027. IF this.nObjectRefCount=0
  7028.     RETURN
  7029. ENDIF
  7030. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7031.     lcName=this.aObjectRefs[lnCount,1]
  7032.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7033.         LOOP
  7034.     ENDIF
  7035.     oObject=this.&lcName
  7036.     IF ISNULL(oObject)
  7037.         LOOP
  7038.     ENDIF
  7039.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7040.         oObject.Release
  7041.     ENDIF
  7042.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7043.         oObject.oHost=.NULL.
  7044.     ENDIF
  7045.     this.&lcName=.NULL.
  7046.     oObject=.NULL.
  7047. ENDFOR
  7048. DIMENSION this.aObjectRefs[1,3]
  7049. this.aObjectRefs=""
  7050. ENDPROC
  7051. PROCEDURE nobjectrefcount_access
  7052. LOCAL lnObjectRefCount
  7053. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7054. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7055.     lnObjectRefCount=0
  7056. ENDIF
  7057. RETURN lnObjectRefCount
  7058. ENDPROC
  7059. PROCEDURE nobjectrefcount_assign
  7060. LPARAMETERS m.vNewVal
  7061. ERROR 1743
  7062. ENDPROC
  7063. PROCEDURE sethost
  7064. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7065. ENDPROC
  7066. PROCEDURE newinstance
  7067. LPARAMETERS tnDataSessionID
  7068. LOCAL oNewObject,lnLastDataSessionID
  7069. lnLastDataSessionID=SET("DATASESSION")
  7070. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7071.     SET DATASESSION TO tnDataSessionID
  7072. ENDIF
  7073. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7074. SET DATASESSION TO (lnLastDataSessionID)
  7075. RETURN oNewObject
  7076. ENDPROC
  7077. PROCEDURE addtoproject
  7078. *-- Dummy code for adding files to project.
  7079. RETURN
  7080. DO SetObjRf.prg
  7081. ENDPROC
  7082. PROCEDURE ninstances_access
  7083. LOCAL laInstances[1]
  7084. RETURN AINSTANCE(laInstances,this.Class)
  7085. ENDPROC
  7086. PROCEDURE ninstances_assign
  7087. LPARAMETERS vNewVal
  7088. ERROR 1743
  7089. ENDPROC
  7090. PROCEDURE Error
  7091. LPARAMETERS nError, cMethod, nLine
  7092. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7093. IF this.lIgnoreErrors
  7094.     RETURN .F.
  7095. ENDIF
  7096. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7097. IF NOT EMPTY(lcOnError)
  7098.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7099.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7100.     &lcOnError
  7101.     RETURN
  7102. ENDIF
  7103. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7104.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7105.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7106. lcCodeLineMsg=MESSAGE(1)
  7107. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7108.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7109.     IF NOT EMPTY(lcCodeLineMsg)
  7110.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7111.     ENDIF
  7112. ENDIF
  7113. WAIT CLEAR
  7114. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7115. ERROR nError
  7116. ENDPROC
  7117. PROCEDURE Init
  7118. IF this.lSetHost
  7119.     this.SetHost
  7120. ENDIF
  7121. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7122.     RETURN .F.
  7123. ENDIF
  7124. ENDPROC
  7125. PROCEDURE Destroy
  7126. IF this.lRelease
  7127.     RETURN .F.
  7128. ENDIF
  7129. this.lRelease=.T.
  7130. this.ReleaseObjRefs
  7131. this.oHost=.NULL.
  7132. ENDPROC
  7133. cversion Version property.
  7134. builder Bulder property.
  7135. builderx BuilderX property.
  7136. lautobuilder Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off.
  7137. nobjectrefcount Returns the number of items in the object reference array property aObjectRefs.
  7138. ohost Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T.
  7139. lautosetobjectrefs Specifiies if the SetObjectRefs method is automatically called from the Init method.
  7140. vresult Variant result property for internal usage when calling programs in PRGs and a return file is required.
  7141. lrelease Indicates the object's Release method has been executed and the object is in the process of being released from memory.
  7142. csetobjrefprogram Program to be called when when setting an object references via the SetObjectRef method.
  7143. lignoreerrors Specifies if the default FFC error handler is executed when an error occurs.
  7144. lsethost Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM.
  7145. ninstances
  7146. *release Releases object from memory.
  7147. *setobjectref Set object reference to specific property.
  7148. *setobjectrefs Place holder method for listing SetObjectRef method calls.
  7149. *releaseobjrefs Releases all object references of aObjectRefs array.
  7150. *nobjectrefcount_access Access method for nObjectRefCount property.
  7151. *nobjectrefcount_assign Assign method for nObjectRefCount property.
  7152. ^aobjectrefs[1,3] Array of object references properties.
  7153. *sethost Set oHost property to form reference object.
  7154. *newinstance Returns new instance of object.
  7155. *addtoproject Dummy code for adding files to project.
  7156. *ninstances_access 
  7157. *ninstances_assign 
  7158. IPROCEDURE release
  7159. LOCAL lcBaseClass
  7160. IF this.lRelease
  7161.     NODEFAULT
  7162.     RETURN .F.
  7163. ENDIF
  7164. this.lRelease=.T.
  7165. lcBaseClass=LOWER(this.BaseClass)
  7166. this.oHost=.NULL.
  7167. this.ReleaseObjRefs
  7168. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7169.     RELEASE this
  7170. ENDIF
  7171. ENDPROC
  7172. PROCEDURE setobjectref
  7173. LPARAMETERS tcName,tvClass,tvClassLibrary
  7174. LOCAL lvResult
  7175. this.vResult=.T.
  7176. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7177. lvResult=this.vResult
  7178. this.vResult=.T.
  7179. RETURN lvResult
  7180. ENDPROC
  7181. PROCEDURE setobjectrefs
  7182. LPARAMETERS toObject
  7183. RETURN
  7184. ENDPROC
  7185. PROCEDURE releaseobjrefs
  7186. LOCAL lcName,oObject,lnCount
  7187. IF this.nObjectRefCount=0
  7188.     RETURN
  7189. ENDIF
  7190. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7191.     lcName=this.aObjectRefs[lnCount,1]
  7192.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7193.         LOOP
  7194.     ENDIF
  7195.     oObject=this.&lcName
  7196.     IF ISNULL(oObject)
  7197.         LOOP
  7198.     ENDIF
  7199.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7200.         oObject.Release
  7201.     ENDIF
  7202.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7203.         oObject.oHost=.NULL.
  7204.     ENDIF
  7205.     this.&lcName=.NULL.
  7206.     oObject=.NULL.
  7207. ENDFOR
  7208. DIMENSION this.aObjectRefs[1,3]
  7209. this.aObjectRefs=""
  7210. ENDPROC
  7211. PROCEDURE nobjectrefcount_access
  7212. LOCAL lnObjectRefCount
  7213. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7214. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7215.     lnObjectRefCount=0
  7216. ENDIF
  7217. RETURN lnObjectRefCount
  7218. ENDPROC
  7219. PROCEDURE nobjectrefcount_assign
  7220. LPARAMETERS m.vNewVal
  7221. ERROR 1743
  7222. ENDPROC
  7223. PROCEDURE sethost
  7224. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7225. ENDPROC
  7226. PROCEDURE newinstance
  7227. LPARAMETERS tnDataSessionID
  7228. LOCAL oNewObject,lnLastDataSessionID
  7229. lnLastDataSessionID=SET("DATASESSION")
  7230. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7231.     SET DATASESSION TO tnDataSessionID
  7232. ENDIF
  7233. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7234. SET DATASESSION TO (lnLastDataSessionID)
  7235. RETURN oNewObject
  7236. ENDPROC
  7237. PROCEDURE addtoproject
  7238. *-- Dummy code for adding files to project.
  7239. RETURN
  7240. DO SetObjRf.prg
  7241. ENDPROC
  7242. PROCEDURE ninstances_access
  7243. LOCAL laInstances[1]
  7244. RETURN AINSTANCE(laInstances,this.Class)
  7245. ENDPROC
  7246. PROCEDURE ninstances_assign
  7247. LPARAMETERS vNewVal
  7248. ERROR 1743
  7249. ENDPROC
  7250. PROCEDURE Error
  7251. LPARAMETERS nError, cMethod, nLine
  7252. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7253. IF this.lIgnoreErrors
  7254.     RETURN .F.
  7255. ENDIF
  7256. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7257. IF NOT EMPTY(lcOnError)
  7258.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7259.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7260.     &lcOnError
  7261.     RETURN
  7262. ENDIF
  7263. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7264.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7265.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7266. lcCodeLineMsg=MESSAGE(1)
  7267. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7268.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7269.     IF NOT EMPTY(lcCodeLineMsg)
  7270.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7271.     ENDIF
  7272. ENDIF
  7273. WAIT CLEAR
  7274. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7275. ERROR nError
  7276. ENDPROC
  7277. PROCEDURE Init
  7278. IF this.lSetHost
  7279.     this.SetHost
  7280. ENDIF
  7281. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7282.     RETURN .F.
  7283. ENDIF
  7284. ENDPROC
  7285. PROCEDURE Destroy
  7286. IF this.lRelease
  7287.     RETURN .F.
  7288. ENDIF
  7289. this.lRelease=.T.
  7290. this.ReleaseObjRefs
  7291. this.oHost=.NULL.
  7292. ENDPROC
  7293. IPROCEDURE release
  7294. LOCAL lcBaseClass
  7295. IF this.lRelease
  7296.     NODEFAULT
  7297.     RETURN .F.
  7298. ENDIF
  7299. this.lRelease=.T.
  7300. lcBaseClass=LOWER(this.BaseClass)
  7301. this.oHost=.NULL.
  7302. this.ReleaseObjRefs
  7303. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7304.     RELEASE this
  7305. ENDIF
  7306. ENDPROC
  7307. PROCEDURE setobjectref
  7308. LPARAMETERS tcName,tvClass,tvClassLibrary
  7309. LOCAL lvResult
  7310. this.vResult=.T.
  7311. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7312. lvResult=this.vResult
  7313. this.vResult=.T.
  7314. RETURN lvResult
  7315. ENDPROC
  7316. PROCEDURE setobjectrefs
  7317. LPARAMETERS toObject
  7318. RETURN
  7319. ENDPROC
  7320. PROCEDURE releaseobjrefs
  7321. LOCAL lcName,oObject,lnCount
  7322. IF this.nObjectRefCount=0
  7323.     RETURN
  7324. ENDIF
  7325. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7326.     lcName=this.aObjectRefs[lnCount,1]
  7327.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7328.         LOOP
  7329.     ENDIF
  7330.     oObject=this.&lcName
  7331.     IF ISNULL(oObject)
  7332.         LOOP
  7333.     ENDIF
  7334.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7335.         oObject.Release
  7336.     ENDIF
  7337.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7338.         oObject.oHost=.NULL.
  7339.     ENDIF
  7340.     this.&lcName=.NULL.
  7341.     oObject=.NULL.
  7342. ENDFOR
  7343. DIMENSION this.aObjectRefs[1,3]
  7344. this.aObjectRefs=""
  7345. ENDPROC
  7346. PROCEDURE nobjectrefcount_access
  7347. LOCAL lnObjectRefCount
  7348. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7349. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7350.     lnObjectRefCount=0
  7351. ENDIF
  7352. RETURN lnObjectRefCount
  7353. ENDPROC
  7354. PROCEDURE nobjectrefcount_assign
  7355. LPARAMETERS m.vNewVal
  7356. ERROR 1743
  7357. ENDPROC
  7358. PROCEDURE sethost
  7359. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7360. ENDPROC
  7361. PROCEDURE newinstance
  7362. LPARAMETERS tnDataSessionID
  7363. LOCAL oNewObject,lnLastDataSessionID
  7364. lnLastDataSessionID=SET("DATASESSION")
  7365. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7366.     SET DATASESSION TO tnDataSessionID
  7367. ENDIF
  7368. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7369. SET DATASESSION TO (lnLastDataSessionID)
  7370. RETURN oNewObject
  7371. ENDPROC
  7372. PROCEDURE addtoproject
  7373. *-- Dummy code for adding files to project.
  7374. RETURN
  7375. DO SetObjRf.prg
  7376. ENDPROC
  7377. PROCEDURE ninstances_access
  7378. LOCAL laInstances[1]
  7379. RETURN AINSTANCE(laInstances,this.Class)
  7380. ENDPROC
  7381. PROCEDURE ninstances_assign
  7382. LPARAMETERS vNewVal
  7383. ERROR 1743
  7384. ENDPROC
  7385. PROCEDURE Error
  7386. LPARAMETERS nError, cMethod, nLine
  7387. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7388. IF this.lIgnoreErrors
  7389.     RETURN .F.
  7390. ENDIF
  7391. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7392. IF NOT EMPTY(lcOnError)
  7393.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7394.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7395.     &lcOnError
  7396.     RETURN
  7397. ENDIF
  7398. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7399.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7400.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7401. lcCodeLineMsg=MESSAGE(1)
  7402. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7403.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7404.     IF NOT EMPTY(lcCodeLineMsg)
  7405.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7406.     ENDIF
  7407. ENDIF
  7408. WAIT CLEAR
  7409. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7410. ERROR nError
  7411. ENDPROC
  7412. PROCEDURE Init
  7413. IF this.lSetHost
  7414.     this.SetHost
  7415. ENDIF
  7416. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7417.     RETURN .F.
  7418. ENDIF
  7419. ENDPROC
  7420. PROCEDURE Destroy
  7421. IF this.lRelease
  7422.     RETURN .F.
  7423. ENDIF
  7424. this.lRelease=.T.
  7425. this.ReleaseObjRefs
  7426. this.oHost=.NULL.
  7427. ENDPROC
  7428. IPROCEDURE release
  7429. LOCAL lcBaseClass
  7430. IF this.lRelease
  7431.     NODEFAULT
  7432.     RETURN .F.
  7433. ENDIF
  7434. this.lRelease=.T.
  7435. lcBaseClass=LOWER(this.BaseClass)
  7436. this.oHost=.NULL.
  7437. this.ReleaseObjRefs
  7438. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7439.     RELEASE this
  7440. ENDIF
  7441. ENDPROC
  7442. PROCEDURE setobjectref
  7443. LPARAMETERS tcName,tvClass,tvClassLibrary
  7444. LOCAL lvResult
  7445. this.vResult=.T.
  7446. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7447. lvResult=this.vResult
  7448. this.vResult=.T.
  7449. RETURN lvResult
  7450. ENDPROC
  7451. PROCEDURE setobjectrefs
  7452. LPARAMETERS toObject
  7453. RETURN
  7454. ENDPROC
  7455. PROCEDURE releaseobjrefs
  7456. LOCAL lcName,oObject,lnCount
  7457. IF this.nObjectRefCount=0
  7458.     RETURN
  7459. ENDIF
  7460. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7461.     lcName=this.aObjectRefs[lnCount,1]
  7462.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7463.         LOOP
  7464.     ENDIF
  7465.     oObject=this.&lcName
  7466.     IF ISNULL(oObject)
  7467.         LOOP
  7468.     ENDIF
  7469.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7470.         oObject.Release
  7471.     ENDIF
  7472.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7473.         oObject.oHost=.NULL.
  7474.     ENDIF
  7475.     this.&lcName=.NULL.
  7476.     oObject=.NULL.
  7477. ENDFOR
  7478. DIMENSION this.aObjectRefs[1,3]
  7479. this.aObjectRefs=""
  7480. ENDPROC
  7481. PROCEDURE nobjectrefcount_access
  7482. LOCAL lnObjectRefCount
  7483. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7484. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7485.     lnObjectRefCount=0
  7486. ENDIF
  7487. RETURN lnObjectRefCount
  7488. ENDPROC
  7489. PROCEDURE nobjectrefcount_assign
  7490. LPARAMETERS m.vNewVal
  7491. ERROR 1743
  7492. ENDPROC
  7493. PROCEDURE sethost
  7494. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7495. ENDPROC
  7496. PROCEDURE newinstance
  7497. LPARAMETERS tnDataSessionID
  7498. LOCAL oNewObject,lnLastDataSessionID
  7499. lnLastDataSessionID=SET("DATASESSION")
  7500. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7501.     SET DATASESSION TO tnDataSessionID
  7502. ENDIF
  7503. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7504. SET DATASESSION TO (lnLastDataSessionID)
  7505. RETURN oNewObject
  7506. ENDPROC
  7507. PROCEDURE addtoproject
  7508. *-- Dummy code for adding files to project.
  7509. RETURN
  7510. DO SetObjRf.prg
  7511. ENDPROC
  7512. PROCEDURE ninstances_access
  7513. LOCAL laInstances[1]
  7514. RETURN AINSTANCE(laInstances,this.Class)
  7515. ENDPROC
  7516. PROCEDURE ninstances_assign
  7517. LPARAMETERS vNewVal
  7518. ERROR 1743
  7519. ENDPROC
  7520. PROCEDURE Error
  7521. LPARAMETERS nError, cMethod, nLine
  7522. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7523. IF this.lIgnoreErrors
  7524.     RETURN .F.
  7525. ENDIF
  7526. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7527. IF NOT EMPTY(lcOnError)
  7528.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7529.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7530.     &lcOnError
  7531.     RETURN
  7532. ENDIF
  7533. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7534.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7535.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7536. lcCodeLineMsg=MESSAGE(1)
  7537. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7538.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7539.     IF NOT EMPTY(lcCodeLineMsg)
  7540.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7541.     ENDIF
  7542. ENDIF
  7543. WAIT CLEAR
  7544. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7545. ERROR nError
  7546. ENDPROC
  7547. PROCEDURE Init
  7548. IF this.lSetHost
  7549.     this.SetHost
  7550. ENDIF
  7551. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7552.     RETURN .F.
  7553. ENDIF
  7554. ENDPROC
  7555. PROCEDURE Destroy
  7556. IF this.lRelease
  7557.     RETURN .F.
  7558. ENDIF
  7559. this.lRelease=.T.
  7560. this.ReleaseObjRefs
  7561. this.oHost=.NULL.
  7562. ENDPROC
  7563. IPROCEDURE release
  7564. LOCAL lcBaseClass
  7565. IF this.lRelease
  7566.     NODEFAULT
  7567.     RETURN .F.
  7568. ENDIF
  7569. this.lRelease=.T.
  7570. lcBaseClass=LOWER(this.BaseClass)
  7571. this.oHost=.NULL.
  7572. this.ReleaseObjRefs
  7573. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7574.     RELEASE this
  7575. ENDIF
  7576. ENDPROC
  7577. PROCEDURE setobjectref
  7578. LPARAMETERS tcName,tvClass,tvClassLibrary
  7579. LOCAL lvResult
  7580. this.vResult=.T.
  7581. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7582. lvResult=this.vResult
  7583. this.vResult=.T.
  7584. RETURN lvResult
  7585. ENDPROC
  7586. PROCEDURE setobjectrefs
  7587. LPARAMETERS toObject
  7588. RETURN
  7589. ENDPROC
  7590. PROCEDURE releaseobjrefs
  7591. LOCAL lcName,oObject,lnCount
  7592. IF this.nObjectRefCount=0
  7593.     RETURN
  7594. ENDIF
  7595. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7596.     lcName=this.aObjectRefs[lnCount,1]
  7597.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7598.         LOOP
  7599.     ENDIF
  7600.     oObject=this.&lcName
  7601.     IF ISNULL(oObject)
  7602.         LOOP
  7603.     ENDIF
  7604.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7605.         oObject.Release
  7606.     ENDIF
  7607.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7608.         oObject.oHost=.NULL.
  7609.     ENDIF
  7610.     this.&lcName=.NULL.
  7611.     oObject=.NULL.
  7612. ENDFOR
  7613. DIMENSION this.aObjectRefs[1,3]
  7614. this.aObjectRefs=""
  7615. ENDPROC
  7616. PROCEDURE nobjectrefcount_access
  7617. LOCAL lnObjectRefCount
  7618. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7619. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7620.     lnObjectRefCount=0
  7621. ENDIF
  7622. RETURN lnObjectRefCount
  7623. ENDPROC
  7624. PROCEDURE nobjectrefcount_assign
  7625. LPARAMETERS m.vNewVal
  7626. ERROR 1743
  7627. ENDPROC
  7628. PROCEDURE sethost
  7629. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7630. ENDPROC
  7631. PROCEDURE newinstance
  7632. LPARAMETERS tnDataSessionID
  7633. LOCAL oNewObject,lnLastDataSessionID
  7634. lnLastDataSessionID=SET("DATASESSION")
  7635. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7636.     SET DATASESSION TO tnDataSessionID
  7637. ENDIF
  7638. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7639. SET DATASESSION TO (lnLastDataSessionID)
  7640. RETURN oNewObject
  7641. ENDPROC
  7642. PROCEDURE addtoproject
  7643. *-- Dummy code for adding files to project.
  7644. RETURN
  7645. DO SetObjRf.prg
  7646. ENDPROC
  7647. PROCEDURE ninstances_access
  7648. LOCAL laInstances[1]
  7649. RETURN AINSTANCE(laInstances,this.Class)
  7650. ENDPROC
  7651. PROCEDURE ninstances_assign
  7652. LPARAMETERS vNewVal
  7653. ERROR 1743
  7654. ENDPROC
  7655. PROCEDURE Error
  7656. LPARAMETERS nError, cMethod, nLine
  7657. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7658. IF this.lIgnoreErrors
  7659.     RETURN .F.
  7660. ENDIF
  7661. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7662. IF NOT EMPTY(lcOnError)
  7663.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7664.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7665.     &lcOnError
  7666.     RETURN
  7667. ENDIF
  7668. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7669.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7670.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7671. lcCodeLineMsg=MESSAGE(1)
  7672. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7673.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7674.     IF NOT EMPTY(lcCodeLineMsg)
  7675.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7676.     ENDIF
  7677. ENDIF
  7678. WAIT CLEAR
  7679. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7680. ERROR nError
  7681. ENDPROC
  7682. PROCEDURE Init
  7683. IF this.lSetHost
  7684.     this.SetHost
  7685. ENDIF
  7686. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7687.     RETURN .F.
  7688. ENDIF
  7689. ENDPROC
  7690. PROCEDURE Destroy
  7691. IF this.lRelease
  7692.     RETURN .F.
  7693. ENDIF
  7694. this.lRelease=.T.
  7695. this.ReleaseObjRefs
  7696. this.oHost=.NULL.
  7697. ENDPROC
  7698. IPROCEDURE release
  7699. LOCAL lcBaseClass
  7700. IF this.lRelease
  7701.     NODEFAULT
  7702.     RETURN .F.
  7703. ENDIF
  7704. this.lRelease=.T.
  7705. lcBaseClass=LOWER(this.BaseClass)
  7706. this.oHost=.NULL.
  7707. this.ReleaseObjRefs
  7708. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7709.     RELEASE this
  7710. ENDIF
  7711. ENDPROC
  7712. PROCEDURE setobjectref
  7713. LPARAMETERS tcName,tvClass,tvClassLibrary
  7714. LOCAL lvResult
  7715. this.vResult=.T.
  7716. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7717. lvResult=this.vResult
  7718. this.vResult=.T.
  7719. RETURN lvResult
  7720. ENDPROC
  7721. PROCEDURE setobjectrefs
  7722. LPARAMETERS toObject
  7723. RETURN
  7724. ENDPROC
  7725. PROCEDURE releaseobjrefs
  7726. LOCAL lcName,oObject,lnCount
  7727. IF this.nObjectRefCount=0
  7728.     RETURN
  7729. ENDIF
  7730. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7731.     lcName=this.aObjectRefs[lnCount,1]
  7732.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7733.         LOOP
  7734.     ENDIF
  7735.     oObject=this.&lcName
  7736.     IF ISNULL(oObject)
  7737.         LOOP
  7738.     ENDIF
  7739.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7740.         oObject.Release
  7741.     ENDIF
  7742.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7743.         oObject.oHost=.NULL.
  7744.     ENDIF
  7745.     this.&lcName=.NULL.
  7746.     oObject=.NULL.
  7747. ENDFOR
  7748. DIMENSION this.aObjectRefs[1,3]
  7749. this.aObjectRefs=""
  7750. ENDPROC
  7751. PROCEDURE nobjectrefcount_access
  7752. LOCAL lnObjectRefCount
  7753. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7754. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7755.     lnObjectRefCount=0
  7756. ENDIF
  7757. RETURN lnObjectRefCount
  7758. ENDPROC
  7759. PROCEDURE nobjectrefcount_assign
  7760. LPARAMETERS m.vNewVal
  7761. ERROR 1743
  7762. ENDPROC
  7763. PROCEDURE sethost
  7764. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7765. ENDPROC
  7766. PROCEDURE newinstance
  7767. LPARAMETERS tnDataSessionID
  7768. LOCAL oNewObject,lnLastDataSessionID
  7769. lnLastDataSessionID=SET("DATASESSION")
  7770. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7771.     SET DATASESSION TO tnDataSessionID
  7772. ENDIF
  7773. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7774. SET DATASESSION TO (lnLastDataSessionID)
  7775. RETURN oNewObject
  7776. ENDPROC
  7777. PROCEDURE addtoproject
  7778. *-- Dummy code for adding files to project.
  7779. RETURN
  7780. DO SetObjRf.prg
  7781. ENDPROC
  7782. PROCEDURE ninstances_access
  7783. LOCAL laInstances[1]
  7784. RETURN AINSTANCE(laInstances,this.Class)
  7785. ENDPROC
  7786. PROCEDURE ninstances_assign
  7787. LPARAMETERS vNewVal
  7788. ERROR 1743
  7789. ENDPROC
  7790. PROCEDURE Error
  7791. LPARAMETERS nError, cMethod, nLine
  7792. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7793. IF this.lIgnoreErrors
  7794.     RETURN .F.
  7795. ENDIF
  7796. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7797. IF NOT EMPTY(lcOnError)
  7798.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7799.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7800.     &lcOnError
  7801.     RETURN
  7802. ENDIF
  7803. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7804.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7805.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7806. lcCodeLineMsg=MESSAGE(1)
  7807. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7808.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7809.     IF NOT EMPTY(lcCodeLineMsg)
  7810.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7811.     ENDIF
  7812. ENDIF
  7813. WAIT CLEAR
  7814. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7815. ERROR nError
  7816. ENDPROC
  7817. PROCEDURE Init
  7818. IF this.lSetHost
  7819.     this.SetHost
  7820. ENDIF
  7821. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7822.     RETURN .F.
  7823. ENDIF
  7824. ENDPROC
  7825. PROCEDURE Destroy
  7826. IF this.lRelease
  7827.     RETURN .F.
  7828. ENDIF
  7829. this.lRelease=.T.
  7830. this.ReleaseObjRefs
  7831. this.oHost=.NULL.
  7832. ENDPROC
  7833. IPROCEDURE release
  7834. LOCAL lcBaseClass
  7835. IF this.lRelease
  7836.     NODEFAULT
  7837.     RETURN .F.
  7838. ENDIF
  7839. this.lRelease=.T.
  7840. lcBaseClass=LOWER(this.BaseClass)
  7841. this.oHost=.NULL.
  7842. this.ReleaseObjRefs
  7843. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7844.     RELEASE this
  7845. ENDIF
  7846. ENDPROC
  7847. PROCEDURE setobjectref
  7848. LPARAMETERS tcName,tvClass,tvClassLibrary
  7849. LOCAL lvResult
  7850. this.vResult=.T.
  7851. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7852. lvResult=this.vResult
  7853. this.vResult=.T.
  7854. RETURN lvResult
  7855. ENDPROC
  7856. PROCEDURE setobjectrefs
  7857. LPARAMETERS toObject
  7858. RETURN
  7859. ENDPROC
  7860. PROCEDURE releaseobjrefs
  7861. LOCAL lcName,oObject,lnCount
  7862. IF this.nObjectRefCount=0
  7863.     RETURN
  7864. ENDIF
  7865. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  7866.     lcName=this.aObjectRefs[lnCount,1]
  7867.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  7868.         LOOP
  7869.     ENDIF
  7870.     oObject=this.&lcName
  7871.     IF ISNULL(oObject)
  7872.         LOOP
  7873.     ENDIF
  7874.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  7875.         oObject.Release
  7876.     ENDIF
  7877.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  7878.         oObject.oHost=.NULL.
  7879.     ENDIF
  7880.     this.&lcName=.NULL.
  7881.     oObject=.NULL.
  7882. ENDFOR
  7883. DIMENSION this.aObjectRefs[1,3]
  7884. this.aObjectRefs=""
  7885. ENDPROC
  7886. PROCEDURE nobjectrefcount_access
  7887. LOCAL lnObjectRefCount
  7888. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  7889. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  7890.     lnObjectRefCount=0
  7891. ENDIF
  7892. RETURN lnObjectRefCount
  7893. ENDPROC
  7894. PROCEDURE nobjectrefcount_assign
  7895. LPARAMETERS m.vNewVal
  7896. ERROR 1743
  7897. ENDPROC
  7898. PROCEDURE sethost
  7899. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  7900. ENDPROC
  7901. PROCEDURE newinstance
  7902. LPARAMETERS tnDataSessionID
  7903. LOCAL oNewObject,lnLastDataSessionID
  7904. lnLastDataSessionID=SET("DATASESSION")
  7905. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  7906.     SET DATASESSION TO tnDataSessionID
  7907. ENDIF
  7908. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  7909. SET DATASESSION TO (lnLastDataSessionID)
  7910. RETURN oNewObject
  7911. ENDPROC
  7912. PROCEDURE addtoproject
  7913. *-- Dummy code for adding files to project.
  7914. RETURN
  7915. DO SetObjRf.prg
  7916. ENDPROC
  7917. PROCEDURE ninstances_access
  7918. LOCAL laInstances[1]
  7919. RETURN AINSTANCE(laInstances,this.Class)
  7920. ENDPROC
  7921. PROCEDURE ninstances_assign
  7922. LPARAMETERS vNewVal
  7923. ERROR 1743
  7924. ENDPROC
  7925. PROCEDURE Error
  7926. LPARAMETERS nError, cMethod, nLine
  7927. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  7928. IF this.lIgnoreErrors
  7929.     RETURN .F.
  7930. ENDIF
  7931. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  7932. IF NOT EMPTY(lcOnError)
  7933.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  7934.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  7935.     &lcOnError
  7936.     RETURN
  7937. ENDIF
  7938. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  7939.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  7940.         "Method:       "+LOWER(ALLTRIM(cMethod))
  7941. lcCodeLineMsg=MESSAGE(1)
  7942. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  7943.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  7944.     IF NOT EMPTY(lcCodeLineMsg)
  7945.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  7946.     ENDIF
  7947. ENDIF
  7948. WAIT CLEAR
  7949. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  7950. ERROR nError
  7951. ENDPROC
  7952. PROCEDURE Init
  7953. IF this.lSetHost
  7954.     this.SetHost
  7955. ENDIF
  7956. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  7957.     RETURN .F.
  7958. ENDIF
  7959. ENDPROC
  7960. PROCEDURE Destroy
  7961. IF this.lRelease
  7962.     RETURN .F.
  7963. ENDIF
  7964. this.lRelease=.T.
  7965. this.ReleaseObjRefs
  7966. this.oHost=.NULL.
  7967. ENDPROC
  7968. IPROCEDURE release
  7969. LOCAL lcBaseClass
  7970. IF this.lRelease
  7971.     NODEFAULT
  7972.     RETURN .F.
  7973. ENDIF
  7974. this.lRelease=.T.
  7975. lcBaseClass=LOWER(this.BaseClass)
  7976. this.oHost=.NULL.
  7977. this.ReleaseObjRefs
  7978. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  7979.     RELEASE this
  7980. ENDIF
  7981. ENDPROC
  7982. PROCEDURE setobjectref
  7983. LPARAMETERS tcName,tvClass,tvClassLibrary
  7984. LOCAL lvResult
  7985. this.vResult=.T.
  7986. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  7987. lvResult=this.vResult
  7988. this.vResult=.T.
  7989. RETURN lvResult
  7990. ENDPROC
  7991. PROCEDURE setobjectrefs
  7992. LPARAMETERS toObject
  7993. RETURN
  7994. ENDPROC
  7995. PROCEDURE releaseobjrefs
  7996. LOCAL lcName,oObject,lnCount
  7997. IF this.nObjectRefCount=0
  7998.     RETURN
  7999. ENDIF
  8000. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  8001.     lcName=this.aObjectRefs[lnCount,1]
  8002.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  8003.         LOOP
  8004.     ENDIF
  8005.     oObject=this.&lcName
  8006.     IF ISNULL(oObject)
  8007.         LOOP
  8008.     ENDIF
  8009.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  8010.         oObject.Release
  8011.     ENDIF
  8012.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  8013.         oObject.oHost=.NULL.
  8014.     ENDIF
  8015.     this.&lcName=.NULL.
  8016.     oObject=.NULL.
  8017. ENDFOR
  8018. DIMENSION this.aObjectRefs[1,3]
  8019. this.aObjectRefs=""
  8020. ENDPROC
  8021. PROCEDURE nobjectrefcount_access
  8022. LOCAL lnObjectRefCount
  8023. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  8024. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  8025.     lnObjectRefCount=0
  8026. ENDIF
  8027. RETURN lnObjectRefCount
  8028. ENDPROC
  8029. PROCEDURE nobjectrefcount_assign
  8030. LPARAMETERS m.vNewVal
  8031. ERROR 1743
  8032. ENDPROC
  8033. PROCEDURE sethost
  8034. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  8035. ENDPROC
  8036. PROCEDURE newinstance
  8037. LPARAMETERS tnDataSessionID
  8038. LOCAL oNewObject,lnLastDataSessionID
  8039. lnLastDataSessionID=SET("DATASESSION")
  8040. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  8041.     SET DATASESSION TO tnDataSessionID
  8042. ENDIF
  8043. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  8044. SET DATASESSION TO (lnLastDataSessionID)
  8045. RETURN oNewObject
  8046. ENDPROC
  8047. PROCEDURE addtoproject
  8048. *-- Dummy code for adding files to project.
  8049. RETURN
  8050. DO SetObjRf.prg
  8051. ENDPROC
  8052. PROCEDURE ninstances_access
  8053. LOCAL laInstances[1]
  8054. RETURN AINSTANCE(laInstances,this.Class)
  8055. ENDPROC
  8056. PROCEDURE ninstances_assign
  8057. LPARAMETERS vNewVal
  8058. ERROR 1743
  8059. ENDPROC
  8060. PROCEDURE Error
  8061. LPARAMETERS nError, cMethod, nLine
  8062. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  8063. IF this.lIgnoreErrors
  8064.     RETURN .F.
  8065. ENDIF
  8066. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  8067. IF NOT EMPTY(lcOnError)
  8068.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  8069.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  8070.     &lcOnError
  8071.     RETURN
  8072. ENDIF
  8073. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  8074.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  8075.         "Method:       "+LOWER(ALLTRIM(cMethod))
  8076. lcCodeLineMsg=MESSAGE(1)
  8077. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  8078.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  8079.     IF NOT EMPTY(lcCodeLineMsg)
  8080.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  8081.     ENDIF
  8082. ENDIF
  8083. WAIT CLEAR
  8084. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  8085. ERROR nError
  8086. ENDPROC
  8087. PROCEDURE Init
  8088. IF this.lSetHost
  8089.     this.SetHost
  8090. ENDIF
  8091. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  8092.     RETURN .F.
  8093. ENDIF
  8094. ENDPROC
  8095. PROCEDURE Destroy
  8096. IF this.lRelease
  8097.     RETURN .F.
  8098. ENDIF
  8099. this.lRelease=.T.
  8100. this.ReleaseObjRefs
  8101. this.oHost=.NULL.
  8102. ENDPROC
  8103. IPROCEDURE release
  8104. LOCAL lcBaseClass
  8105. IF this.lRelease
  8106.     NODEFAULT
  8107.     RETURN .F.
  8108. ENDIF
  8109. this.lRelease=.T.
  8110. lcBaseClass=LOWER(this.BaseClass)
  8111. this.oHost=.NULL.
  8112. this.ReleaseObjRefs
  8113. IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ")
  8114.     RELEASE this
  8115. ENDIF
  8116. ENDPROC
  8117. PROCEDURE setobjectref
  8118. LPARAMETERS tcName,tvClass,tvClassLibrary
  8119. LOCAL lvResult
  8120. this.vResult=.T.
  8121. DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary)
  8122. lvResult=this.vResult
  8123. this.vResult=.T.
  8124. RETURN lvResult
  8125. ENDPROC
  8126. PROCEDURE setobjectrefs
  8127. LPARAMETERS toObject
  8128. RETURN
  8129. ENDPROC
  8130. PROCEDURE releaseobjrefs
  8131. LOCAL lcName,oObject,lnCount
  8132. IF this.nObjectRefCount=0
  8133.     RETURN
  8134. ENDIF
  8135. FOR lnCount = this.nObjectRefCount TO 1 STEP -1
  8136.     lcName=this.aObjectRefs[lnCount,1]
  8137.     IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O"
  8138.         LOOP
  8139.     ENDIF
  8140.     oObject=this.&lcName
  8141.     IF ISNULL(oObject)
  8142.         LOOP
  8143.     ENDIF
  8144.     IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5)
  8145.         oObject.Release
  8146.     ENDIF
  8147.     IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5)
  8148.         oObject.oHost=.NULL.
  8149.     ENDIF
  8150.     this.&lcName=.NULL.
  8151.     oObject=.NULL.
  8152. ENDFOR
  8153. DIMENSION this.aObjectRefs[1,3]
  8154. this.aObjectRefs=""
  8155. ENDPROC
  8156. PROCEDURE nobjectrefcount_access
  8157. LOCAL lnObjectRefCount
  8158. lnObjectRefCount=ALEN(this.aObjectRefs,1)
  8159. IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1])
  8160.     lnObjectRefCount=0
  8161. ENDIF
  8162. RETURN lnObjectRefCount
  8163. ENDPROC
  8164. PROCEDURE nobjectrefcount_assign
  8165. LPARAMETERS m.vNewVal
  8166. ERROR 1743
  8167. ENDPROC
  8168. PROCEDURE sethost
  8169. this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.)
  8170. ENDPROC
  8171. PROCEDURE newinstance
  8172. LPARAMETERS tnDataSessionID
  8173. LOCAL oNewObject,lnLastDataSessionID
  8174. lnLastDataSessionID=SET("DATASESSION")
  8175. IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1
  8176.     SET DATASESSION TO tnDataSessionID
  8177. ENDIF
  8178. oNewObject=NEWOBJECT(this.Class,this.ClassLibrary)
  8179. SET DATASESSION TO (lnLastDataSessionID)
  8180. RETURN oNewObject
  8181. ENDPROC
  8182. PROCEDURE addtoproject
  8183. *-- Dummy code for adding files to project.
  8184. RETURN
  8185. DO SetObjRf.prg
  8186. ENDPROC
  8187. PROCEDURE ninstances_access
  8188. LOCAL laInstances[1]
  8189. RETURN AINSTANCE(laInstances,this.Class)
  8190. ENDPROC
  8191. PROCEDURE ninstances_assign
  8192. LPARAMETERS vNewVal
  8193. ERROR 1743
  8194. ENDPROC
  8195. PROCEDURE Error
  8196. LPARAMETERS nError, cMethod, nLine
  8197. LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg
  8198. IF this.lIgnoreErrors
  8199.     RETURN .F.
  8200. ENDIF
  8201. lcOnError=UPPER(ALLTRIM(ON("ERROR")))
  8202. IF NOT EMPTY(lcOnError)
  8203.     lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ;
  8204.             "PROGRAM()","cMethod"),"LINENO()","nLine")
  8205.     &lcOnError
  8206.     RETURN
  8207. ENDIF
  8208. lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ;
  8209.         "Error:           "+ALLTRIM(STR(nError))+CHR(13)+ ;
  8210.         "Method:       "+LOWER(ALLTRIM(cMethod))
  8211. lcCodeLineMsg=MESSAGE(1)
  8212. IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..."
  8213.     lcErrorMsg=lcErrorMsg+CHR(13)+"Line:            "+ALLTRIM(STR(nLine))
  8214.     IF NOT EMPTY(lcCodeLineMsg)
  8215.         lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
  8216.     ENDIF
  8217. ENDIF
  8218. WAIT CLEAR
  8219. MESSAGEBOX(lcErrorMsg,16,_screen.Caption)
  8220. ERROR nError
  8221. ENDPROC
  8222. PROCEDURE Init
  8223. IF this.lSetHost
  8224.     this.SetHost
  8225. ENDIF
  8226. IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this)
  8227.     RETURN .F.
  8228. ENDIF
  8229. ENDPROC
  8230. PROCEDURE Destroy
  8231. IF this.lRelease
  8232.     RETURN .F.
  8233. ENDIF
  8234. this.lRelease=.T.
  8235. this.ReleaseObjRefs
  8236. this.oHost=.NULL.
  8237. ENDPROC
  8238. form 
  8239. formset 
  8240. toolbar 
  8241. LCBASECLASS
  8242. LRELEASE    
  8243. BASECLASS
  8244. OHOST
  8245. RELEASEOBJREFSw
  8246. TCNAME
  8247. TVCLASS
  8248. TVCLASSLIBRARY
  8249. LVRESULT
  8250. VRESULT
  8251. CSETOBJREFPROGRAM
  8252. TOOBJECT
  8253. this.
  8254. oObject=this.&lcName
  8255. oObjectb
  8256. Release
  8257. oHost
  8258. this.&lcName=.NULL.
  8259. LCNAME
  8260. OOBJECT
  8261. LNCOUNT
  8262. NOBJECTREFCOUNT
  8263. AOBJECTREFS
  8264. RELEASE
  8265. OHOSTZ
  8266. LNOBJECTREFCOUNT
  8267. AOBJECTREFS
  8268. VNEWVAL.
  8269. thisformb
  8270. OHOST
  8271. THISFORM
  8272. DATASESSIONv
  8273. tnDataSessionIDb
  8274. TNDATASESSIONID
  8275. ONEWOBJECT
  8276. LNLASTDATASESSIONID
  8277. CLASS
  8278. CLASSLIBRARY
  8279. SetObjRf.prg
  8280. SETOBJRF
  8281. LAINSTANCES
  8282. CLASS
  8283. VNEWVAL
  8284. ERROR
  8285. ERROR()
  8286. nError
  8287. PROGRAM()
  8288. cMethod
  8289. LINENO()
  8290. nLine
  8291. &lcOnError
  8292. Error:           
  8293. Method:       
  8294. Line:            
  8295. NERROR
  8296. CMETHOD
  8297. NLINE    
  8298. LCONERROR
  8299. LCERRORMSG
  8300. LCCODELINEMSG
  8301. LIGNOREERRORS
  8302. CAPTIONL
  8303. LSETHOST
  8304. SETHOST
  8305. LAUTOSETOBJECTREFS
  8306. SETOBJECTREFSD
  8307. LRELEASE
  8308. RELEASEOBJREFS
  8309. OHOST
  8310. release,
  8311. setobjectref
  8312. setobjectrefs
  8313. releaseobjrefs
  8314. nobjectrefcount_access
  8315. nobjectrefcount_assigni
  8316. sethost
  8317. newinstance
  8318. addtoproject
  8319. ninstances_access
  8320. ninstances_assign/
  8321. ErrorP
  8322. Destroy+    
  8323. toObjectb
  8324. tcNameb
  8325. tvClassb
  8326. tvClassLibraryb
  8327. tvClassLibraryb
  8328. oObjectb
  8329. oHost
  8330. oHost
  8331. TOOBJECT
  8332. TCNAME
  8333. TVCLASS
  8334. TVCLASSLIBRARY
  8335. LCNAME
  8336. LCCLASS
  8337. LCCLASSLIBRARY
  8338. OOBJECT
  8339. LNCOUNT
  8340. LNOBJECTREFINDEX
  8341. LNOBJECTREFCOUNT
  8342. OEXISTINGOBJECT
  8343. CLASS
  8344. CLASSLIBRARY
  8345. VRESULT
  8346. LLCLASSLIB
  8347. ADDPROPERTY
  8348. OHOST
  8349. NOBJECTREFCOUNT
  8350. AOBJECTREFS;
  8351. PLATFORM
  8352. UNIQUEID
  8353. TIMESTAMP
  8354. CLASS
  8355. CLASSLOC
  8356. BASECLASS
  8357. OBJNAME
  8358. PARENT
  8359. PROPERTIES
  8360. PROTECTED
  8361. METHODS
  8362. OBJCODE
  8363. RESERVED1
  8364. RESERVED2
  8365. RESERVED3
  8366. RESERVED4
  8367. RESERVED5
  8368. RESERVED6
  8369. RESERVED7
  8370. RESERVED8
  8371.  COMMENT Class              0
  8372.  WINDOWS _QYC0Z5IUF 510165763
  8373.  WINDOWS _QYC0Z5J6Y 510165763J
  8374.  WINDOWS _QYC0Z5Q47 510165767J
  8375.  WINDOWS _QYC0Z5QD3 510165768
  8376.  WINDOWS _R460NOG7P 524572762
  8377.  WINDOWS _R460NOFRA 524572762~
  8378.  WINDOWS _R460NOFWK 524572762t
  8379.  WINDOWS _R460NOG3T 524572762d
  8380.  COMMENT FONTINFO            
  8381.  WINDOWS _R5S0NGX66 528570144
  8382.  COMMENT FONTINFO            
  8383.  WINDOWS _R5W118DH0 528845512
  8384.  COMMENT FONTINFO            
  8385.  WINDOWS _R6Y0ZX7R5 539657649o
  8386.  COMMENT FONTINFO            
  8387.  WINDOWS _R6Y10LAOW 539658377
  8388.  COMMENT FONTINFO            
  8389.  WINDOWS _R9219M9N8 544910295
  8390.  WINDOWS _R921A3YPB 544910295
  8391.  WINDOWS _R921A3ZBJ 544910295U
  8392.  WINDOWS _QTZ0WOH2H 544910296
  8393.  WINDOWS _R921A40N9 544910296
  8394.  WINDOWS _R921A41IR 544910297
  8395.  COMMENT RESERVED            
  8396.  WINDOWS _R8C0U0LVK 547849277.
  8397.  WINDOWS _R8C0U0LQK 5478492777
  8398.  WINDOWS _R8C0U0LRO 547849277
  8399.  WINDOWS _R8C0U0LT2 547849277
  8400.  WINDOWS _R8C0U0LTM 547849277
  8401.  WINDOWS _R8C0U0LUG 547849277[
  8402.  WINDOWS _R8C0U0LV0 547849277B
  8403.  COMMENT RESERVED            
  8404.  WINDOWS _R2Z0NXWN8 547968551)
  8405.  WINDOWS _R2Z0NXWA5 547968481
  8406.  WINDOWS _QYC0Z5IUF 547968551t
  8407.  WINDOWS _R2Z0NXWEL 547968551
  8408.  WINDOWS _R2Z0NXWCR 547968551C
  8409.  WINDOWS _R2Z0NXWGG 547968551<
  8410.  WINDOWS _R2Z0NXWLH 5479685511
  8411.  COMMENT RESERVED            
  8412.  WINDOWS _R5Z0WREFN 548045785
  8413.  COMMENT RESERVED            
  8414.  WINDOWS _RBF0YPT02 550786818
  8415.  WINDOWS _RBF0YPT2X 550732153J
  8416.  WINDOWS _RBF0YPT8K 550786818
  8417.  WINDOWS _RBF0YPTAV 550732337
  8418.  WINDOWS _RBF0YPTCF 550786818h
  8419.  WINDOWS _RBF0YPTDR 550786732;
  8420.  WINDOWS _RBF0YPTIA 550732153
  8421.  WINDOWS _RBF0YPTK8 550734210
  8422.  WINDOWS _RBF10JQ8T 550786818
  8423.  COMMENT RESERVED            
  8424.  WINDOWS _R940Q8XD5 550798728G
  8425.  COMMENT RESERVED            
  8426.  WINDOWS _R940NBEGO 550798730
  8427.  COMMENT RESERVED            
  8428.  WINDOWS _RBG10MVKG 550800274k
  8429.  WINDOWS _RBG10R8XR 550800274K
  8430.  WINDOWS _RBG10R910 550800077
  8431.  WINDOWS _RBG10R93V 550799644
  8432.  COMMENT RESERVED            
  8433.  WINDOWS _RA20UPS3F 552362375
  8434.  WINDOWS _RA20XBHSA 547509048i
  8435.  COMMENT RESERVED            
  8436.  WINDOWS _R6Y10O0I3 616212987
  8437.  WINDOWS _R6Y10NZNS 616212987
  8438.  WINDOWS _R6Y10NZRZ 616212987
  8439.  WINDOWS _R6Y10NZUG 616212987g
  8440.  WINDOWS _R6Y10NZYZ 616212987
  8441.  WINDOWS _R6Y10O004 616212987
  8442.  WINDOWS _R6Y10O03V 616212987
  8443.  WINDOWS _R6Y10O07H 616212987Q
  8444.  WINDOWS _R6Y10O0C3 616212987%
  8445.  WINDOWS _R6Y10O0D6 616212987
  8446.  COMMENT RESERVED            
  8447.  WINDOWS _RA20UPS3F 662194010#
  8448.  WINDOWS _RA20XBHSA 547454261
  8449.  COMMENT RESERVED            
  8450. VERSION =  0.029
  8451. cmdColor
  8452. commandbutton}
  8453. commandbutton
  8454. Top = 4
  8455. Left = 255
  8456. Height = 23
  8457. Width = 25
  8458. FontBold = .T.
  8459. FontItalic = .T.
  8460. FontName = "Courier New"
  8461. FontSize = 9
  8462. Caption = "K"
  8463. ToolTipText = "Kursiv"
  8464. Name = "cmdItalic"
  8465. rtfcontrols.
  8466.     cmdItalic
  8467. commandbutton
  8468. commandbuttonU
  8469. Top = 4
  8470. Left = 227
  8471. Height = 23
  8472. Width = 25
  8473. FontBold = .T.
  8474. FontName = "Courier New"
  8475. Caption = "F"
  8476. ToolTipText = "Fett"
  8477. Name = "cmdBold"
  8478. rtfcontrols.
  8479. cmdBold
  8480. commandbuttonP
  8481. commandbutton
  8482. ,Left = 172
  8483. Top = 4
  8484. Name = "Cbofontsize1"
  8485. rtfcontrols.W
  8486. Cbofontsize1
  8487. combobox
  8488. videoframe
  8489. getmcierror^
  8490. Pixels
  8491. Class
  8492. control
  8493. QMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  8494. Courier New, 1, 11, 9, 17, 12, 10, 5, 0
  8495. moverlists
  8496. Pixels
  8497. moverbox.bmp
  8498. moverbox.bmp
  8499. mover list boxes
  8500. Class
  8501.     container
  8502. moverlists
  8503. ENABLED
  8504. THISFORM
  8505. REFRESH
  8506. Click,
  8507. soundplayer
  8508. getmcierror^
  8509. FfU)-s
  8510. Pixels
  8511. PROCEDURE Click
  8512. THISFORM.LockScreen = .T.
  8513. FOR i = 1 to THIS.Parent.lstSelected.ListCount
  8514.     THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(i))
  8515. ENDFOR
  8516. THIS.Parent.lstSelected.Clear
  8517. THISFORM.LockScreen = .F.
  8518. ENDPROC
  8519. Top = 102
  8520. Left = 186
  8521. Height = 25
  8522. Width = 37
  8523. FontBold = .T.
  8524. FontName = "Courier New"
  8525. FontSize = 11
  8526. Caption = "<<"
  8527. TabIndex = 6
  8528. ToolTipText = "Alle Eintr
  8529. schen."
  8530. Name = "cmdRemoveAll"
  8531. moverlists.
  8532. cmdRemoveAll
  8533. commandbutton
  8534. commandbutton
  8535. moverlists.
  8536.     cmdRemove%
  8537. commandbutton
  8538. "Arial, 0, 10, 6, 16, 13, 14, 3, 0
  8539. NDPROC
  8540. *    ELSE
  8541. cbofontsize
  8542. cmdExecuteQBF
  8543. timer
  8544.     stopwatch
  8545. datachecker
  8546. combobox, 10, 6, 16, 13, 14, 3, 0
  8547. day, date, and time controly , cSecDisplay)
  8548. This.lblMin
  8549. Pixels
  8550. GFontBold = .F.
  8551. Height = 25
  8552. Style = 2
  8553. Width = 217
  8554. Name = "fontbox"
  8555. cbofontname
  8556. All text
  8557. STATUS 
  8558.  MODE
  8559. stopped
  8560. PARENT
  8561. MCIALIAS
  8562. DOMCI    
  8563. PLAYVIDEO
  8564. Timer,
  8565. AOBJECTREFS
  8566. RELEASE
  8567. OHOSTZ
  8568. lookup_combo                                                                                                                                                                                
  8569. videoframe
  8570. commandbuttonQ
  8571. moverlists.xR{
  8572. checker.bmp
  8573. checker.bmp
  8574. manages conflicts
  8575. Class
  8576. gPROCEDURE Init
  8577. DIMENSION x[1]
  8578. =afont(x)
  8579. FOR i = 1 TO ALEN(x)
  8580.     THIS.AddItem(x[i])
  8581. ENDFOR
  8582. ENDPROC
  8583. Image"
  8584. nPos = 
  8585. STATUS 
  8586.  MODE
  8587. stopped
  8588. PARENT
  8589. MCIALIAS
  8590. DOMCI    
  8591. PLAYSOUND
  8592. Timer,
  8593.     container
  8594. FTop = 96
  8595. Left = 120
  8596. Height = 23
  8597. Width = 23
  8598. Name = "tmrCheckMode"
  8599.     cmdAddAll
  8600. comboboxvcx
  8601. ADDITEM    
  8602. 1ombobox
  8603. Classnts
  8604.             WITH THISFORM.Controls[m.i].pages[m.
  8605. "Arial, 1, 10, 6, 16, 13, 15, 3, 0
  8606. clock
  8607. Pixels
  8608. !F:\VFP\SAMPLES\CONTROLS\clock.bmp
  8609. !F:\VFP\SAMPLES\CONTROLS\clock.bmp
  8610. THISFORM
  8611. RELEASE
  8612. Click,
  8613. ~PROCEDURE Click
  8614. *!* Clear the filter that was set
  8615. SET FILTER TO
  8616. GO TOP
  8617. THIS.enabled = .F.
  8618. THISFORM.Refresh
  8619. ENDPROC
  8620. PROCEDURE Timer
  8621. cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
  8622. IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
  8623.     THIS.PARENT.playVideo
  8624. ENDIF
  8625. ENDPROC
  8626. commandbutton
  8627. commandbutton
  8628. moverlists.
  8629. Class
  8630. RTop = 0
  8631. Left = 66
  8632. Height = 25
  8633. Width = 25
  8634. Interval = 1000
  8635. Name = "tmrSWatch"
  8636. PARENT    
  8637. INCREMENT
  8638. Timer,
  8639. Pixelsting"
  8640. 7displays the font sizes available for a particular font
  8641. Classbox= "Editing"
  8642. Height = 32
  8643. Left = 0
  8644. Top = 0
  8645. timer
  8646.     container
  8647. MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  8648. MS Sans Serif, 1, 8, 6, 13, 11, 12, 2, 0
  8649. MS Sans Serif, 2, 8, 5, 13, 11, 11, 2, 0
  8650. MS Sans Serif, 4, 8, 5, 13, 11, 11, 2, 0
  8651. tbrediting
  8652. Pixels
  8653. Class
  8654. toolbar
  8655. tbrediting
  8656. tbrediting.
  8657. ADDITEM
  8658. Init,
  8659. videoframe.
  8660. tmrCheckMode
  8661. timer
  8662. cmdAdd
  8663. commandbuttonH
  8664. 1ontbox
  8665. combobox
  8666. Source.FontUnderline
  8667. ENDCASE
  8668. ENDPROC
  8669. cbofontsize1
  8670. comboboxE Destroy
  8671. This.Visible = .F.
  8672. ENDPROC
  8673. PROCED
  8674. TIMEFORMAT
  8675. DblClick,
  8676. Hnappliesto 1 -- applies to current control
  8677. -- applies to all controls
  8678. Class
  8679. control^
  8680. soundplayer
  8681. DTop = 0
  8682. Left = 36
  8683. Height = 23
  8684. Width = 23
  8685. Name = "tmrCheckMode"
  8686. timer
  8687. control
  8688. lookup_combo                                
  8689.                                                                                                                         
  8690. custom
  8691. datachecker
  8692. /Height = 15
  8693. Width = 23
  8694. Name = "datachecker"
  8695. custom
  8696. Pixelsting.gh all the controls on the page
  8697.                 FOR m.k 
  8698. cbofontname
  8699. Left = 125
  8700. ToolTipText = "FontName"
  8701. Top =
  8702. "Arial, 0, 10, 6, 16, 13, 14, 3, 0
  8703.                         CASE cTask = 'IN
  8704. JArial, 0, 9, 5, 15, 12, 13, 3, 0
  8705. MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  8706. Textbox Editbox
  8707. print_report#
  8708. _SCREEN.Activ
  8709. Pixels
  8710. VISIBL
  8711. CProvides a form that allows users to choose the output of a report.
  8712. Class
  8713. Top = 71
  8714. Left = 186
  8715. Height = 25
  8716. Width = 37
  8717. FontBold = .T.
  8718. FontName = "Courier New"
  8719. FontSize = 11
  8720. Caption = "<"
  8721. TabIndex = 5
  8722. ToolTipText = "Markierte Eintr
  8723. schen."
  8724. Name = "cmdRemove"
  8725.     stopwatch CASE
  8726.     CASE lcType $ "CM"
  8727.         lcValue = CHR(34)
  8728. nhour
  8729. ield, lcValue
  8730. LOCAL lcType
  8731. lcType =
  8732. TPROCEDURE Click
  8733. THISFORM.LockScreen = .T.
  8734. nCnt = 1
  8735. DO WHILE nCnt <= THIS.Parent.lstSelected.ListCount
  8736.     IF THIS.Parent.lstSelected.Selected(nCnt)
  8737.         THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(nCnt))
  8738.         THIS.Parent.lstSelected.RemoveItem(nCnt)
  8739.     ELSE
  8740.         nCnt = nCnt + 1
  8741.     ENDIF
  8742. ENDDO
  8743. THISFORM.LockScreen = .F.
  8744. ENDPROC
  8745. FontName = "MS Sans Serif"
  8746. FontSize = 8
  8747. Height = 23
  8748. Width = 106
  8749. display_column = 
  8750. lookup_table = 
  8751. return_column = 
  8752. order_column = 
  8753. Name = "lookup_combo"
  8754. rint must either be sp
  8755. commandbutton
  8756. Pixels                                                                                                                                                                                                        
  8757. Class                                                                                                                                                                                                            
  8758. PROCEDURE Click
  8759. THISFORM.LockScreen = .T.
  8760. FOR i = 1 to THIS.Parent.lstSource.ListCount
  8761.     THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(i))
  8762. ENDFOR
  8763. THIS.Parent.lstSource.Clear
  8764. THISFORM.LockScreen = .F.
  8765. ENDPROC
  8766. Top = 33
  8767. Left = 186
  8768. Height = 25
  8769. Width = 37
  8770. FontBold = .T.
  8771. FontName = "Courier New"
  8772. FontSize = 11
  8773. Caption = ">>"
  8774. TabIndex = 4
  8775. ToolTipText = "Alle Eintr
  8776. ge hinzuf
  8777. gen."
  8778. Name = "cmdAddAll"
  8779. PARENT    
  8780. QBF_TABLE
  8781. ENABLED
  8782. CMDEXECUTEQBF
  8783. CMDCLEARFILTER
  8784. THISFORM
  8785. REFRESH
  8786. Click,
  8787. 1                                                                                                                                                                                                                            
  8788. PROCEDURE Click
  8789. THISFORM.LockScreen = .T.
  8790. * The ListCount value changes whenever the RemoveItem method is called
  8791. nCnt = 1
  8792. DO WHILE nCnt <= THIS.Parent.lstSource.ListCount
  8793.     IF THIS.Parent.lstSource.Selected(nCnt)
  8794.         THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(nCnt))
  8795.         THIS.Parent.lstSource.RemoveItem(nCnt)
  8796.     ELSE
  8797.         nCnt = nCnt + 1
  8798.     ENDIF
  8799. ENDDO
  8800. THISFORM.LockScreen = .F.
  8801. ENDPROC
  8802. Top = 2
  8803. Left = 186
  8804. Height = 25
  8805. Width = 37
  8806. FontBold = .T.
  8807. FontName = "Courier New"
  8808. FontSize = 11
  8809. Caption = ">"
  8810. TabIndex = 3
  8811. ToolTipText = "Markierte Eintr
  8812. ge hinzuf
  8813. gen."
  8814. Name = "cmdAdd"
  8815. commandbutton
  8816. moverlists.E
  8817. lstSelected
  8818. listbox
  8819. listbox
  8820. moverlists.ame specified or control source specified!")
  8821. forme
  8822. print_reports
  8823. ,OLEObject = C:\WINDOWS\SYSTEM\COMDLG32.OCX
  8824. GTop = 88
  8825. Left = 278
  8826. Height = 100
  8827. Width = 100
  8828. Name = "oleCommDlog"
  8829. print_report.
  8830. oleCommDlog
  8831. olecontrols
  8832. olecontrolw
  8833. print_report.
  8834. Width = 201
  8835. Height = 133
  8836. mcierror = 0
  8837. mcierrorstring = 
  8838. videofile = 
  8839. autoopen = .T.
  8840. mcialias = 
  8841. autoplay = .T.
  8842. autorepeat = .T.
  8843. controlsource = 
  8844. Name = "videoframe"
  8845. cmdClearFilter
  8846. soundplayer.HD9H@
  8847. commandbutton
  8848. tmrCheckMode
  8849.     lstSource THIS.videoFile
  8850.     IF EMPTY(cFileName) THEN
  8851. listbox = THIS.controlSource
  8852. IF EMPTY(cControlSource) T
  8853.     stopwatch.
  8854. AutoSize = .F.
  8855. Top = 71
  8856. Left = 4
  8857. Height = 23
  8858. Width = 72
  8859. FontBold = .F.
  8860. FontName = "MS Sans Serif"
  8861. FontSize = 8
  8862. Caption = "Filter \<l
  8863. schen"
  8864. Enabled = .F.
  8865. TabIndex = 25
  8866. Name = "cmdClearFilter"
  8867. Class
  8868. Pixels
  8869.     cmdSaveAs
  8870. commandbutton
  8871. clock
  8872. NTop = 3
  8873. Left = 8
  8874. Height = 12
  8875. Width = 14
  8876. Interval = 1000
  8877. Name = "Timer1"
  8878. clock.
  8879. *handlerecord compares the current value, old value, and original value of each field, displaying a messagebox if a change or conflict is detected.
  8880. *string returns type 'c' equivalent of passed value
  8881. *verifychanges Prompts a user to save all changes made to a table or record.
  8882. *verifyeachchange Prompts a user to confirm each change he or she made.
  8883. *checkconflicts Notifies a user if someone else has changed the data in the table after he or she began editing a record.
  8884. PixelsM.cmdExecute.Enabled = .T.
  8885. ENDPROC
  8886. PROCEDURE v
  8887.     watch.bmpSQL.Value = lcSQL
  8888. THISFORM.cmdClear.Enabled 
  8889.     watch.bmpSQL = "SELECT * FROM " + lcAlias + " " + lcWHER
  8890. .stop watch with start, stop, and reset methodsbase table
  8891. Class1 + " " + lcRelation1 + " ";
  8892.   + lcValue1 + " " + 
  8893. 7 the first part of the WHERE condition
  8894. lcWHERE = "WHER
  8895.     container + ;
  8896.         lcRelation2 + " " + lcValue2
  8897. ENDIF
  8898.     stopwatchd2.Value,lcValue2)    
  8899.     lcWHERE = lcOperand + " "
  8900. AutoSize = .T.
  8901. FontBold = .T.
  8902. FontName = "Arial"
  8903. FontSize = 13
  8904. BackStyle = 0
  8905. Caption = "00"
  8906. Height = 22
  8907. Left = 68
  8908. Top = 5
  8909. Width = 20
  8910. Name = "lblSeconds"
  8911.  = THISFORM.Validate
  8912.     stopwatch.put the proper delimiters around comparison va
  8913. lblSeconds
  8914. label
  8915.  COMMENT RESERVED            
  8916. label(
  8917. AutoSize = .T.
  8918. FontBold = .T.
  8919. FontName = "Arial"
  8920. FontSize = 13
  8921. BackStyle = 0
  8922. Caption = "00"
  8923. Height = 22
  8924. Left = 37
  8925. Top = 5
  8926. Width = 20
  8927. Name = "lblMinutes"
  8928.  _RAA0N09Z2 54796852
  8929.     stopwatch. _RAA0MM0SN 547968029
  8930. lblMinutes
  8931. listboxideo
  8932. *!* Get needed properties into variables
  8933. RTop = 0
  8934. Left = 66
  8935. Height = 25
  8936. Width = 25
  8937. Interval = 1000
  8938. Name = "tmrSWatch"
  8939.     tmrSWatch
  8940. label
  8941.  WINDOWS _RAA0MM0S8 547968029
  8942. label
  8943. AutoSize = .T.
  8944. FontBold = .T.
  8945. FontName = "Arial"
  8946. FontSize = 13
  8947. BackStyle = 0
  8948. Caption = "00"
  8949. Height = 22
  8950. Left = 6
  8951. Top = 5
  8952. Width = 20
  8953. Name = "lblhours"
  8954.  WINDOWS _R9818X
  8955.     stopwatch.
  8956.  WINDOWS _R9818X1QY 547968029-
  8957. lblhours
  8958. label
  8959.  WINDOWS _QU00R9JY0 547
  8960. labelVU 547968029
  8961. FontBold = .T.
  8962. FontName = "Arial"
  8963. FontSize = 13
  8964. Alignment = 0
  8965. BackStyle = 0
  8966. Caption = ":"
  8967. Height = 19
  8968. Left = 58
  8969. Top = 4
  8970. Width = 11
  8971. Name = "lblSeparator2"
  8972.     stopwatch.
  8973.  WINDOWS _QU00R9JSB 547968526
  8974. lblSeparator2
  8975.     container
  8976.     container
  8977. PROCEDURE Timer
  8978. THIS.Parent.nSec = THIS.Parent.nSec + 1
  8979. IF THIS.Parent.nSec = 60
  8980.     THIS.Parent.nSec = 0
  8981.     THIS.Parent.nMin = THIS.Parent.nMin + 1
  8982. ENDIF
  8983. IF THIS.Parent.nMin = 60
  8984.     THIS.Parent.nMin = 0
  8985.     THIS.Parent.nHour = THIS.Parent.nHour + 1
  8986. ENDIF
  8987. THIS.Parent.UpdateDisplay
  8988. THIS.Parent.ElapsedSeconds = (THIS.Parent.nHour * 3600) + ;
  8989.                                (THIS.Parent.nMin * 60) + ;
  8990.                                 (This.Parent.nSec)
  8991. ENDPROC
  8992.     tmrSWatch
  8993. samples.vcx
  8994. cbofontsize
  8995. DHeight = 25
  8996. Left = 4
  8997. Top = 4
  8998. Width = 157
  8999. Name = "Cbofontname1"
  9000. rtfcontrols.
  9001. Cbofontname1M
  9002. combobox
  9003. PROCEDURE Timer
  9004. #DEFINE LONGDATE_LOC CDOW(DATE())+" "+CMONTH(DATE())+" "+ALLTRIM(STR(DAY(DATE())))+", "+ALLTRIM(STR(YEAR(DATE())))
  9005. IF This.Parent.TimeFormat = 0
  9006.     This.Parent.txtTime.Value = IIF(VAL(SUBSTR(TIME(),1,2))>12, ;
  9007.         ALLTRIM(STR((VAL(SUBSTR(TIME(),1,2))-12)))+SUBSTR(TIME(),3,6),TIME())
  9008.     This.Parent.txtTime.Value = TIME()
  9009. ENDIF
  9010. THIS.Parent.txtDate.Value = LONGDATE_LOC
  9011. ENDPROC
  9012. Timer1
  9013. timer
  9014. timer
  9015. .FontBold = .F.
  9016. FontName = "MS Sans Serif"
  9017. FontSize = 8
  9018. ColumnCount = 0
  9019. ColumnWidths = ""
  9020. RowSourceType = 0
  9021. RowSource = ""
  9022. ControlSource = ""
  9023. DragIcon = grid\
  9024. DragMode = 0
  9025. Height = 132
  9026. Left = 0
  9027. MultiSelect = .T.
  9028. NumberOfElements = 0
  9029. TabIndex = 1
  9030. Top = 0
  9031. Width = 169
  9032. Name = "lstSource"
  9033. ATUS " + c
  9034. timer
  9035. TAlignment = 2
  9036. BackStyle = 0
  9037. BorderStyle = 0
  9038. Value = (IIF(THIS.PARENT.TimeFormat = 0, IIF(VAL(SUBSTR(time(),1,2))>12,     ALLT(STR((VAL(SUBSTR(time(),1,2))-12)))+SUBSTR(time(),3,6),         time()),time()))
  9039. Enabled = .F.
  9040. Height = 21
  9041. Left = 184
  9042. Top = 5
  9043. Width = 57
  9044. DisabledForeColor = 0,0,0
  9045. DisabledBackColor = 255,255,255
  9046. Name = "txtTime"
  9047. clock.
  9048. txtTime
  9049. textbox
  9050. textbox
  9051. clock.
  9052.     stopwatch.
  9053. 5Alignment = 2
  9054. BackColor = 255,255,0
  9055. BackStyle = 0
  9056. BorderStyle = 0
  9057. Value = (CDOW(date())+" "+CMONTH(date())+" "+  ALLT(STR(DAY(date())))+", "+ALLT(STR(YEAR(date()))))
  9058. Enabled = .F.
  9059. Height = 21
  9060. Left = 3
  9061. Top = 5
  9062. Width = 179
  9063. DisabledForeColor = 0,0,0
  9064. DisabledBackColor = 255,255,255
  9065. Name = "txtDate"
  9066. txtDate
  9067. textbox
  9068. textbox
  9069. timeformat
  9070. label
  9071.  WINDOWS _R
  9072. labelENT Screen              
  9073.     stopwatch.
  9074. lblSeparator1
  9075. KPROCEDURE DblClick
  9076. THIS.TimeFormat = ABS(THIS.TimeFormat - 1)
  9077. ENDPROC
  9078. ZWidth = 251
  9079. Height = 28
  9080. BackStyle = 0
  9081. BorderWidth = 0
  9082. timeformat = 0
  9083. Name = "clock"
  9084.     container
  9085. PROCEDURE Click
  9086. * Display file dialog
  9087. thisform.oleCommDlog.ShowSave()
  9088. IF thisform.oleCommDlog.FileName <> "*.*"
  9089.     THISFORM.txtFileName.Value = thisform.oleCommDlog.FileName
  9090.     THISFORM.txtFileName.SetFocus
  9091. ENDIF
  9092. ENDPROC
  9093. Top = 83
  9094. Left = 228
  9095. Height = 19
  9096. Width = 19
  9097. FontBold = .F.
  9098. FontName = "MS Sans Serif"
  9099. FontSize = 8
  9100. Caption = "..."
  9101. Enabled = .F.
  9102. Name = "cmdSaveAs"
  9103. commandbutton
  9104. ,PROCEDURE Click
  9105. THISFORM.Release
  9106. ENDPROC
  9107. SHOWSA
  9108. print_report.
  9109. Width = 409
  9110. Height = 132
  9111. BackStyle = 0
  9112. BorderWidth = 0
  9113. mousex = 0
  9114. mousey = 0
  9115. candropicon = DRAGMOVE.CUR
  9116. nodropicon = NODROP01.CUR
  9117. dragthreshold = 8
  9118. Name = "moverlists"
  9119.     container
  9120.     cmdCancelFORM.txtFileName.SetFocus
  9121. ENDIF
  9122. ENDPROC
  9123.     container
  9124.     container
  9125.     stopwatch
  9126. `Width = 94
  9127. Height = 25
  9128. nsec = 0
  9129. nmin = 0
  9130. nhour = 0
  9131. elapsedseconds = 0
  9132. Name = "stopwatch"
  9133. PROCEDURE start
  9134. This.tmrSWatch.enabled = .t.
  9135. ENDPROC
  9136. PROCEDURE stop
  9137. This.tmrSWatch.enabled = .f.
  9138. ENDPROC
  9139. PROCEDURE Reset
  9140. This.nSec = 0
  9141. This.nMin = 0
  9142. This.nHour = 0
  9143. This.UpdateDisplay
  9144. ENDPROC
  9145. PROCEDURE updatedisplay
  9146. cSecDisplay = ALLTRIM(STR(This.nSec))
  9147. cMinDisplay = ALLTRIM(STR(This.nMin))
  9148. cHourDisplay = ALLTRIM(STR(This.nHour))
  9149. This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
  9150. This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
  9151. This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
  9152. ENDPROC
  9153. PROCEDURE Init
  9154. nMin = 0
  9155. nSec = 0
  9156. nHour = 0
  9157. ENDPROC
  9158. timer
  9159. nhour
  9160. elapsedseconds The time displayed in the stopwatch in elapsed seconds.
  9161. *start 
  9162. *stop 
  9163. *Reset ,Property Description will appear here.
  9164. *updatedisplay 
  9165. `Width = 94
  9166. Height = 25
  9167. nsec = 0
  9168. nmin = 0
  9169. nhour = 0
  9170. elapsedseconds = 0
  9171. Name = "stopwatch"
  9172. PROCEDURE selectall
  9173. LPARAMETERS oList
  9174. LOCAL lnCnt
  9175. FOR lnCnt = 1 to oList.ListCount
  9176.     oList.Selected(lnCnt) = .T.
  9177. ENDFOR
  9178. ENDPROC
  9179. PROCEDURE Init
  9180. This.lstSource.DragIcon = This.CanDropIcon
  9181. This.lstSelected.DragIcon = This.CanDropIcon
  9182. ENDPROC
  9183.  is returned.
  9184. cRetString = space(80)
  9185. nRetValue = mciSendStr
  9186. commandbuttonORM.txtFileName.Value = thisform.oleCommDlo
  9187. nhour
  9188. elapsedseconds The time displayed in the stopwatch in elapsed seconds.
  9189. *start 
  9190. *stop 
  9191. *Reset ,Property Description will appear here.
  9192. *updatedisplay 
  9193. nsmallestfont for scalable fonts, smallest allowable fontsize
  9194. nlargestfont for scalable fonts, specifies the largest allowable fontsize
  9195. *filllist 
  9196. FontBold = .F.
  9197. Height = 25
  9198. Style = 2
  9199. ToolTipText = "Schriftgrad"
  9200. Width = 44
  9201. nsmallestfont = 6
  9202. nlargestfont = 24
  9203. Name = "cbofontsize"
  9204. .ControlCount
  9205.             IF oForm.Controls(i).Base
  9206. commandbutton.ShowSave()
  9207. IF thisform.oleCommDlog.File
  9208. PROCEDURE Timer
  9209. THIS.Parent.nSec = THIS.Parent.nSec + 1
  9210. IF THIS.Parent.nSec = 60
  9211.     THIS.Parent.nSec = 0
  9212.     THIS.Parent.nMin = THIS.Parent.nMin + 1
  9213. ENDIF
  9214. IF THIS.Parent.nMin = 60
  9215.     THIS.Parent.nMin = 0
  9216.     THIS.Parent.nHour = THIS.Parent.nHour + 1
  9217. ENDIF
  9218. THIS.Parent.UpdateDisplay
  9219. THIS.Parent.ElapsedSeconds = (THIS.Parent.nHour * 3600) + ;
  9220.                                (THIS.Parent.nMin * 60) + ;
  9221.                                 (This.Parent.nSec)
  9222. ENDPROC
  9223. PROCEDURE start
  9224. This.tmrSWatch.enabled = .t.
  9225. ENDPROC
  9226. PROCEDURE stop
  9227. This.tmrSWatch.enabled = .f.
  9228. ENDPROC
  9229. PROCEDURE Reset
  9230. This.nSec = 0
  9231. This.nMin = 0
  9232. This.nHour = 0
  9233. This.UpdateDisplay
  9234. ENDPROC
  9235. PROCEDURE updatedisplay
  9236. cSecDisplay = ALLTRIM(STR(This.nSec))
  9237. cMinDisplay = ALLTRIM(STR(This.nMin))
  9238. cHourDisplay = ALLTRIM(STR(This.nHour))
  9239. This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
  9240. This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
  9241. This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
  9242. ENDPROC
  9243. PROCEDURE Init
  9244. nMin = 0
  9245. nSec = 0
  9246. nHour = 0
  9247. ENDPROC
  9248. PROCEDURE Click
  9249. *!* In order to clear out all the controls with a controlSource,
  9250. *!* we need to start a transaction and append a record (then when
  9251. *!* we are done we'll rollback the transaction so the new record
  9252. *!* doesn't get added to the table
  9253. IF !EMPTY(THIS.Parent.QBF_table) THEN
  9254.     SELECT (THIS.Parent.QBF_table)
  9255. ENDIF
  9256. BEGIN TRANSACTION
  9257. APPEND BLANK
  9258. THIS.Enabled = .F.
  9259. THIS.Parent.cmdExecuteQBF.Enabled = .T.
  9260. THIS.Parent.cmdClearFilter.enabled = .F.
  9261. THISFORM.Refresh
  9262. ENDPROC
  9263. commandbutton
  9264. timer
  9265. samples.vcx
  9266. cbofontname
  9267. *.txt
  9268. Text (*.txt)|*.t\
  9269. 28C4C820-401A-101B-A3C9-08002B2F49FB
  9270. FileName
  9271. *.txt
  9272. Filter
  9273. Text xt
  9274. (*.txt)|*.txt
  9275. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  9276. 1                                                                                                                                                                                                                            
  9277. combobox                                                                                                                                                                                                
  9278. PROCEDURE filllist
  9279. LPARAMETERS cFontName
  9280. THIS.Clear
  9281. DIMENSION aSizes[1]
  9282. =AFONT(aSizes, cFontname)
  9283. IF aSizes[1] = -1  && The font is scalable
  9284.     lScalable = .T.
  9285.     nLen = THIS.nLargestFont
  9286.     nStart = THIS.nSmallestFont
  9287.     nLen = ALEN(aSizes)
  9288.     nStart = 1
  9289.     lScalable = .F.
  9290. ENDIF
  9291. IF lScalable
  9292.     FOR i = nStart TO nLen
  9293.         THIS.AddItem(ALLTRIM(STR(i)))
  9294.     ENDFOR
  9295.     FOR i = nStart TO nLen
  9296.         THIS.AddItem(ALLTRIM(STR(aSizes[i])))
  9297.     ENDFOR
  9298. ENDIF
  9299. ENDPROC
  9300.         THIS.chkBold.Value = oS
  9301. Top = 42
  9302. Left = 261
  9303. Height = 23
  9304. Width = 72
  9305. FontBold = .F.
  9306. FontName = "MS Sans Serif"
  9307. FontSize = 8
  9308. Cancel = .T.
  9309. Caption = "Abbrechen"
  9310. Name = "cmdCancel"
  9311. Top = 14
  9312. Left = 261
  9313. Height = 23
  9314. Width = 72
  9315. FontBold = .F.
  9316. FontName = "MS Sans Serif"
  9317. FontSize = 8
  9318. Caption = "OK"
  9319. Default = .T.
  9320. Name = "cmdOK"
  9321. PGREPORTOUTPUT
  9322. VALUE
  9323. RELEASE
  9324. FontBold = .F.
  9325. FontName = "MS Sans Serif"
  9326. FontSize = 8
  9327. Value = 0
  9328. Height = 22
  9329. Left = 265
  9330. Style = 2
  9331. ToolTipText = "Vordergrund-/Hintergrundfarbe"
  9332. Top = 5
  9333. Width = 69
  9334. Name = "cboColor"
  9335. cboColor
  9336. combobox
  9337. combobox
  9338. BTop = 5
  9339. Left = 265
  9340. Height = 22
  9341. Width = 0
  9342. Name = "Separator2"
  9343. tbrediting.
  9344. Separator2
  9345.     separator
  9346.     separator
  9347. _SCREEN.ActiveFormb
  9348. FontUnderline
  9349. TEXTBOX
  9350. FontUnderline
  9351. EDITBOX
  9352. FontUnderline
  9353. OFORM
  9354. ACTIVEFORM
  9355. PARENT
  9356. NAPPLIESTO
  9357. ACTIVECONTROL
  9358. FONTUNDERLINE
  9359. VALUE
  9360. SETALL
  9361. InteractiveChange,
  9362. tbrediting.
  9363. THISFORM
  9364. OLECOMMDLOG
  9365. SHOWSAVE
  9366. FILENAME
  9367. TXTFILENAME
  9368. VALUE
  9369. SETFOCUS
  9370. Click,
  9371. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  9372.                                                             
  9373. print_report.
  9374. cmdOK
  9375. commandbuttone specified in the cReport property of this
  9376. commandbutton
  9377. AutoSize = .T.
  9378. FontBold = .F.
  9379. FontName = "MS Sans Serif"
  9380. FontSize = 8
  9381. BackStyle = 0
  9382. Caption = "Dateiname:"
  9383. Height = 15
  9384. Left = 37
  9385. Top = 85
  9386. Width = 52
  9387. Name = "Label2"
  9388. AutoSize = .T.
  9389. FontBold = .T.
  9390. FontName = "Arial"
  9391. FontSize = 13
  9392. BackStyle = 0
  9393. Caption = ":"
  9394. Height = 22
  9395. Left = 26
  9396. Top = 4
  9397. Width = 8
  9398. Name = "lblSeparator1"
  9399. PROCEDURE InteractiveChange
  9400. IF TYPE("_SCREEN.ActiveForm") = 'O'
  9401.     oForm = _SCREEN.ActiveForm
  9402.     RETURN
  9403. ENDIF
  9404. DO CASE
  9405.     CASE THIS.Parent.nAppliesTo = 1    && Current Control
  9406.         oForm.ActiveControl.FontUnderline = THIS.Value
  9407.     CASE THIS.Parent.nAppliesTo = 2    && All textboxes and editboxes
  9408.         oForm.SetAll('FontUnderline', THIS.Value, 'TEXTBOX')        
  9409.         oForm.SetAll('FontUnderline', THIS.Value, 'EDITBOX')        
  9410.     CASE THIS.Parent.nAppliesTo = 3    && All Controls
  9411.         oForm.SetAll('FontUnderline', THIS.Value)
  9412. ENDCASE
  9413. ENDPROC
  9414. Top = 5
  9415. Left = 234
  9416. Height = 22
  9417. Width = 26
  9418. FontName = "MS Sans Serif"
  9419. FontSize = 8
  9420. FontUnderline = .T.
  9421. Caption = "U"
  9422. Value = .F.
  9423. Style = 1
  9424. ToolTipText = "Unterstrichen"
  9425. Name = "chkUnderline"
  9426. chkUnderline
  9427. checkbox
  9428. checkbox
  9429. Top = 5
  9430. Left = 209
  9431. Height = 22
  9432. Width = 26
  9433. FontItalic = .T.
  9434. FontName = "MS Sans Serif"
  9435. FontSize = 8
  9436. Caption = "K"
  9437. Value = .F.
  9438. Style = 1
  9439. ToolTipText = "Kursiv"
  9440. Name = "chkItalic"
  9441. distinct_values_combo                                                                                                                                            
  9442. \PROCEDURE Click
  9443. #DEFINE NO_REPORT_LOC "Der zu druckende Bericht mu
  9444.  in der cReport-Eigenschaft des Formulars angegeben sein oder als Parameter 
  9445. bergeben werden."
  9446. #DEFINE NO_FILENAME_LOC "Sie m
  9447. ssen einen Dateinamen eingeben."
  9448. DO CASE
  9449.     CASE EMPTY(THISFORM.cReport) 
  9450.         =MESSAGEBOX(NO_REPORT_LOC)
  9451.     CASE THISFORM.opgReportOutput.value = 1
  9452.         THISFORM.Release
  9453.         REPORT FORM (THISFORM.cReport) PREVIEW NOCONSOLE
  9454.     CASE THISFORM.opgReportOutput.value = 2
  9455.         THISFORM.Release
  9456.         REPORT FORM (THISFORM.cReport) TO PRINTER NOCONSOLE
  9457.     CASE THISFORM.opgReportOutput.value = 3
  9458.         IF EMPTY(THISFORM.txtFileName.value) THEN
  9459.             =MESSAGEBOX(NO_FILENAME_LOC)
  9460.             THISFORM.txtFileName.SetFocus
  9461.         ELSE
  9462.             THISFORM.Release
  9463.             REPORT FORM (THISFORM.cReport) ;
  9464.                 TO FILE (THISFORM.txtFileName.value) ;
  9465.                 ASCII NOCONSOLE
  9466.         ENDIF
  9467. ENDCASE
  9468. ENDPROC
  9469. print_report.elease
  9470.             REPORT FORM (THISFORM.cReport) ;
  9471. Label2_FILENAME_LOC)
  9472.             THISFORM.txtFileName.SetFocus
  9473. label3
  9474.         IF EMPTY(THISFORM.txtFileName.value) THEN
  9475. labelO PRINTER NOCONSOLE
  9476.     CASE THISFORM.opgReportOu
  9477. timer
  9478. control&
  9479. 0Width = 311
  9480. Height = 32
  9481. Name = "rtfcontrols"
  9482. FontBold = .F.
  9483. FontName = "MS Sans Serif"
  9484. FontSize = 8
  9485. Enabled = .F.
  9486. Height = 23
  9487. Left = 95
  9488. Top = 81
  9489. Width = 128
  9490. Name = "txtFileName"
  9491.         THISFORM.Release
  9492.         REPORT FORM (THISFO
  9493. print_report.        =MESSAGEBOX(NO_REPORT_LOC)
  9494.     CASE THI
  9495. txtFileNamet enter a file name."
  9496. DO CASE
  9497.     CASE EMPTY
  9498. tbrediting.
  9499.     chkItalic
  9500. label
  9501. RESERVED7
  9502. label
  9503. RESERVED5
  9504. 1PROCEDURE Timer
  9505. THIS.Parent.Increment
  9506. ENDPROC
  9507. RTop = 2
  9508. Left = 52
  9509. Height = 25
  9510. Width = 25
  9511. Interval = 1000
  9512. Name = "tmrSWatch"
  9513. OBJNAME
  9514. _SCREEN.ActiveFormb
  9515. oControl.ForeColorb
  9516. oControl.ItemForeColorb
  9517. ForeColor
  9518. TEXTBOX
  9519. ForeColor
  9520. EDITBOX
  9521. ForeColor
  9522. oForm.ActiveControl.BackColorb
  9523. oForm.ActiveControl.ItemBackColorb
  9524. BackColor
  9525. TEXTBOX
  9526. BackColor
  9527. EDITBOX
  9528. BackColor
  9529. OFORM
  9530. ACTIVEFORM
  9531. OCONTROL
  9532. ACTIVECONTROL
  9533. VALUE
  9534. NFORECOLOR
  9535. THISFORM
  9536. NAPPLIESTO    
  9537. FORECOLOR
  9538. ITEMFORECOLOR
  9539. SETALL
  9540. NBACKCOLOR    
  9541. BACKCOLOR
  9542. ITEMBACKCOLOR
  9543. Farben
  9544. Vordergrundfarbe festlegen...
  9545. Hintergrundfarbe festlegen...
  9546. ADDITEM    
  9547. LISTINDEX
  9548. InteractiveChange,
  9549. Init^
  9550. _SCREEN.ActiveFormb
  9551. FontItalic
  9552. TEXTBOX
  9553. FontItalic
  9554. EDITBOX
  9555. FontItalic
  9556. OFORM
  9557. ACTIVEFORM
  9558. PARENT
  9559. NAPPLIESTO
  9560. ACTIVECONTROL
  9561. FONTITALIC
  9562. VALUE
  9563. SETALL
  9564. InteractiveChange,
  9565. _SCREEN.ActiveFormb
  9566. FontBold
  9567. TEXTBOX
  9568. FontBold
  9569. EDITBOX
  9570. FontBold
  9571. OFORM
  9572. ACTIVEFORM
  9573. PARENT
  9574. NAPPLIESTO
  9575. ACTIVECONTROL
  9576. FONTBOLD
  9577. VALUE
  9578. SETALL
  9579. InteractiveChange,
  9580. _SCREEN.ActiveFormb
  9581. FontSizeC
  9582. TEXTBOX
  9583. FontSizeC
  9584. EDITBOX
  9585. FontSizeC
  9586. OFORM
  9587. ACTIVEFORM
  9588. PARENT
  9589. NAPPLIESTO
  9590. ACTIVECONTROL
  9591. FONTSIZE
  9592. VALUE
  9593. SETALL
  9594. Das Steuerelement unterst
  9595. tzt den ausgew
  9596. hlten Schriftgrad nicht.
  9597. Application.ActiveForm.ActiveControlb
  9598. Fehlernummer: CC
  9599. Fehlermeldung: 
  9600. Prozedur: 
  9601. NERROR
  9602. CMETHOD
  9603. NLINE
  9604. PARENT
  9605. REFRESH
  9606. APPLICATION
  9607. ACTIVEFORM
  9608. ACTIVECONTROL
  9609. LCMSG
  9610. LNANSWER
  9611. InteractiveChange,
  9612. Error
  9613. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  9614. THISFOR
  9615. Class                                                                                                                                                                                                            
  9616. textboxhe cReport property of this form."
  9617. #DEFINE NO_FI
  9618. textboxRE Click
  9619. #DEFINE NO_REPORT_LOC "A report must be
  9620. AutoSize = .T.
  9621. FontBold = .F.
  9622. FontName = "MS Sans Serif"
  9623. FontSize = 8
  9624. BackStyle = 1
  9625. Caption = " Berichtausgabe "
  9626. Height = 15
  9627. Left = 20
  9628. Top = 7
  9629. Width = 75
  9630. Name = "lblReportOutput"
  9631. lt = .T.
  9632. Name = "cmdOK"
  9633. print_report.
  9634. lblReportOutput
  9635. labelndbutton
  9636. label37
  9637. Top = 85
  9638. Width = 52
  9639. Name = "Label2"
  9640. checkbox
  9641.     stopwatch.
  9642. TIMESTAMP
  9643.     tmrSWatch
  9644. PLATFORM
  9645. timer
  9646. timer
  9647. nhour
  9648. elapsedseconds The time displayed in the stopwatch in elapsed seconds.
  9649. *start 
  9650. *stop 
  9651. *reset ,Property Description will appear here.
  9652. *updatedisplay 
  9653. *increment increment the stopwatch display
  9654.     containerF
  9655. thHtY
  9656. "Arial, 1, 10, 6, 16, 13, 14, 3, 0
  9657. frmnotitle
  9658. Pixels
  9659. Class
  9660. frmnotitle
  9661. Top = 0
  9662. Left = 0
  9663. Height = 150
  9664. Width = 300
  9665. DoCreate = .T.
  9666. BorderStyle = 1
  9667. Caption = ""
  9668. Closable = .F.
  9669. ControlBox = .F.
  9670. MaxButton = .F.
  9671. MinButton = .F.
  9672. Movable = .F.
  9673. AlwaysOnTop = .T.
  9674. ZoomBox = .F.
  9675. Name = "frmnotitle"
  9676.     resizable
  9677. minitialresize
  9678. initialformheight
  9679. initialformwidth
  9680. addtoarray
  9681. setsize
  9682. loopthroughcontrols
  9683. acontrolstats
  9684. Pixels
  9685. Class
  9686. custom
  9687.     resizable
  9688. $initialresize Is this the first time the controls are being adjusted?
  9689. initialformheight
  9690. initialformwidth
  9691. *adjustcontrols call from resize event of a form to adjust the placement and size of contained objects.
  9692. *addtoarray 
  9693. *setsize 
  9694. *loopthroughcontrols 
  9695. *reset 
  9696. ^acontrolstats[1,5] 
  9697. oHeight = 19
  9698. Width = 27
  9699. initialresize = .T.
  9700. initialformheight = 0
  9701. initialformwidth = 0
  9702. Name = "resizable"
  9703. custom
  9704. THISFORM
  9705. TXTFILENAME
  9706. ENABLED    
  9707. CMDSAVEAS%
  9708. THISFORM
  9709. TXTFILENAME
  9710. ENABLED    
  9711. CMDSAVEAS%
  9712. THISFORM
  9713. TXTFILENAME
  9714. ENABLED    
  9715. CMDSAVEAS
  9716. optPreview.Click,
  9717. optPrinter.Click
  9718. optFile.Click
  9719. commandbutton
  9720. PROCEDURE InteractiveChange
  9721. IF TYPE("_SCREEN.ActiveForm") = 'O'
  9722.     oForm = _SCREEN.ActiveForm
  9723.     RETURN
  9724. ENDIF
  9725. DO CASE
  9726.     CASE THIS.Parent.nAppliesTo = 1    && Current Control
  9727.         oForm.ActiveControl.FontItalic = THIS.Value
  9728.     CASE THIS.Parent.nAppliesTo = 2    && All textboxes and editboxes
  9729.         oForm.SetAll('FontItalic', THIS.Value, 'TEXTBOX')        
  9730.         oForm.SetAll('FontItalic', THIS.Value, 'EDITBOX')        
  9731.     CASE THIS.Parent.nAppliesTo = 3    && All Controls
  9732.         oForm.SetAll('FontItalic', THIS.Value)
  9733. ENDCASE
  9734. ENDPROC
  9735. dFontName = "MS Sans Serif"
  9736. FontSize = 8
  9737. Height = 23
  9738. Width = 106
  9739. Name = "distinct_values_combo"
  9740. File Name:"
  9741. Height 
  9742. PROCEDURE Timer
  9743. cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
  9744. IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
  9745.     THIS.PARENT.playSound
  9746. ENDIF
  9747. ENDPROC
  9748. checkbox
  9749. tbrediting.
  9750. UFontBold = .F.
  9751. FontName = "MS Sans Serif"
  9752. FontSize = 8
  9753. ColumnCount = 0
  9754. ColumnWidths = ""
  9755. RowSourceType = 0
  9756. RowSource = ""
  9757. ControlSource = ""
  9758. DragIcon = grid\
  9759. DragMode = 0
  9760. FirstElement = 1
  9761. Height = 132
  9762. Left = 240
  9763. MoverBars = .T.
  9764. MultiSelect = .T.
  9765. NumberOfElements = 0
  9766. TabIndex = 2
  9767. Top = 0
  9768. Width = 169
  9769. Name = "lstSelected"
  9770. rtfcontrols.
  9771.     container
  9772. |Top = 4
  9773. Left = 283
  9774. Height = 23
  9775. Width = 25
  9776. Caption = "A"
  9777. ToolTipText = "Farbe"
  9778. ForeColor = 255,0,0
  9779. Name = "cmdColor"
  9780. rtfcontrols
  9781. _SCREEN.ActiveFormb
  9782. _SCREEN.ActiveForm.ActiveControlb
  9783. FontName
  9784. TEXTBOX
  9785. FontName
  9786. EDITBOX
  9787. FontName
  9788. OFORM
  9789. OCONTROL
  9790. ACTIVEFORM
  9791. ACTIVECONTROL
  9792. PARENT
  9793. NAPPLIESTO
  9794. FONTNAME
  9795. VALUE
  9796. SETALL
  9797. CBOSIZES
  9798. FILLLIST
  9799. REFRESH
  9800. InteractiveChange,
  9801. _SCREEN.ActiveFormb
  9802. Textbox Editbox
  9803. oSourceb
  9804. OSOURCE
  9805. NAPPLIESTO
  9806. OFORM
  9807. ACTIVEFORM
  9808. CONTROLCOUNT
  9809. CONTROLS    
  9810. BASECLASS
  9811. CBOFONTS
  9812. VALUE
  9813. FONTNAME
  9814. CBOSIZES
  9815. FILLLIST
  9816. FONTSIZE
  9817. CHKBOLD
  9818. FONTBOLD    
  9819. CHKITALIC
  9820. FONTITALIC
  9821. CHKUNDERLINE
  9822. FONTUNDERLINE
  9823. VISIBLE
  9824. Refresh,
  9825. Destroy.
  9826. Height = 136
  9827. Width = 342
  9828. Desktop = .T.
  9829. DoCreate = .T.
  9830. AutoCenter = .T.
  9831. BorderStyle = 2
  9832. Caption = "Bericht drucken"
  9833. MaxButton = .F.
  9834. MinButton = .F.
  9835. WindowType = 1
  9836. creport = 
  9837. Name = "print_report"
  9838. Mismatched pushjmp/popjmp call.
  9839. Curso
  9840. formlsd in, the variables are automatically
  9841. *!* set to 
  9842. 7creport Specifies the report to print from this form.
  9843. PROCEDURE InteractiveChange
  9844. IF TYPE("_SCREEN.ActiveForm") = 'O'
  9845.     oForm = _SCREEN.ActiveForm
  9846.     RETURN
  9847. ENDIF
  9848. DO CASE
  9849.     CASE THIS.Parent.nAppliesTo = 1    && Current Control
  9850.         oForm.ActiveControl.FontBold = THIS.Value
  9851.     CASE THIS.Parent.nAppliesTo = 2    && All textboxes and editboxes
  9852.         oForm.SetAll('FontBold', THIS.Value, 'TEXTBOX')        
  9853.         oForm.SetAll('FontBold', THIS.Value, 'EDITBOX')        
  9854.     CASE THIS.Parent.nAppliesTo = 3    && All Controls
  9855.         oForm.SetAll('FontBold', THIS.Value)
  9856. ENDCASE
  9857. ENDPROC
  9858. chkBold
  9859. checkbox
  9860. comboboxILENAME_LOC)
  9861.             THISFORM.txtFileName.SetFocus
  9862. >PROCEDURE optPreview.Click
  9863. THISFORM.txtFileName.enabled = .F.
  9864. THISFORM.cmdSaveAs.enabled = .F.
  9865. ENDPROC
  9866. PROCEDURE optPrinter.Click
  9867. THISFORM.txtFileName.enabled = .F.
  9868. THISFORM.cmdSaveAs.enabled = .F.
  9869. ENDPROC
  9870. PROCEDURE optFile.Click
  9871. THISFORM.txtFileName.enabled = .T.
  9872. THISFORM.cmdSaveAs.enabled = .T.
  9873. ENDPROC
  9874. erver.
  9875. Error saving the OLE object.
  9876. Error creating the OLE
  9877. mcierror Specifies the result of the last MCI command executed.
  9878. mcierrorstring Stores the error string from the last MCI command executed.
  9879. videofile Specifies the video file associated with the Video Frame.
  9880. autoopen Specifies whether the video file specified should be automatically opened when the class is created.
  9881. mcialias Specifies the alias for the video file when calling MCI commands.  If empty, the name of the file is used.
  9882. autoplay Specifies whether the video file should automatically play after opening.
  9883. autorepeat If .T., video will continuously play
  9884. controlsource Specifies the source of data to which an object is bound.
  9885. *domci Executes a MCI command.
  9886. *getmcierror Stores the last MCI error into properties of the class.
  9887. *openvideo Opens the video file and shows it.
  9888. *playvideo Plays the currently loaded video.
  9889. *pausevideo Pauses a currently playing video.
  9890. *showmcierror Displays the result of the last MCI command in a messagebox.
  9891. *closevideo Closes the video file and releases all resources.
  9892. *setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
  9893. PROCEDURE parsecondition
  9894. LPARAMETERS cCondition, cControlSource
  9895. LOCAL lcRetCondition, lcFieldName
  9896. IF TYPE('cCondition') = 'C'
  9897.     cCondition = ALLTRIM(cCondition)
  9898. ENDIF
  9899. lcFieldName = SUBSTRC(cControlSource,(RATC(".",cControlSource)+1))
  9900. *!* NOTE: If you add a checkbox, radio button, or command group to
  9901. *!* the form, this routine will need to be changed to handle that
  9902. *!* specific datatype.
  9903. IF !EMPTY(cCondition) THEN
  9904.     *!* If the type is Character or Memo, check to see if the 
  9905.     *!* user has entered a complex condition (if so, take that 
  9906.     *!* condition literally without any manipulation
  9907.     IF TYPE('cCondition')$ "CM" 
  9908.         IF ("<"         $ cCondition OR ;
  9909.             "=="     $ cCondition OR ;
  9910.             "LIKE"     $ cCondition OR ;
  9911.             "<>"     $ cCondition OR ;
  9912.             "!="     $ cCondition OR ;
  9913.             "#"     $ cCondition OR ;
  9914.             "="     $ cCondition OR ;
  9915.             ">"     $ cCondition)
  9916.               lcRetCondition = lcFieldName + cCondition
  9917.         ENDIF
  9918.     ENDIF
  9919.     *!* If a complex condition wasn't found above (lcRetCondition will be empty)
  9920.     *!* Then we need to create the WHERE condition ourselves
  9921.     IF EMPTY(lcRetCondition)
  9922.         *!* The RATC() Functions figure out the column to compare based on the 
  9923.         *!* controlSource of the control and any delimiters needed for the 
  9924.         *!* datatype are added around the values (not all conditions are
  9925.         *!* assumed to be = when we construct them ourselves
  9926.         DO CASE
  9927.             CASE TYPE(cControlSource) $ "CM"
  9928.                 lcRetCondition = lcFieldName + " = " + CHR(34) + cCondition + CHR(34)
  9929.             CASE TYPE(cControlSource) $ "DT"
  9930.                 lcRetCondition = lcFieldName + " = {" + DTOC(cCondition) + "}"
  9931.             OTHERWISE
  9932.                 lcRetCondition = lcFieldName + " = " + STR(cCondition)
  9933.         ENDCASE    
  9934.     ENDIF
  9935.     lcRetCondition = ""
  9936. ENDIF
  9937. RETURN lcRetCondition
  9938. ENDPROC
  9939. 8PROCEDURE InteractiveChange
  9940. LOCAL oForm, oControl
  9941. IF TYPE("_SCREEN.ActiveForm") = "O" AND TYPE("_SCREEN.ActiveForm.ActiveControl") = "O"
  9942.     oForm = _SCREEN.ActiveForm
  9943.     oControl = oForm.ActiveControl
  9944.     RETURN
  9945. ENDIF
  9946. DO CASE
  9947.     CASE THIS.Parent.nAppliesTo = 1    && Current Control
  9948.         oControl.FontName = This.Value
  9949.     CASE THIS.Parent.nAppliesTo = 2    && All textboxes and editboxes
  9950.         oForm.SetAll('FontName', This.Value, 'TEXTBOX')
  9951.         oForm.SetAll('FontName', This.Value, 'EDITBOX')
  9952.     *==================================================================
  9953.     * comment out the previous 2 lines and uncomment the following lines
  9954.     * if you want to affect all controls with a baseclass of textbox 
  9955.     * or editbox.
  9956.     *------------------------------------------------------------------
  9957.     *FOR i = 1 to oForm.ControlCount
  9958.     *  <find out what the baseclass property is to avoid having to UPPER>
  9959.     *    IF UPPER(oForm.Controls(i).BaseClass) = 'TEXTBOX' OR ;
  9960.     *        UPPER(oForm.Controls(i).BaseClass) = 'EDITBOX'
  9961.     *        oForm.Controls(i).FontName = THIS.Value
  9962.     *    ENDIF
  9963.     *ENDFOR
  9964.     *==================================================================
  9965.     CASE THIS.Parent.nAppliesTo = 3    && All Controls
  9966.         oForm.SetAll('FontName', This.Value)
  9967. ENDCASE
  9968. THIS.Parent.cboSizes.FillList(THIS.Value)
  9969. THIS.Parent.Refresh(oControl)
  9970. ENDPROC
  9971. THISFORM.Controls(nCnt).controlSourceb
  9972. THISFORM.Controls(nCnt).valueb
  9973.  AND 
  9974. SET FILTER TO &cFilter
  9975. CFILTER
  9976. THISFORM
  9977. CONTROLCOUNT
  9978. CONTROLS
  9979. CONTROLSOURCE
  9980. CCONDITION
  9981. PARENT
  9982. PARSECONDITION
  9983. VALUE
  9984. ENABLED
  9985. CMDQBFMODE
  9986. CMDCLEARFILTER
  9987. REFRESH
  9988. Click,
  9989. cConditionb
  9990. cConditionb
  9991. CCONDITION
  9992. CCONTROLSOURCE
  9993. LCRETCONDITION
  9994. LCFIELDNAME
  9995. parsecondition,
  9996. USE IN &cCursor
  9997. CCURSOR
  9998. NAME_
  9999. Der Tabellenalias mu
  10000.  in der ControlSource-Eigenschaft im Format 'alias.column' angegeben werden.
  10001. SELECT DISTINCT 
  10002.  FROM 
  10003.  INTO CURSOR c
  10004. CONTROLSOURCE
  10005. CALIAS
  10006. CCOLUMN
  10007. ROWSOURCETYPE
  10008. NAME    
  10009. ROWSOURCE
  10010. Destroy,
  10011. Der zu druckende Bericht mu
  10012.  in der cReport-Eigenschaft des Formulars angegeben sein oder als Parameter 
  10013. bergeben werden.
  10014. Sie m
  10015. ssen einen Dateinamen eingeben.
  10016. THISFORM
  10017. CREPORT
  10018. OPGREPORTOUTPUT
  10019. VALUE
  10020. RELEASE
  10021. TXTFILENAME
  10022. SETFOCUS
  10023. Click,
  10024. THISFORM
  10025. LOCKSCREEN
  10026. PARENT
  10027. LSTSELECTED    
  10028. LISTCOUNT    
  10029. LSTSOURCE
  10030. ADDITEM
  10031. CLEAR
  10032. Click,
  10033. cbofontname
  10034. commandbutton
  10035. AutoSize = .F.
  10036. Top = 3
  10037. Left = 4
  10038. Height = 23
  10039. Width = 72
  10040. FontBold = .F.
  10041. FontName = "MS Sans Serif"
  10042. FontSize = 8
  10043. Caption = "QBF \<eingeben"
  10044. TabIndex = 23
  10045. Name = "cmdQBFMode"
  10046. Width = 92
  10047. Height = 27
  10048. BackStyle = 0
  10049. BorderWidth = 0
  10050. nsec = 0
  10051. nmin = 0
  10052. nhour = 0
  10053. elapsedseconds = 0
  10054. Name = "stopwatch"
  10055. checkbox
  10056. nArial, 0, 9, 5, 15, 12, 13, 3, 0
  10057. Courier New, 1, 9, 7, 16, 12, 8, 4, 0
  10058. Courier New, 3, 9, 7, 16, 12, 10, 4, 0
  10059. Width = 33
  10060. Height = 36
  10061. BorderWidth = 0
  10062. mcierror = 0
  10063. mcierrorstring = 
  10064. autoopen = .T.
  10065. mcialias = 
  10066. autoplay = .T.
  10067. autorepeat = .T.
  10068. controlsource = 
  10069. Name = "soundplayer"
  10070. Top = 5
  10071. Left = 184
  10072. Height = 22
  10073. Width = 26
  10074. FontBold = .T.
  10075. FontName = "MS Sans Serif"
  10076. FontSize = 8
  10077. Caption = "F"
  10078. Value = .F.
  10079. Style = 1
  10080. ToolTipText = "Fett"
  10081. Name = "chkBold"
  10082. BTop = 5
  10083. Left = 184
  10084. Height = 22
  10085. Width = 0
  10086. Name = "Separator1"
  10087. tbrediting.
  10088. Separator1
  10089.     separator
  10090. THISFORM
  10091. LOCKSCREEN
  10092. PARENT    
  10093. LSTSOURCE    
  10094. LISTCOUNT
  10095. LSTSELECTED
  10096. ADDITEM
  10097. CLEAR
  10098. Click,
  10099. print_report.ommands are in effect.
  10100. Compiled code for th
  10101. opgReportOutputey.
  10102. Too many READ commands are in effect.
  10103. Pixels
  10104.     separator
  10105. _FontName = "MS Sans Serif"
  10106. FontSize = 8
  10107. Height = 22
  10108. Left = 135
  10109. Top = 5
  10110. Name = "cboSizes"
  10111. tbrediting.
  10112. rtfcontrols
  10113.     containerP3
  10114. Class
  10115. Pixels7
  10116. PROCEDURE adjustcontrols
  10117. IF THIS.InitialResize
  10118.     THIS.LoopThroughControls("INITIALIZE_AND_ADJUST")
  10119.     THIS.InitialResize = .F.
  10120.     THIS.LoopThroughControls("ADJUST")
  10121. ENDIF
  10122. ENDPROC
  10123. PROCEDURE addtoarray
  10124. LPARAMETERS oControl
  10125. nLen = ALEN(THIS.aControlStats,1)
  10126. THIS.aControlStats[nLen,1] = oControl.Top / THIS.InitialFormHeight
  10127. THIS.aControlStats[nLen,2] = oControl.Left / THIS.InitialFormWidth
  10128. THIS.aControlStats[nLen,3] = oControl.Height / THIS.InitialFormHeight
  10129. THIS.aControlStats[nLen,4] = oControl.Width / THIS.InitialFormWidth
  10130. THIS.aControlStats[nLen,5] = IIF(TYPE("oControl.FontSize") = 'U', 0, oControl.FontSize)
  10131. DIMENSION THIS.aControlStats[nLen+1, 5]
  10132. ENDPROC
  10133. PROCEDURE setsize
  10134. LPARAMETERS oControl, nPos
  10135. oControl.Top = THISFORM.Height * THIS.aControlStats[nPos,1]
  10136. oControl.Left = THISFORM.Width * THIS.aControlStats[nPos,2]
  10137. oControl.Width = THISFORM.Width * THIS.aControlStats[nPos,4]
  10138. IF !oControl.Baseclass $ "Textbox Spinner"
  10139.     oControl.Height = THISFORM.Height * THIS.aControlStats[nPos,3]
  10140. ENDIF
  10141. *IF oControl.Baseclass = "Commandbutton"
  10142. *    IF TXTWIDTH(oControl.caption) > oControl.width 
  10143. *        oControl.FontSize = 8
  10144. *    ELSE
  10145. *        oControl.FontSize = 10
  10146. *    ENDIF
  10147. *ENDIF
  10148. ENDPROC
  10149. PROCEDURE loopthroughcontrols
  10150. LPARAMETERS cTask
  10151. * Valid parameters for cTask are 'Initialize_And_Adjust' and 'Adjust'
  10152. cTask = UPPER(cTask)
  10153. nOldDecimal = SET("DECIMAL")
  10154. SET DECIMAL TO 4
  10155. #define BASE_CLASS "Commandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner"
  10156. nPos = 0
  10157. THISFORM.LockScreen = .T.
  10158. FOR m.i = 1 TO THISFORM.ControlCount
  10159.     oControl = THISFORM.Controls[m.i]
  10160.     IF oControl.Baseclass$BASE_CLASS
  10161.         nPos = nPos + 1
  10162.         DO CASE
  10163.             CASE cTask = 'INITIALIZE_AND_ADJUST'
  10164.                 THIS.AddToArray(oControl)
  10165.                 THIS.SetSize(oControl, nPos)
  10166.             CASE cTask = 'ADJUST'
  10167.                 THIS.SetSize(oControl, nPos)
  10168.         ENDCASE
  10169.     ENDIF
  10170.     *A pageframe can contain only pages
  10171.     IF THISFORM.Controls[m.i].Baseclass$"Pageframe"
  10172.         *Loop through each page of the pageframe
  10173.         FOR m.j = 1 TO THISFORM.Controls[m.i].PageCount
  10174.             WITH THISFORM.Controls[m.i].pages[m.j]
  10175.                 *loop through all the controls on the page
  10176.                 FOR m.k = 1 TO .ControlCount
  10177.                     IF .Controls[m.k].Baseclass$BASE_CLASS
  10178.                         nPos = nPos + 1
  10179.                         DO CASE
  10180.                             CASE cTask = 'INITIALIZE_AND_ADJUST'
  10181.                                 THIS.AddToArray(.Controls[m.k])
  10182.                                 THIS.SetSize(.Controls[m.k], nPos)
  10183.                             CASE cTask = 'ADJUST'
  10184.                                 THIS.SetSize(.Controls[m.k], nPos)
  10185.                         ENDCASE
  10186.                     ENDIF
  10187.                 ENDFOR
  10188.             ENDWITH
  10189.         ENDFOR
  10190.     ENDIF            
  10191. ENDFOR
  10192. THISFORM.LockScreen = .F.
  10193. SET DECIMAL TO nOldDecimal
  10194. ENDPROC
  10195. PROCEDURE Init
  10196. THIS.InitialFormHeight = THISFORM.Height
  10197. THIS.InitialFormWidth = THISFORM.Width
  10198. ENDPROC
  10199. PROCEDURE reset
  10200. THIS.InitialResize = .T.
  10201. DIMENSION THIS.aControlStats[1,5]
  10202. ENDPROC
  10203. mcierror Specifies the result of the last MCI command executed.
  10204. mcierrorstring Stores the error string from the last MCI command executed.
  10205. autoopen Specifies whether the video file specified should be automatically opened when the class is created.
  10206. mcialias Specifies the alias for the video file when calling MCI commands.  If empty, the name of the file is used.
  10207. autoplay Specifies whether the video file should automatically play after opening.
  10208. autorepeat If .T., video will continuously play
  10209. soundfile Specifies the sound file associated with the Sound Player.
  10210. controlsource Specifies the source of data to which an object is bound.
  10211. *domci Executes a MCI command.
  10212. *getmcierror Stores the last MCI error into properties of the class.
  10213. *showmcierror Displays the result of the last MCI command in a messagebox.
  10214. *setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
  10215. *opensound Opens the sound file.
  10216. *pausesound Pauses the currently playing sound.
  10217. *playsound Plays the loaded sound file.
  10218. *closesound Closes the loaded sound file and releases it's resources.
  10219. cboSizes
  10220. combobox
  10221. samples.vcx
  10222. gmousex stores x coordinate of mouse pointer position
  10223. mousey stores y coordinate of mouse pointer position
  10224. candropicon Cursor when dropping is okay
  10225. nodropicon
  10226. dragthreshold number of pixels a user has to move the mouse with the left mouse button down for the drag method to be called.
  10227. *selectall selects all items in the listbox passed in as a parameter
  10228. ENDPROC
  10229. cRepNameb
  10230. Der zu druckende Bericht mu
  10231.  in der cReport-Eigenschaft des Formulars angegeben sein oder als Parameter 
  10232. bergeben werden.
  10233. Die Berichtdatei '
  10234. ' existiert nicht.
  10235. Sie m
  10236. ssen eine g
  10237. ltige Berichtdatei angeben, die in der cReport-Eigenschaft des Formulars gedruckt oder als Parameter 
  10238. bergeben wird.
  10239. CREPNAME
  10240. THISFORM
  10241. CREPORT
  10242. Init,
  10243. THISFORM
  10244. LOCKSCREEN
  10245. PARENT
  10246. LSTSELECTED    
  10247. LISTCOUNT
  10248. SELECTED    
  10249. LSTSOURCE
  10250. ADDITEM
  10251. REMOVEITEM
  10252. Click,
  10253. combobox                                                                                                                                                                                                
  10254. comboboxE Init
  10255. #DEFINE REPORT_NOT_FOUND_LOC "The report
  10256. optiongroupion file.
  10257. Total label width exceeds allowed s
  10258. optiongroupny characters in the report.
  10259. Invalid expressi
  10260. commandbutton
  10261. PROCEDURE InteractiveChange
  10262. IF TYPE("_SCREEN.ActiveForm") = 'O'
  10263.     oForm = _SCREEN.ActiveForm
  10264.     oControl = oForm.ActiveControl
  10265.     RETURN
  10266. ENDIF
  10267. DO CASE 
  10268.     CASE This.Value = 1
  10269.         RETURN
  10270.     CASE This.Value = 2 && Get ForeColor
  10271.         nForeColor = GETCOLOR()
  10272.         IF nForeColor > -1
  10273.         DO CASE
  10274.             CASE THISFORM.nAppliesTo = 1 && current control
  10275.                 IF TYPE("oControl.ForeColor") = "N"
  10276.                     oControl.ForeColor = nForeColor
  10277.                 ELSE
  10278.                     IF TYPE("oControl.ItemForeColor") = "N"
  10279.                         oControl.ItemForeColor = nForeColor
  10280.                     ENDIF
  10281.                 ENDIF
  10282.             CASE THISFORM.nAppliesTo = 2 && text and edit boxes
  10283.                 oForm.SetAll('ForeColor', nForeColor, 'TEXTBOX')
  10284.                 oForm.SetAll('ForeColor', nForeColor, 'EDITBOX')
  10285.             CASE THISFORM.nAppliesTo = 3 && All controls
  10286.                 oForm.SetAll('ForeColor', nForeColor)
  10287.         ENDCASE
  10288.         ENDIF
  10289.     CASE This.Value = 3 && Get BackColor
  10290.         nBackColor = GETCOLOR()
  10291.         IF nBackColor > -1
  10292.         DO CASE
  10293.             CASE THISFORM.nAppliesTo = 1 && current control
  10294.                 IF TYPE("oForm.ActiveControl.BackColor") = "N"
  10295.                     oForm.ActiveControl.BackColor = nBackColor
  10296.                 ELSE
  10297.                     IF TYPE("oForm.ActiveControl.ItemBackColor") = "N"
  10298.                         oForm.ActiveControl.ItemBackColor = nBackColor
  10299.                     ENDIF
  10300.                 ENDIF
  10301.             CASE THISFORM.nAppliesTo = 2 && text and edit boxes
  10302.                 oForm.SetAll('BackColor', nBackColor, 'TEXTBOX')
  10303.                 oForm.SetAll('BackColor', nBackColor, 'EDITBOX')
  10304.             CASE THISFORM.nAppliesTo = 3 && All controls
  10305.                 oForm.SetAll('BackColor', nBackColor)
  10306.         ENDCASE
  10307.         ENDIF        
  10308. ENDCASE
  10309. THIS.Value = 1
  10310. ENDPROC
  10311. PROCEDURE Init
  10312. THIS.AddItem("Farben")
  10313. THIS.AddItem("Vordergrundfarbe festlegen...")
  10314. THIS.AddItem("Hintergrundfarbe festlegen...")
  10315. THIS.ListIndex = 1
  10316. ENDPROC
  10317. cbofontsize
  10318. tbrediting.
  10319. In der'lookup_table'-Eigenschaft (Kombinationsfeld 
  10320.  eine Suchtabelle angegeben werden.
  10321. In der 'display_column'-Eigenschaft (Kombinationsfeld 
  10322.  eine Anzeigespalte angegeben werden.
  10323. In der 'return_column'-Eigenschaft (Kombinationsfeld 
  10324.  eine R
  10325. ckgabespalte angegeben werden.
  10326. SELECT 
  10327.  FROM 
  10328.  ORDER BY 
  10329.  INTO CURSOR 
  10330. SELECT 
  10331.  FROM 
  10332.  INTO CURSOR 
  10333. LOOKUP_TABLE
  10334. DISPLAY_COLUMN
  10335. RETURN_COLUMN
  10336. ORDER_COLUMN
  10337. ROWSOURCETYPE    
  10338. ROWSOURCE
  10339. BOUNDCOLUMN
  10340. REFRESH
  10341. In der 'display_column'- oder 'return_column'-Eigenschaft (Kombinationsfeld 
  10342. ) wurde eine ung
  10343. ltige Anzeige- oder R
  10344. ckgabespalte angegeben.
  10345. In der 'order_column'-Eigenschaft (Kombinationsfeld 
  10346. ) wurde eine ung
  10347. ltige Spalte angegeben.
  10348. In der 'display_column'- oder 'lookup_table'-Eigenschaft (Kombinationsfeld 
  10349. ) wurde eine ung
  10350. ltige Tabelle angegeben.
  10351. NERROR
  10352. CMETHOD
  10353. NLINE
  10354. NAME8
  10355. USE IN &cAlias
  10356. CALIAS
  10357. Init,
  10358. Error
  10359. Destroy
  10360. THISFORM
  10361. LOCKSCREEN
  10362. PARENT    
  10363. LSTSOURCE    
  10364. LISTCOUNT
  10365. SELECTED
  10366. LSTSELECTED
  10367. ADDITEM
  10368. REMOVEITEM
  10369. Click,
  10370. jdisplay_column Specifies the column from lookup_table to display in the drop down list.
  10371. lookup_table Specifies the table to lookup the values to display in the drop down.
  10372. return_column Specifies the column value to return the value property of the combo box.
  10373. order_column Specifies the column to order the records displayed in the drop down list (optional).
  10374.                                                         
  10375. jCaption = "Bearbeiten"
  10376. Height = 31
  10377. Left = 0
  10378. Top = 0
  10379. Width = 339
  10380. nappliesto = 1
  10381. Name = "tbrediting"
  10382. Cqbf_table Specifies the table to query against.
  10383. *parsecondition 
  10384. FWidth = 80
  10385. Height = 97
  10386. BorderWidth = 0
  10387. qbf_table = 
  10388. Name = "qbf"
  10389. ontrolSource,(RATC(".",cControlSource)+1))
  10390.     container parsecondition
  10391. LPARAMETERS cCondition, cContr
  10392. BTop = 5
  10393. Left = 135
  10394. Height = 22
  10395. Width = 0
  10396. Name = "Separator3"
  10397. Separator3
  10398.     separator
  10399.     separator
  10400. jFontName = "MS Sans Serif"
  10401. FontSize = 8
  10402. Height = 22
  10403. Left = 5
  10404. Top = 5
  10405. Width = 125
  10406. Name = "cboFonts"
  10407. tbrediting.
  10408. cboFonts
  10409. combobox
  10410. samples.vcx
  10411. PROCEDURE KeyPress
  10412. LPARAMETERS nKeyCode, nShiftAltCtrl
  10413. IF nKeyCode = 63 AND nShiftAltCtrl = 1
  10414.     THIS.Parent.SelectAll(THIS)
  10415. ENDIF
  10416. ENDPROC
  10417. PROCEDURE MouseMove
  10418. LPARAMETERS nButton, nShift, nXCoord, nYCoord
  10419. IF nButton = 1 && Left Mouse
  10420.     IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
  10421.             ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
  10422.         THIS.Drag
  10423.     ENDIF
  10424. ENDIF
  10425. ENDPROC
  10426. PROCEDURE MouseDown
  10427. LPARAMETERS nButton, nShift, nXCoord, nYCoord
  10428. THIS.Parent.MouseX = nXCoord
  10429. THIS.Parent.MouseY = nYCoord
  10430. ENDPROC
  10431. PROCEDURE DragDrop
  10432. LPARAMETERS oSource, nXCoord, nYCoord
  10433. IF oSource.Name != THIS.Name
  10434.     THIS.Parent.cmdAdd.Click
  10435. ENDIF
  10436. ENDPROC
  10437. PROCEDURE DblClick
  10438. THIS.Parent.lstSource.AddItem(This.List(This.ListIndex))
  10439. This.RemoveItem(This.ListIndex)
  10440. ENDPROC
  10441. PROCEDURE DragOver
  10442. LPARAMETERS oSource, nXCoord, nYCoord, nState
  10443. DO CASE
  10444.     CASE nState = 0 && Enter
  10445.         oSource.DragIcon = THIS.Parent.CanDropIcon
  10446.     CASE nState = 1 && Leave
  10447.         oSource.DragIcon = THIS.Parent.NoDropIcon
  10448. ENDCASE
  10449. ENDPROC
  10450. OLIST
  10451. LNCNT    
  10452. LISTCOUNT
  10453. SELECTED/
  10454. THIS    
  10455. LSTSOURCE
  10456. DRAGICON
  10457. CANDROPICON
  10458. LSTSELECTED    
  10459. selectall,
  10460. Top = 31
  10461. Left = 4
  10462. Height = 23
  10463. Width = 72
  10464. FontBold = .F.
  10465. FontName = "MS Sans Serif"
  10466. FontSize = 8
  10467. Caption = "\<Abfrage"
  10468. Enabled = .F.
  10469. TabIndex = 24
  10470. Name = "cmdExecuteQBF"
  10471. distinct_values_comboa file name.
  10472. cmdQBFMode
  10473. toolbar
  10474. %PROCEDURE KeyPress
  10475. LPARAMETERS nKeyCode, nShiftAltCtrl
  10476. IF nKeyCode = 63 AND nShiftAltCtrl = 1
  10477.     THIS.Parent.SelectAll(THIS)
  10478. ENDIF
  10479. ENDPROC
  10480. PROCEDURE MouseMove
  10481. LPARAMETERS nButton, nShift, nXCoord, nYCoord
  10482. IF nButton = 1 && Left Mouse
  10483.     IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
  10484.             ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
  10485.         THIS.Drag
  10486.     ENDIF
  10487. ENDIF
  10488. ENDPROC
  10489. PROCEDURE MouseDown
  10490. LPARAMETERS nButton, nShift, nXCoord, nYCoord
  10491. THIS.Parent.MouseX = nXCoord
  10492. THIS.Parent.MouseY = nYCoord
  10493. ENDPROC
  10494. PROCEDURE DragDrop
  10495. LPARAMETERS oSource, nXCoord, nYCoord
  10496. IF oSource.Name != THIS.Name
  10497.     THIS.Parent.cmdRemove.Click
  10498. ENDIF
  10499. ENDPROC
  10500. PROCEDURE DblClick
  10501. THIS.Parent.lstSelected.AddItem(This.List(This.ListIndex))
  10502. This.RemoveItem(This.ListIndex)
  10503. ENDPROC
  10504. PROCEDURE DragOver
  10505. LPARAMETERS oSource, nXCoord, nYCoord, nState
  10506. DO CASE
  10507.     CASE nState = 0 && Enter
  10508.         oSource.DragIcon = THIS.Parent.CanDropIcon
  10509.     CASE nState = 1 && Leave
  10510.         oSource.DragIcon = THIS.Parent.NoDropIcon
  10511. ENDCASE
  10512. ENDPROC
  10513.     *!* Once we h
  10514. PROCEDURE Click
  10515. LOCAL cFilter
  10516. cFilter = ""
  10517. *!* First, we need to walk all the controls on the form and find
  10518. *!* all controls with a controlSource and has a value in the value property.
  10519. FOR nCnt = 1 to THISFORM.ControlCount
  10520.     IF TYPE('THISFORM.Controls(nCnt).controlSource') <> "U" THEN
  10521.         IF !EMPTY(THISFORM.Controls(nCnt).ControlSource) AND ;
  10522.           TYPE('THISFORM.Controls(nCnt).value') <> "U" THEN
  10523.             *!* Now we need to parse the value property into a proper
  10524.             *!* condition using the parseCondition method of the form
  10525.             cCondition = THIS.Parent.parseCondition(THISFORM.Controls(nCnt).value,THISFORM.Controls(nCnt).controlSource)
  10526.             *!* If there is a condition, add it to are overall filter
  10527.             IF !EMPTY(cCondition) THEN
  10528.                 cFilter = cFilter + " AND " + cCondition
  10529.             ENDIF
  10530.         ENDIF
  10531.     ENDIF
  10532. ENDFOR
  10533. *!* We need to rollback the transaction to discard the APPEND'ed record
  10534. ROLLBACK
  10535. THIS.Enabled = .F.
  10536. THIS.Parent.cmdQBFMode.Enabled = .T.
  10537. *!* This removes the " AND " keyword that is not needed for the 
  10538. *!* first condition added to cFilter
  10539. IF !EMPTY(cFilter) THEN
  10540.     cFilter = ALLTRIM(SUBSTRC(cFilter,5))
  10541. ENDIF
  10542. *!* Now we are ready to apply the filter
  10543. SET FILTER TO &cFilter
  10544. THIS.Parent.cmdClearFilter.enabled = .T.
  10545. GO TOP
  10546. THISFORM.Refresh
  10547. ENDPROC
  10548. PROCEDURE Destroy
  10549. cCursor = "c" + THIS.name
  10550. IF USED(cCursor) THEN
  10551.     USE IN &cCursor
  10552. ENDIF
  10553. ENDPROC
  10554. PROCEDURE Init
  10555. #DEFINE NO_TABLE_LOC "Der Tabellenalias mu
  10556.  in der ControlSource-Eigenschaft im Format 'alias.column' angegeben werden."
  10557. IF !EMPTY(THIS.controlSource) THEN
  10558.     IF NOT "." $ THIS.controlSource THEN
  10559.         =MESSAGEBOX(NO_TABLE_LOC)
  10560.     ELSE
  10561.         cAlias = LEFTC(THIS.controlSource,(ATC(".",THIS.controlSource)-1))
  10562.         cColumn = RIGHTC(THIS.controlSource,(LENC(THIS.controlSource)-ATC(".",THIS.controlSource)))
  10563.         THIS.rowSourceType = 3
  10564.         cSQL = "SELECT DISTINCT " + cColumn + " FROM " + cAlias + ;
  10565.           " INTO CURSOR c" + THIS.name
  10566.         THIS.rowSource = cSQL
  10567.     ENDIF
  10568. ENDIF
  10569. ENDPROC
  10570. CMCICMD
  10571. CRETSTRING    
  10572. NRETVALUE
  10573. MCISENDSTRING
  10574. GETMCIERROR
  10575. cErrorb
  10576. *ERROR*
  10577. cErrorb
  10578. CERROR
  10579. LCERRORSTRING
  10580. NERROR
  10581. CERRORSTRING
  10582. MCIGETERRORSTRING
  10583. MCIERROR
  10584. MCIERRORSTRING
  10585. No filename specified or control source specified!
  10586. cFileName = ALLTRIM(&cControlSource)
  10587. STATUS 
  10588.  READY
  10589. CLOSE 
  10590.  WAIT
  10591. FOXTOOLS.FLL
  10592. MainHWND
  10593. _WhToHwnd
  10594. _WOnTop
  10595. OPEN "
  10596. " alias 
  10597.  style child parent 
  10598.  WAIT
  10599. status 
  10600.  window handle wait
  10601. WINDOW 
  10602.  state show
  10603.  time format milliseconds
  10604. CCONTROLSOURCE
  10605. CONTROLSOURCE    
  10606. CFILENAME    
  10607. VIDEOFILE
  10608. CALIAS
  10609. MCIALIAS
  10610. MOUSEPOINTER
  10611. DOMCI
  10612. FOXTOOLS
  10613. MAINHWND    
  10614. _WHTOHWND
  10615. _WONTOP    
  10616. MAIN_HWND
  10617. CUR_WINDOW
  10618. NULLPOINTER
  10619. MCIERROR
  10620. MCIERRORSTRING
  10621. X1POS
  10622. Y1POS
  10623. X2POS
  10624. WIDTH
  10625. Y2POS
  10626. HEIGHT
  10627. SETWINDOWPOS
  10628. AUTOPLAY    
  10629. PLAYVIDEO
  10630. STATUS 
  10631.  length
  10632. STATUS 
  10633.  position
  10634. SEEK 
  10635.  to start WAIT
  10636. PLAY 
  10637. CALIAS
  10638. MCIALIAS
  10639. NMEDIALENGTH
  10640. DOMCI
  10641. NMEDIAPOSITION
  10642. MCIERROR
  10643. SHOWMCIERROR
  10644. AUTOREPEAT
  10645. TMRCHECKMODE
  10646. INTERVAL
  10647. STATUS 
  10648.  mode
  10649. playing
  10650. PAUSE 
  10651. CALIAS
  10652. MCIALIAS
  10653. DOMCI
  10654. MCIERROR
  10655. SHOWMCIERROR
  10656. AUTOREPEAT
  10657. TMRCHECKMODE
  10658. INTERVAL!
  10659. MCIERROR
  10660. MCIERRORSTRING
  10661. STATUS 
  10662.  READY
  10663. CLOSE 
  10664.  WAIT
  10665. MCIALIAS
  10666. DOMCI
  10667. MCIERROR
  10668. SHOWMCIERROR
  10669. AUTOREPEAT
  10670. TMRCHECKMODE
  10671. INTERVALg
  10672. START
  10673. STATUS 
  10674.  length
  10675. STATUS 
  10676.  READY
  10677. SEEK 
  10678. CPOSITION
  10679. CALIAS
  10680. MCIALIAS
  10681. CPOSCMD    
  10682. NPOSITION
  10683. NMEDIALENGTH
  10684. DOMCI
  10685. CLOSEVIDEO
  10686. mciSendString
  10687. WinMM.DLL
  10688. mciGetErrorString
  10689. WINMM.DLL
  10690. SetWindowPos
  10691. User32
  10692. MCISENDSTRING
  10693. WINMM
  10694. MCIGETERRORSTRING
  10695. SETWINDOWPOS
  10696. USER32#
  10697. AUTOOPEN    
  10698. OPENVIDEO
  10699. openvideo
  10700. ltige Steuerelementquelle angegeben.
  10701. NERROR
  10702. CMETHOD
  10703. NLINE
  10704. domci,
  10705. getmcierror
  10706. openvideoW
  10707. playvideo
  10708. pausevideo"    
  10709. showmcierror0
  10710. closevideou
  10711. setposition
  10712. DestroyY
  10713. Init|
  10714. RefreshH
  10715. Error
  10716. CMCICMD
  10717. CRETSTRING    
  10718. NRETVALUE
  10719. MCISENDSTRING
  10720. GETMCIERROR
  10721. cErrorb
  10722. *ERROR*
  10723. cErrorb
  10724. CERROR
  10725. LCERRORSTRING
  10726. NERROR
  10727. CERRORSTRING
  10728. MCIGETERRORSTRING
  10729. MCIERROR
  10730. MCIERRORSTRING!
  10731. MCIERROR
  10732. MCIERRORSTRINGg
  10733. START
  10734. STATUS 
  10735.  length
  10736. STATUS 
  10737.  READY
  10738. SEEK 
  10739. CPOSITION
  10740. CALIAS
  10741. MCIALIAS
  10742. CPOSCMD    
  10743. NPOSITION
  10744. NMEDIALENGTH
  10745. DOMCI
  10746. CCMDb
  10747. No filename or control source specified!
  10748. cFileName = ALLTRIM(&controlSource)
  10749. STATUS 
  10750.  READY
  10751. CLOSE 
  10752.  WAIT
  10753. OPEN "
  10754. " alias 
  10755.  WAIT
  10756.  time format milliseconds
  10757. CONTROLSOURCE    
  10758. CFILENAME    
  10759. SOUNDFILE
  10760. CALIAS
  10761. MCIALIAS
  10762. MOUSEPOINTER
  10763. DOMCI
  10764. MCIERROR
  10765. MCIERRORSTRING
  10766. AUTOPLAY    
  10767. PLAYSOUND
  10768. STATUS 
  10769.  mode
  10770. playing
  10771. PAUSE 
  10772. CALIAS
  10773. MCIALIAS
  10774. DOMCI
  10775. MCIERROR
  10776. SHOWMCIERROR
  10777. AUTOREPEAT
  10778. TMRCHECKMODE
  10779. INTERVAL
  10780. STATUS 
  10781.  length
  10782. STATUS 
  10783.  position
  10784. SEEK 
  10785.  to start WAIT
  10786. PLAY 
  10787. CALIAS
  10788. MCIALIAS
  10789. NMEDIALENGTH
  10790. DOMCI
  10791. NMEDIAPOSITION
  10792. MCIERROR
  10793. SHOWMCIERROR
  10794. AUTOREPEAT
  10795. TMRCHECKMODE
  10796. INTERVAL
  10797. STATUS 
  10798.  READY
  10799. CLOSE 
  10800.  WAIT
  10801. MCIALIAS
  10802. DOMCI
  10803. MCIERROR
  10804. SHOWMCIERROR
  10805. AUTOREPEAT
  10806. TMRCHECKMODE
  10807. INTERVAL
  10808. CLOSESOUND
  10809. mciSendString
  10810. WinMM.DLL
  10811. mciGetErrorString
  10812. WINMM.DLL
  10813. SetWindowPos
  10814. User32
  10815. MCISENDSTRING
  10816. WINMM
  10817. MCIGETERRORSTRING
  10818. SETWINDOWPOS
  10819. USER32#
  10820. AUTOOPEN    
  10821. OPENSOUND
  10822. opensound
  10823. ltige Steuerelementquelle angegeben.
  10824. NERROR
  10825. CMETHOD
  10826. NLINE
  10827. domci,
  10828. getmcierror
  10829. showmcierrorW
  10830. setposition
  10831. opensoundY
  10832. pausesoundL
  10833. playsoundZ
  10834. closesound
  10835. Destroy
  10836. Init3
  10837. Refresh
  10838. ErrorA
  10839. THIS    
  10840. TMRSWATCH
  10841. ENABLED
  10842. THIS    
  10843. TMRSWATCH
  10844. ENABLED=
  10845. NHOUR
  10846. UPDATEDISPLAY
  10847. CSECDISPLAY
  10848. CMINDISPLAY
  10849. CHOURDISPLAY
  10850. NHOUR
  10851. LBLSECONDS
  10852. CAPTION
  10853. LBLMINUTES
  10854. LBLHOURS
  10855. NHOUR
  10856. UPDATEDISPLAY
  10857. ELAPSEDSECONDS+
  10858. LBLSEPARATOR1
  10859. CAPTION
  10860. LBLSEPARATOR2
  10861. start,
  10862. stop^
  10863. reset
  10864. updatedisplay
  10865. increment/
  10866. Init:
  10867.  PROCEDURE Init
  10868. #DEFINE NO_LOOKUP_TABLE_LOC "In der'lookup_table'-Eigenschaft (Kombinationsfeld " + THIS.name + ") mu
  10869.  eine Suchtabelle angegeben werden."
  10870. #DEFINE NO_DISPLAY_COLUMN_LOC "In der 'display_column'-Eigenschaft (Kombinationsfeld " + THIS.name + ") mu
  10871.  eine Anzeigespalte angegeben werden."
  10872. #DEFINE NO_RETURN_COLUMN_LOC "In der 'return_column'-Eigenschaft (Kombinationsfeld " + THIS.name + ") mu
  10873.  eine R
  10874. ckgabespalte angegeben werden."
  10875. lOK = .T.
  10876. DO CASE
  10877.     CASE EMPTY(THIS.lookup_table)
  10878.         =MESSAGEBOX(NO_LOOKUP_TABLE_LOC,48)
  10879.         lOK = .F.
  10880.     CASE EMPTY(THIS.display_column)
  10881.         =MESSAGEBOX(NO_DISPLAY_COLUMN_LOC,48)
  10882.         lOK = .F.
  10883.     CASE EMPTY(THIS.return_column)
  10884.         =MESSAGEBOX(NO_RETURN_COLUMN_LOC,48)
  10885.         lOK = .F.
  10886. ENDCASE
  10887. IF lOK THEN
  10888.     IF !EMPTY(THIS.order_column)
  10889.         nSQL = "SELECT " + THIS.display_column + "," + THIS.return_column + " FROM " + THIS.lookup_table + " ORDER BY " + THIS.order_column + " INTO CURSOR " + THIS.name
  10890.     ELSE
  10891.         nSQL = "SELECT " + THIS.display_column + "," + THIS.return_column + " FROM " + THIS.lookup_table + " INTO CURSOR " + THIS.name
  10892.     ENDIF
  10893.     THIS.RowSourceType = 3
  10894.     THIS.RowSource = nSQL
  10895.     THIS.BoundColumn = 2
  10896. ENDIF
  10897. THIS.Refresh
  10898. ENDPROC
  10899. PROCEDURE Error
  10900. LPARAMETERS nError, cMethod, nLine
  10901. #DEFINE INVALID_COLUMN_LOC "In der 'display_column'- oder 'return_column'-Eigenschaft (Kombinationsfeld " + THIS.name + ") wurde eine ung
  10902. ltige Anzeige- oder R
  10903. ckgabespalte angegeben."
  10904. #DEFINE INVALID_TABLE_LOC "In der 'display_column'- oder 'lookup_table'-Eigenschaft (Kombinationsfeld " + THIS.name + ") wurde eine ung
  10905. ltige Tabelle angegeben."
  10906. #DEFINE INVALID_SORT_LOC "In der 'order_column'-Eigenschaft (Kombinationsfeld " + THIS.name + ") wurde eine ung
  10907. ltige Spalte angegeben."
  10908. DO CASE
  10909.     CASE nError = 1806
  10910.         =MESSAGEBOX(INVALID_COLUMN_LOC,48)
  10911.     CASE nError = 1808
  10912.         =MESSAGEBOX(INVALID_SORT_LOC,48)
  10913.     CASE nError = 1802
  10914.         =MESSAGEBOX(INVALID_TABLE_LOC,48)
  10915.     OTHERWISE
  10916.         =MESSAGEBOX(MESSAGE(),48)
  10917. ENDCASE
  10918. ENDPROC
  10919. PROCEDURE Destroy
  10920. cAlias = THIS.name
  10921. IF USED(cAlias) THEN
  10922.     USE IN &cAlias
  10923. ENDIF
  10924. ENDPROC
  10925. MCISENDSTRING
  10926. m.lnScopeb
  10927. ltiger Wert an conflictmanager.handlerecord 
  10928. bergeben.
  10929. SourceType
  10930. Ein Wert wurde von einer/m anderen Benutzer/in ge
  10931. ndert.C
  10932. Feld: 
  10933. Datensatznummer: 
  10934. CCCOZ
  10935. m.lcFieldb
  10936. Urspr
  10937. nglicher Wert: 
  10938. Aktueller Wert: 
  10939. Ihre 
  10940. nderung: 
  10941.  ist ein Memofeld.
  10942. chten Sie den aktuellen Wert mit Ihrer 
  10943. nderung 
  10944. berschreiben?
  10945. hlen Sie 'Abbrechen', um den urspr
  10946. nglichen Wert wiederherzustellen.)
  10947. Datenkonflikt
  10948. Ein Wert wurde ge
  10949. ndert.C
  10950. Feld: 
  10951. Datensatznummer: 
  10952. CCCOZ
  10953. m.lcFieldb
  10954. Urspr
  10955. nglicher Wert: 
  10956. Aktueller Wert: 
  10957. Ihre 
  10958. nderung: 
  10959.  ist ein Memofeld.
  10960. chten Sie den aktuellen Wert mit Ihrer 
  10961. nderung 
  10962. berschreiben?
  10963. hlen Sie 'Abbrechen', um den urspr
  10964. nglichen Wert wiederherzustellen.)
  10965. nderungen 
  10966. berpr
  10967. LNSCOPE
  10968. LNCHOICE
  10969. LNFIELD
  10970. LCFIELD
  10971. LUOLDVAL
  10972. LUCURVAL
  10973. LUFIELD
  10974. LLMADECHANGE    
  10975. LLSUCCESS
  10976. STRING 
  10977. m.luValueb
  10978. m.luValue
  10979. Memo field
  10980. LUVALUE
  10981. UTYPE
  10982. Buffering
  10983. Buffering
  10984. chten Sie Ihre 
  10985. nderungen speichern?
  10986. nderungen speichern
  10987. LNCHOICE
  10988. LLMADECHANGE    
  10989. LNSUCCESS
  10990. NOBUFF_LOC1
  10991. Buffering
  10992. Buffering
  10993. LNSUCCESS
  10994. LNREC
  10995. HANDLERECORD
  10996. NOBUFF_LOC1
  10997. Buffering
  10998. Buffering
  10999. LNSUCCESS
  11000. LLNREC
  11001. HANDLERECORD
  11002. NOBUFF_LOC
  11003. handlerecord,
  11004. stringO
  11005. verifychanges
  11006. verifyeachchangeN
  11007. checkconflicts
  11008. CFONTNAME
  11009. CLEAR
  11010. ASIZES    
  11011. LSCALABLE
  11012. NLARGESTFONT
  11013. NSTART
  11014. NSMALLESTFONT
  11015. ADDITEM
  11016. filllist,
  11017. WPROCEDURE start
  11018. This.tmrSWatch.enabled = .T.
  11019. ENDPROC
  11020. PROCEDURE stop
  11021. This.tmrSWatch.enabled = .f.
  11022. ENDPROC
  11023. PROCEDURE reset
  11024. This.nSec = 0
  11025. This.nMin = 0
  11026. This.nHour = 0
  11027. This.UpdateDisplay
  11028. ENDPROC
  11029. PROCEDURE updatedisplay
  11030. cSecDisplay = ALLTRIM(STR(This.nSec))
  11031. cMinDisplay = ALLTRIM(STR(This.nMin))
  11032. cHourDisplay = ALLTRIM(STR(This.nHour))
  11033. This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
  11034. This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
  11035. This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
  11036. ENDPROC
  11037. PROCEDURE increment
  11038. THIS.nSec = THIS.nSec + 1
  11039. IF THIS.nSec = 60
  11040.     THIS.nSec = 0
  11041.     THIS.nMin = THIS.nMin + 1
  11042. ENDIF
  11043. IF THIS.nMin = 60
  11044.     THIS.nMin = 0
  11045.     THIS.nHour = THIS.nHour + 1
  11046. ENDIF
  11047. THIS.UpdateDisplay
  11048. THIS.ElapsedSeconds = (THIS.nHour * 3600) + ;
  11049.                                (THIS.nMin * 60) + ;
  11050.                                 (This.nSec)
  11051. ENDPROC
  11052. PROCEDURE Init
  11053. #DEFINE SEPARATOR_LOC ':'
  11054. This.lblSeparator1.Caption = SEPARATOR_LOC
  11055. This.lblSeparator2.Caption = SEPARATOR_LOC
  11056. ENDPROC
  11057. PROCEDURE domci
  11058. LPARAMETERS cMCIcmd
  11059. *!* This method takes a MCI command string and executes it using
  11060. *!* the Windows API function mciSendString
  11061. *!* If the function executes successfully, the result is returned.
  11062. *!* Otherwise, the error string is returned.
  11063. cRetString = space(80)
  11064. nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
  11065. cErr = THIS.getMCIerror(nRetValue)
  11066. IF nRetValue > 0
  11067.     RETURN CeRR
  11068. ENDIF
  11069. RETURN TRIM(STRTRAN(cRetString,chr(0),""))
  11070. ENDPROC
  11071. PROCEDURE getmcierror
  11072. LPARAMETERS cError
  11073. LOCAL lcErrorString,nError
  11074. *!* This method is called from the doMCI to retrieve the last
  11075. *!* MCI error string.
  11076. *!* This function also saves the last error number and string
  11077. *!* into properties associated with the form.
  11078. nError=0
  11079. IF TYPE("cError")="C"
  11080.    IF LEFT(cError,7)="*ERROR*"
  11081.       nError=val(substr(cError,8))
  11082.    ENDIF
  11083. ENDIF   
  11084. IF TYPE("cError")="N"
  11085.   nError=cError
  11086. ENDIF
  11087. cErrorString=SPACE(256)  
  11088. =mciGetErrorString(nError,@cErrorString,len(cErrorString))
  11089. THIS.MCIerror = nError
  11090. THIS.MCIerrorString = cErrorString
  11091. RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
  11092. ENDPROC
  11093. PROCEDURE showmcierror
  11094. MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
  11095. ENDPROC
  11096. PROCEDURE setposition
  11097. PARAMETERS cPosition
  11098. cAlias = THIS.MCIalias
  11099. IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
  11100.     cPosCmd = "to " + cPosition
  11101.     nPosition = VAL(cPosition)
  11102.     IF EMPTY(nPosition) THEN
  11103.         RETURN
  11104.     ELSE
  11105.         *!* Check to make sure position is not greater than the length
  11106.         nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  11107.         IF nMediaLength < nPosition THEN
  11108.             RETURN
  11109.         ELSE
  11110.             cPosCmd = "to " + STR(nPosition)
  11111.         ENDIF
  11112.     ENDIF
  11113. ENDIF
  11114. *!* Make sure video is loaded
  11115. cCmd = ("STATUS " + cAlias + " READY")
  11116. IF THIS.doMCI(cCmd) = "true" THEN
  11117.     cCmd = "SEEK " + cAlias + " " + cPosCmd
  11118.     THIS.doMCI(cCmd)
  11119. ENDIF
  11120. ENDPROC
  11121. PROCEDURE opensound
  11122. *!* Get needed properties into variables
  11123. IF EMPTY(THIS.controlSource) THEN
  11124.     cFileName = THIS.soundFile
  11125.     IF EMPTY(cFileName) THEN
  11126.         MESSAGEBOX("No filename or control source specified!")
  11127.         RETURN
  11128.     ENDIF
  11129.     cFileName = ALLTRIM(&controlSource)
  11130.     IF EMPTY(cFileName) THEN
  11131.         RETURN
  11132.     ENDIF
  11133. ENDIF
  11134. cAlias = THIS.MCIalias
  11135. IF EMPTY(cAlias) THEN
  11136.     cAlias = THIS.name
  11137.     THIS.MCIalias = cAlias
  11138. ENDIF
  11139. _SCREEN.MousePointer = 11
  11140. *!* If sound is already loaded, then close it
  11141. cCmd = ("STATUS " + cAlias + " READY")
  11142. IF THIS.doMCI(cCmd) = "true" THEN
  11143.     *!* If one is, close it
  11144.     cCMD = ("CLOSE " + cAlias + " WAIT")
  11145.     THIS.doMCI(cCmd)
  11146. ENDIF
  11147. *!* Set up open MCI command into string variable
  11148. cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ' WAIT')
  11149. THIS.doMCI(cCmd)
  11150. *!* Check to see if MCI command succeeded
  11151. IF THIS.MCIerror > 0 THEN
  11152.     messagebox(THIS.MCIerrorString)
  11153.     _SCREEN.MousePointer = 0
  11154.     RETURN
  11155. ENDIF
  11156. *!* Set the device to use milliseconds when setting/getting position
  11157. THIS.doMCI("SET " + cAlias + " time format milliseconds")
  11158. IF THIS.autoPlay = .T. THEN
  11159.     THIS.playSound
  11160. ENDIF
  11161. _SCREEN.MousePointer = 0
  11162. ENDPROC
  11163. PROCEDURE pausesound
  11164. cAlias = THIS.MCIalias
  11165. *!* Check to see if there is media acutally playing
  11166. IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
  11167.     *!* Yes there is, so execute the PAUSE MCI command
  11168.     THIS.doMCI("PAUSE " + cAlias)
  11169.     IF THIS.MCIerror > 0 THEN
  11170.         THIS.showMCIerror
  11171.     ENDIF
  11172.     IF THIS.autoRepeat = .T. THEN
  11173.         THIS.tmrCheckMode.INTERVAL = 0
  11174.     ENDIF
  11175. ENDIF
  11176. ENDPROC
  11177. PROCEDURE playsound
  11178. cAlias = THIS.MCIalias
  11179. *!* First need to see if the media is at the end 
  11180. *!* by comparing the total length with the current position
  11181. nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  11182. nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
  11183. IF nMediaPosition >= nMediaLength THEN
  11184.     *!* The media is at the end, so we need to seek back to the start
  11185.     *!* of the clip before playing
  11186.     THIS.doMCI("SEEK " + cAlias + " to start WAIT")
  11187. ENDIF
  11188. *!* Now we can play the media
  11189. THIS.doMCI("PLAY " + cAlias)
  11190. IF THIS.MCIerror > 0 THEN
  11191.     THIS.showMCIerror
  11192. ENDIF
  11193. IF THIS.autoRepeat = .T. THEN
  11194.     THIS.tmrCheckMode.INTERVAL = 300
  11195. ENDIF
  11196. ENDPROC
  11197. PROCEDURE closesound
  11198. *!* If sound is not already closed, then close it
  11199. cCmd = ("STATUS " + THIS.MCIalias + " READY")
  11200. IF THIS.doMCI(cCmd) = "true" THEN
  11201.     *!* If one is, close it
  11202.     cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
  11203.     THIS.doMCI(cCmd)
  11204.     IF THIS.MCIerror > 0 THEN
  11205.         THIS.showMCIerror
  11206.     ENDIF
  11207.     IF THIS.autoRepeat = .T. THEN
  11208.         THIS.tmrCheckMode.INTERVAL = 0
  11209.     ENDIF
  11210. ENDIF
  11211. ENDPROC
  11212. PROCEDURE Destroy
  11213. THIS.closeSound
  11214. ENDPROC
  11215. PROCEDURE Init
  11216. *!* This is the primary Windows API function that is used to 
  11217. *!* send MCI commands
  11218. DECLARE INTEGER mciSendString ;
  11219.    IN WinMM.DLL ;
  11220.    STRING cMCIString,;
  11221.    STRING @cRetString,;
  11222.    INTEGER nRetLength,;
  11223.    INTEGER hInstance
  11224. *!* This function allows us to retrieve the last MCI error that occured
  11225. DECLARE INTEGER mciGetErrorString ;
  11226.    IN WINMM.DLL ;
  11227.    INTEGER nErrorno, ;
  11228.    STRING @cBuffer, ;
  11229.    INTEGER nBufSize
  11230. *!* When MCI plays a video, it creates its own Window.  By using
  11231. *!* this Windows API function we can position this Window to be
  11232. *!* in the same position as our Player rectangle on the form
  11233. DECLARE integer SetWindowPos ;
  11234.     IN User32 ;
  11235.     integer, integer, integer, integer, integer, integer, integer
  11236. ENDPROC
  11237. PROCEDURE Refresh
  11238. IF THIS.autoOpen = .T. THEN
  11239.     THIS.openSound
  11240. ENDIF
  11241. ENDPROC
  11242. PROCEDURE Error
  11243. LPARAMETERS nError, cMethod, nLine
  11244. #DEFINE INVALID_CONTROLSOURCE_LOC "Ung
  11245. ltige Steuerelementquelle angegeben."
  11246. LPARAMETERS nError, cMethod, nLine
  11247. DO CASE
  11248.     CASE nError = 12 and cMethod = "opensound"
  11249.         messageBox(INVALID_CONTROLSOURCE_LOC)
  11250.     OTHERWISE
  11251.         ERROR (nError)
  11252. ENDCASE
  11253. ENDPROC
  11254. NKEYCODE
  11255. NSHIFTALTCTRL
  11256. PARENT    
  11257. SELECTALLy
  11258. NBUTTON
  11259. NSHIFT
  11260. NXCOORD
  11261. NYCOORD
  11262. PARENT
  11263. MOUSEX
  11264. DRAGTHRESHOLD
  11265. MOUSEY
  11266. DRAG<
  11267. NBUTTON
  11268. NSHIFT
  11269. NXCOORD
  11270. NYCOORD
  11271. PARENT
  11272. MOUSEX
  11273. MOUSEY=
  11274. OSOURCE
  11275. NXCOORD
  11276. NYCOORD
  11277. PARENT
  11278. CMDADD
  11279. CLICK6
  11280. PARENT    
  11281. LSTSOURCE
  11282. ADDITEM
  11283. LIST    
  11284. LISTINDEX
  11285. REMOVEITEMu
  11286. OSOURCE
  11287. NXCOORD
  11288. NYCOORD
  11289. NSTATE
  11290. DRAGICON
  11291. PARENT
  11292. CANDROPICON
  11293. NODROPICON
  11294. KeyPress,
  11295. MouseMove
  11296. MouseDownw
  11297. DragDrop
  11298. DblClickw
  11299. DragOver
  11300. NKEYCODE
  11301. NSHIFTALTCTRL
  11302. PARENT    
  11303. SELECTALLy
  11304. NBUTTON
  11305. NSHIFT
  11306. NXCOORD
  11307. NYCOORD
  11308. PARENT
  11309. MOUSEX
  11310. DRAGTHRESHOLD
  11311. MOUSEY
  11312. DRAG<
  11313. NBUTTON
  11314. NSHIFT
  11315. NXCOORD
  11316. NYCOORD
  11317. PARENT
  11318. MOUSEX
  11319. MOUSEY=
  11320. OSOURCE
  11321. NXCOORD
  11322. NYCOORD
  11323. PARENT    
  11324. CMDREMOVE
  11325. CLICK6
  11326. PARENT
  11327. LSTSELECTED
  11328. ADDITEM
  11329. LIST    
  11330. LISTINDEX
  11331. REMOVEITEMu
  11332. OSOURCE
  11333. NXCOORD
  11334. NYCOORD
  11335. NSTATE
  11336. DRAGICON
  11337. PARENT
  11338. CANDROPICON
  11339. NODROPICON
  11340. KeyPress,
  11341. MouseMove
  11342. MouseDownw
  11343. DragDrop
  11344. DblClickz
  11345. DragOver
  11346. CCCC^
  11347. CCCCC^
  11348. CCCC$%Z
  11349. CCCC$iZ
  11350. PARENT
  11351. TIMEFORMAT
  11352. TXTTIME
  11353. VALUE
  11354. TXTDATE
  11355. Timer,
  11356. PARENT
  11357. NHOUR
  11358. UPDATEDISPLAY
  11359. ELAPSEDSECONDS
  11360. Timer,
  11361. ButtonCount = 3
  11362. BackStyle = 0
  11363. Value = 1
  11364. Height = 110
  11365. Left = 10
  11366. Top = 14
  11367. Width = 242
  11368. Name = "opgReportOutput"
  11369. OPTION1.FontBold = .F.
  11370. OPTION1.FontName = "MS Sans Serif"
  11371. OPTION1.FontSize = 8
  11372. Option1.BackStyle = 0
  11373. OPTION1.Caption = "Seitenvorschau"
  11374. OPTION1.Value = 1
  11375. OPTION1.Height = 15
  11376. OPTION1.Left = 11
  11377. OPTION1.Top = 12
  11378. OPTION1.Width = 80
  11379. OPTION1.AutoSize = .T.
  11380. Option1.Name = "optPreview"
  11381. OPTION2.FontBold = .F.
  11382. OPTION2.FontName = "MS Sans Serif"
  11383. OPTION2.FontSize = 8
  11384. Option2.BackStyle = 0
  11385. OPTION2.Caption = "Drucker"
  11386. OPTION2.Value = 0
  11387. OPTION2.Height = 15
  11388. OPTION2.Left = 11
  11389. OPTION2.Top = 30
  11390. OPTION2.Width = 48
  11391. OPTION2.AutoSize = .T.
  11392. Option2.Name = "optPrinter"
  11393. OPTION3.FontBold = .F.
  11394. OPTION3.FontName = "MS Sans Serif"
  11395. OPTION3.FontSize = 8
  11396. Option3.BackStyle = 0
  11397. OPTION3.Caption = "Datei"
  11398. OPTION3.Value = 0
  11399. OPTION3.Height = 15
  11400. OPTION3.Left = 11
  11401. OPTION3.Top = 48
  11402. OPTION3.Width = 34
  11403. OPTION3.AutoSize = .T.
  11404. Option3.Name = "optFile"
  11405. ow or column position is off the screen.
  11406. PROCEDURE Init
  11407. #DEFINE REPORT_NOT_FOUND_LOC "Die Berichtdatei '" + THISFORM.cReport +"' existiert nicht." + CHR(13) + CHR(13) +        "Sie m
  11408. ssen eine g
  11409. ltige Berichtdatei angeben, die in der cReport-Eigenschaft des Formulars gedruckt oder als Parameter 
  11410. bergeben wird."
  11411. #DEFINE NO_REPORT_LOC "Der zu druckende Bericht mu
  11412.  in der cReport-Eigenschaft des Formulars angegeben sein oder als Parameter 
  11413. bergeben werden."
  11414. LPARAMETERS cRepName
  11415. *!* If no parameters are passed in, the variables are automatically
  11416. *!* set to a logical .F. value.
  11417. IF TYPE("cRepName") = "C" THEN
  11418.     *!* If a parameter is passed in, assume it is the report
  11419.     *!* name and set the cReport property of the form to it.
  11420.     THISFORM.cReport = cRepName
  11421. ENDIF
  11422. IF EMPTY(THISFORM.cReport) THEN
  11423.     MESSAGEBOX(NO_REPORT_LOC)
  11424.     RETURN .F.
  11425. ENDIF
  11426. IF !FILE(THISFORM.cReport) THEN
  11427.     MESSAGEBOX(REPORT_NOT_FOUND_LOC)
  11428.     RETURN .F.
  11429. ENDIF
  11430. ENDPROC
  11431. d contains unrecognized 
  11432. PROCEDURE InteractiveChange
  11433. IF TYPE("_SCREEN.ActiveForm") = 'O'
  11434.     oForm = _SCREEN.ActiveForm
  11435.     RETURN
  11436. ENDIF
  11437. DO CASE
  11438.     CASE THIS.Parent.nAppliesTo = 1    && Current Control
  11439.         oForm.ActiveControl.FontSize = VAL(THIS.Value)
  11440.     CASE THIS.Parent.nAppliesTo = 2    && All textboxes and editboxes
  11441.         oForm.SetAll('FontSize', VAL(THIS.Value), 'TEXTBOX')        
  11442.         oForm.SetAll('FontSize', VAL(THIS.Value), 'EDITBOX')        
  11443.     CASE THIS.Parent.nAppliesTo = 3    && All Controls
  11444.         oForm.SetAll('FontSize', VAL(THIS.Value))
  11445. ENDCASE
  11446. ENDPROC
  11447. PROCEDURE Error
  11448. LPARAMETERS nError, cMethod, nLine
  11449. #define NUM_LOC "Fehlernummer: "
  11450. #define PROG_LOC "Prozedur: "
  11451. #define MSG_LOC "Fehlermeldung: "
  11452. #define CR_LOC CHR(13)
  11453. #define BADSIZE_LOC "Das Steuerelement unterst
  11454. tzt den ausgew
  11455. hlten Schriftgrad nicht."
  11456. DO CASE
  11457.     CASE nError = 1881 && Fontsize invalid for the control
  11458.         WAIT WINDOW BADSIZE_LOC TIMEOUT 2
  11459.         IF TYPE("Application.ActiveForm.ActiveControl") = "O"
  11460.             THIS.Parent.Refresh(Application.ActiveForm.ActiveControl)
  11461.         ENDIF
  11462.     OTHERWISE
  11463.     *-----------------------------------------------------------
  11464.     * Display information about an unanticipated error.
  11465.     *-----------------------------------------------------------
  11466.         lcMsg = NUM_LOC + ALLTRIM(STR(nError)) + CR_LOC + CR_LOC + ;
  11467.                 MSG_LOC + MESSAGE( )+ CR_LOC + CR_LOC + ;
  11468.                 PROG_LOC + PROGRAM(1)
  11469.         lnAnswer = MESSAGEBOX(lcMsg, 2+48+512)
  11470.         DO CASE
  11471.             CASE lnAnswer = 3 &&Abort
  11472.                 CANCEL
  11473.             CASE lnAnswer = 4 &&Retry
  11474.                 RETRY
  11475.             OTHERWISE
  11476.                 RETURN
  11477.         ENDCASE
  11478. ENDCASE
  11479. ENDPROC
  11480. PROCEDURE Refresh
  11481. LPARAMETERS oSource
  11482. DO CASE
  11483.     CASE THIS.nAppliesTo = 2 && text and edit boxes
  11484.         IF TYPE("_SCREEN.ActiveForm") = 'O'
  11485.             oForm = _SCREEN.ActiveForm
  11486.         ELSE
  11487.             RETURN
  11488.         ENDIF
  11489.         FOR i = 1 to oForm.ControlCount
  11490.             IF oForm.Controls(i).BaseClass$"Textbox Editbox"
  11491.                 THIS.cboFonts.Value = oForm.Controls(i).FontName
  11492.                 THIS.cboSizes.FillList(THIS.cboFonts.Value)
  11493.                 THIS.cboSizes.Value = STR(oForm.Controls(i).FontSize)
  11494.                 THIS.chkBold.Value = oForm.Controls(i).FontBold
  11495.                 THIS.chkItalic.Value = oForm.Controls(i).FontItalic
  11496.                 THIS.chkUnderline.Value = oForm.Controls(i).FontUnderline
  11497.                 EXIT
  11498.             ENDIF
  11499.         ENDFOR
  11500.     OTHERWISE
  11501.         IF TYPE("oSource") != 'O'
  11502.             RETURN
  11503.         ENDIF
  11504.         THIS.cboFonts.Value = oSource.FontName
  11505.         THIS.cboSizes.FillList(THIS.cboFonts.Value)
  11506.         THIS.cboSizes.Value = STR(oSource.FontSize)
  11507.         THIS.chkBold.Value = oSource.FontBold
  11508.         THIS.chkItalic.Value = oSource.FontItalic
  11509.         THIS.chkUnderline.Value = oSource.FontUnderline
  11510. ENDCASE
  11511. ENDPROC
  11512. PROCEDURE Destroy
  11513. This.Visible = .F.
  11514. ENDPROC
  11515. INITIALIZE_AND_ADJUST
  11516. ADJUST
  11517. INITIALRESIZE
  11518. LOOPTHROUGHCONTROLS
  11519. oControl.FontSizeb
  11520. OCONTROL
  11521. ACONTROLSTATS
  11522. INITIALFORMHEIGHT
  11523. INITIALFORMWIDTH
  11524. HEIGHT
  11525. WIDTH
  11526. FONTSIZE
  11527. Textbox Spinner
  11528. OCONTROL
  11529. THISFORM
  11530. HEIGHT
  11531. ACONTROLSTATS
  11532. WIDTH    
  11533. BASECLASS
  11534. DECIMALv
  11535. Commandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner
  11536. INITIALIZE_AND_ADJUST
  11537. ADJUST
  11538. Pageframe
  11539. Commandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner
  11540. INITIALIZE_AND_ADJUST
  11541. ADJUST
  11542. CTASK
  11543. NOLDDECIMAL
  11544. THISFORM
  11545. LOCKSCREEN
  11546. CONTROLCOUNT
  11547. OCONTROL
  11548. CONTROLS    
  11549. BASECLASS
  11550. ADDTOARRAY
  11551. SETSIZE
  11552. PAGECOUNT
  11553. PAGES
  11554. INITIALFORMHEIGHT
  11555. THISFORM
  11556. HEIGHT
  11557. INITIALFORMWIDTH
  11558. WIDTH'
  11559. INITIALRESIZE
  11560. ACONTROLSTATS
  11561. adjustcontrols,
  11562. addtoarray
  11563. setsizeJ
  11564. loopthroughcontrols`
  11565. reset
  11566. THIS    
  11567. TMRSWATCH
  11568. ENABLED
  11569. THIS    
  11570. TMRSWATCH
  11571. ENABLED=
  11572. NHOUR
  11573. UPDATEDISPLAY
  11574. CSECDISPLAY
  11575. CMINDISPLAY
  11576. CHOURDISPLAY
  11577. NHOUR
  11578. LBLSECONDS
  11579. CAPTION
  11580. LBLMINUTES
  11581. LBLHOURS*
  11582. NHOUR
  11583. start,
  11584. stop^
  11585. Reset
  11586. updatedisplay
  11587. Init/
  11588. PARENT
  11589. NHOUR
  11590. UPDATEDISPLAY
  11591. ELAPSEDSECONDS
  11592. Timer,
  11593. THIS    
  11594. TMRSWATCH
  11595. ENABLED
  11596. THIS    
  11597. TMRSWATCH
  11598. ENABLED=
  11599. NHOUR
  11600. UPDATEDISPLAY
  11601. CSECDISPLAY
  11602. CMINDISPLAY
  11603. CHOURDISPLAY
  11604. NHOUR
  11605. LBLSECONDS
  11606. CAPTION
  11607. LBLMINUTES
  11608. LBLHOURS*
  11609. NHOUR
  11610. start,
  11611. stop^
  11612. Reset
  11613. updatedisplay
  11614. Init/
  11615. ".PROCEDURE handlerecord
  11616. *---------------------------------------------------------------*
  11617. *  This method is called from the CheckConflicts method and the 
  11618. *  VerifyEachChange method.  It loops through each field in the
  11619. *  current record and compares the current value with the value
  11620. *  stored in the table. If a value of 1 is passed to this method,
  11621. *  the method also compares the current value with the value in
  11622. *  the field before user made any edits.
  11623. *  RETURNS NUMERIC VALUES:
  11624. *    0 -- No Change Made to the Current Value
  11625. *    1 -- Successfully Made User-Specified Change
  11626. *     2 -- Unable to Make User-Specifed Change
  11627. *---------------------------------------------------------------*
  11628. LPARAMETERS lnScope
  11629. *--Valid values for lnScope:
  11630. *     0 - Only manage conflicts   && default
  11631. *   1 - Also prompt for changed values
  11632. * Verify parameter
  11633. IF TYPE("m.lnScope") != "N"
  11634.     m.lnScope = 0 
  11635. ENDIF
  11636. IF !BETWEEN(m.lnScope, 0, 1)
  11637.     #define WINDMSG_LOC "Ung
  11638. ltiger Wert an conflictmanager.handlerecord 
  11639. bergeben."
  11640.     WAIT WINDOW WINDMSG_LOC
  11641. ENDIF
  11642. * Declare constants & variables
  11643. #define CR_LOC CHR(13)
  11644. #define SAVE_LOC "M
  11645. chten Sie den aktuellen Wert mit Ihrer 
  11646. nderung 
  11647. berschreiben?" + CR_LOC + "(W
  11648. hlen Sie 'Abbrechen', um den urspr
  11649. nglichen Wert wiederherzustellen.)"
  11650. #define CONFLICT_LOC "Datenkonflikt"
  11651. #define VERIFY_LOC "
  11652. nderungen 
  11653. berpr
  11654. #define ORG_LOC "Urspr
  11655. nglicher Wert: "
  11656. #define CUR_LOC "Aktueller Wert: "
  11657. #define CHG_LOC "Ihre 
  11658. nderung: "
  11659. #define MEMO_LOC " ist ein Memofeld."
  11660. #define FIELD_LOC "Feld: "
  11661. #define RECORD_LOC "Datensatznummer: "
  11662. #define VALCHG1_LOC "Ein Wert wurde von einer/m anderen Benutzer/in ge
  11663. ndert."
  11664. #define VALCHG2_LOC "Ein Wert wurde ge
  11665. ndert."
  11666. LOCAL lnChoice, lnField, lcField, luOldVal, luCurVal, luField, llMadeChange, llSuccess
  11667. m.llMadeChange = .F.
  11668. m.llSuccess = .T.
  11669. * refresh current record in views before checking for conflicts
  11670. IF CURSORGETPROP('SourceType') != 3 && not a local table
  11671.     =REFRESH()
  11672. ENDIF
  11673. * Check each field in the record for conflict or value change
  11674. FOR m.lnField = 1 to FCOUNT()
  11675.     m.lnChoice = 0
  11676.     m.lcField = FIELD(m.lnField)
  11677.     IF TYPE(m.lcField) = "G"
  11678.         LOOP && Can't check general fields
  11679.     ENDIF
  11680.     m.luOldVal = OLDVAL(m.lcField)
  11681.     m.luCurVal = CURVAL(m.lcField)
  11682.     DO CASE
  11683.         * -----< check for conflicts only >--------
  11684.         CASE m.lnScope = 0
  11685.             IF m.luOldVal != m.luCurVal
  11686.                 m.llMadeChange = .T.  
  11687.                 m.lnChoice = MESSAGEBOX(VALCHG1_LOC + CR_LOC + FIELD_LOC + lcField + CR_LOC + ;
  11688.                 RECORD_LOC + ALLTRIM(STR(RECNO())) + ;
  11689.                     IIF(TYPE("m.lcField") != "M", CR_LOC + CR_LOC + ORG_LOC + THIS.String(m.luOldVal) + ;
  11690.                     CR_LOC + CUR_LOC + THIS.String(m.luCurVal) + ;
  11691.                     CR_LOC + CHG_LOC + THIS.String(EVAL(m.lcField)), CR_LOC + CR_LOC + m.lcField + MEMO_LOC) + ;
  11692.                     CR_LOC + CR_LOC + SAVE_LOC, + 3+48+0, CONFLICT_LOC)                    
  11693.             ENDIF
  11694.         * -----< check for conflicts and verify all changes >--------
  11695.         CASE m.lnScope = 1 && Verify all changes
  11696.             m.luField = EVAL(m.lcField)
  11697.             IF m.luOldVal != m.luField OR m.luCurVal != m.luField
  11698.                 m.llMadeChange = .T.  
  11699.                 m.lnChoice = MESSAGEBOX(VALCHG2_LOC + CR_LOC + FIELD_LOC + m.lcField + CR_LOC + ;
  11700.                 RECORD_LOC + ALLTRIM(STR(RECNO())) + ;
  11701.                     IIF(TYPE("m.lcField") != "M", CR_LOC + CR_LOC + ORG_LOC + THIS.String(m.luOldVal) + ;
  11702.                     CR_LOC + CUR_LOC + THIS.String(m.luCurVal) + ;
  11703.                     CR_LOC + CHG_LOC + THIS.String(EVAL(m.lcField)), CR_LOC  + CR_LOC + m.lcField + MEMO_LOC) + ;
  11704.                 CR_LOC + CR_LOC + SAVE_LOC, + 3+48+0, VERIFY_LOC)
  11705.             ENDIF
  11706.     ENDCASE
  11707.     DO CASE
  11708.     CASE m.lnChoice = 7 && No, don't save changes
  11709.         REPLACE (m.lcField) WITH m.luCurVal
  11710.     CASE m.lnChoice = 2 && Cancel, restore original value
  11711.         REPLACE (m.lcField) WITH m.luOldVal
  11712.     ENDCASE
  11713. ENDFOR
  11714. IF m.llMadeChange
  11715.     m.llSuccess = TABLEUPDATE(.F., .T.)
  11716.     RETURN IIF(m.llSuccess, 1, 2)
  11717.     RETURN 0 
  11718. ENDIF
  11719. ENDPROC
  11720. PROCEDURE string
  11721. *---------------------------------------------------------------*
  11722. *  This method is called from the HandleRecord method.  It 
  11723. *  returns the character equivalent of the value passed in as a
  11724. *  parameter.  If a memo field is passed in, a notice to this
  11725. *  effect is returned rather than the value in the memo field so
  11726. *  that potentially large amounts of text aren't displayed in the 
  11727. *  messagebox.
  11728. *---------------------------------------------------------------*
  11729. LPARAMETERS luValue
  11730. m.uType = TYPE('m.luValue')
  11731. DO CASE
  11732.     CASE m.uType = 'C'
  11733.         RETURN ALLTRIM(m.luValue)
  11734.     CASE INLIST(m.uType, 'N', 'Y')
  11735.         RETURN ALLTRIM(STR(m.luValue))
  11736.     CASE m.uType = 'D'
  11737.         RETURN DTOC(m.luValue)
  11738.     CASE m.uType = 'T'
  11739.         RETURN TTOC('m.luValue')
  11740.     CASE m.uType = 'L'
  11741.         RETURN IIF(m.luValue, '.T.', '.F.')
  11742.     CASE uType = 'M'
  11743.         RETURN 'Memo field'
  11744. ENDCASE
  11745. ENDPROC
  11746. PROCEDURE verifychanges
  11747. *---------------------------------------------------------------*
  11748. *  If any changes have been made to the table or record, prompt the
  11749. *  user to save the changes.  If the user says 'yes,' all changes
  11750. *  are saved.  Any changes made to the data by other users after
  11751. *  this user made the change and before the change was committed
  11752. *  will be lost.
  11753. *  RETURNS NUMERIC VALUES:
  11754. *    0 -- No Changes Made to the Current Values
  11755. *    1 -- Successfully Made All User Changes
  11756. *     2 -- Unable to Write One or More User-Specifed Changes to Table
  11757. *---------------------------------------------------------------*
  11758. * Declare constants & variables
  11759. #define SAVECHG_LOC 'M
  11760. chten Sie Ihre 
  11761. nderungen speichern?'
  11762. #define SAVECHG2_LOC '
  11763. nderungen speichern'
  11764. #define NOBUFF_LOC2 'Data buffering is not enabled.'
  11765. LOCAL lnChoice, llMadeChange, lnSuccess
  11766. m.llMadeChange = .F.
  11767. m.lnSuccess = 0
  11768. * If the user has changed anything, prompt to save or discard changes
  11769. DO CASE
  11770.     CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
  11771.         IF '2' $ GETFLDSTATE(-1)
  11772.             m.llMadeChange = .T.
  11773.         ENDIF
  11774.     CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
  11775.         IF GETNEXTMODIFIED(0) > 0
  11776.             m.llMadeChange = .T.
  11777.         ENDIF
  11778.     OTHERWISE
  11779.         WAIT WINDOW NOBUFF_LOC NOWAIT
  11780. ENDCASE
  11781. IF m.llMadeChange
  11782.     m.lnChoice = MESSAGEBOX(SAVECHG_LOC, 4+32, SAVECHG2_LOC)
  11783.     IF m.lnChoice = 6 && Yes
  11784.         m.lnSuccess = IIF(TABLEUPDATE(.T.,.T.), 1, 2)
  11785.     ELSE
  11786.         =TABLEREVERT(.T.)
  11787.     ENDIF
  11788. ENDIF    
  11789. RETURN m.lnSuccess
  11790. ENDPROC
  11791. PROCEDURE verifyeachchange
  11792. *--------------------------------------------------------------------
  11793. *  If any changes have been made to the table or record, for each
  11794. *  change, display the old value and the new value, prompting the
  11795. *  user to save or discard the change.  Conflict management is also
  11796. *  included in the HandleRecord method.
  11797. *  RETURNS NUMERIC VALUES:
  11798. *    0 -- No Changes Made to the Current Values
  11799. *    1 -- Successfully Made User-Specified Changes
  11800. *     2 -- Unable to Write One or More User-Specifed Changes to Table
  11801. *---------------------------------------------------------------*
  11802. #define NOBUFF_LOC3 'Data buffering is not enabled.'
  11803. LOCAL lnSuccess, lnRec
  11804. m.lnSuccess = 0
  11805. DO CASE
  11806.     CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
  11807.         IF '2' $ GETFLDSTATE(-1)                 && Data has changed
  11808.             m.lnSuccess = THIS.HandleRecord(1)
  11809.         ENDIF    
  11810.     CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
  11811.         m.lnRec = GETNEXTMODIFIED(0)
  11812.         DO WHILE m.lnRec > 0
  11813.             GO m.lnRec
  11814.             m.lnSuccess = IIF(m.lnSuccess != 2, THIS.HandleRecord(1), 2)
  11815.             m.lnRec = GETNEXTMODIFIED(m.lnRec)    
  11816.         ENDDO
  11817.     OTHERWISE                                     && No Buffering
  11818.         WAIT WINDOW NOBUFF_LOC NOWAIT
  11819. ENDCASE
  11820. RETURN m.lnSuccess
  11821. ENDPROC
  11822. PROCEDURE checkconflicts
  11823. *---------------------------------------------------------------*
  11824. *  Checks to see whether another user has changed the value 
  11825. *  stored in a table.  If so, calls HandleRecord to display
  11826. *  the new value and allow the user to decide what to do.
  11827. *  RETURNS NUMERIC VALUES:
  11828. *    0 -- No Changes Made to the Current Values
  11829. *    1 -- Successfully Made User-Specified Changes
  11830. *     2 -- Unable to Make Write One or More User-Specifed Changes to Table
  11831. *---------------------------------------------------------------*
  11832. #define NOBUFF1_LOC 'Zwischenspeichern von Daten nicht aktiviert.'
  11833. LOCAL lnSuccess, llnRec
  11834. m.lnSuccess = 0  
  11835. DO CASE
  11836.     CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
  11837.         IF '2' $ GETFLDSTATE(-1)                 && Data has changed
  11838.             m.lnSuccess = THIS.HandleRecord(0)
  11839.         ENDIF    
  11840.     CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
  11841.         m.llnRec = GETNEXTMODIFIED(0)
  11842.         DO WHILE m.llnRec > 0
  11843.             GO m.llnRec
  11844.             m.lnSuccess = IIF(m.lnSuccess != 2, THIS.HandleRecord(0), 2)
  11845.             m.llnRec = GETNEXTMODIFIED(m.llnRec)    
  11846.         ENDDO
  11847.     OTHERWISE                                     && no buffering
  11848.         WAIT WINDOW NOBUFF_LOC NOWAIT
  11849. ENDCASE
  11850. RETURN m.lnSuccess
  11851. ENDPROC
  11852. WINDOW
  11853. VPROCEDURE domci
  11854. LPARAMETERS cMCIcmd
  11855. *!* This method takes a MCI command string and executes it using
  11856. *!* the Windows API function mciSendString
  11857. *!* If the function executes successfully, the result is returned.
  11858. *!* Otherwise, the error string is returned.
  11859. cRetString = space(80)
  11860. nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
  11861. cErr = THIS.getMCIerror(nRetValue)
  11862. IF nRetValue > 0
  11863.     RETURN CeRR
  11864. ENDIF
  11865. RETURN TRIM(STRTRAN(cRetString,chr(0),""))
  11866. ENDPROC
  11867. PROCEDURE getmcierror
  11868. LPARAMETERS cError
  11869. LOCAL lcErrorString,nError
  11870. *!* This method is called from the doMCI to retrieve the last
  11871. *!* MCI error string.
  11872. *!* This function also saves the last error number and string
  11873. *!* into properties associated with the form.
  11874. nError=0
  11875. IF TYPE("cError")="C"
  11876.    IF LEFT(cError,7)="*ERROR*"
  11877.       nError=val(substr(cError,8))
  11878.    ENDIF
  11879. ENDIF   
  11880. IF TYPE("cError")="N"
  11881.   nError=cError
  11882. ENDIF
  11883. cErrorString=SPACE(256)  
  11884. =mciGetErrorString(nError,@cErrorString,len(cErrorString))
  11885. THIS.MCIerror = nError
  11886. THIS.MCIerrorString = cErrorString
  11887. RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
  11888. ENDPROC
  11889. PROCEDURE openvideo
  11890. *!* Get needed properties into variables
  11891. cControlSource = THIS.controlSource
  11892. IF EMPTY(cControlSource) THEN
  11893.     cFileName = THIS.videoFile
  11894.     IF EMPTY(cFileName) THEN
  11895.         MESSAGEBOX("No filename specified or control source specified!")
  11896.         RETURN
  11897.     ENDIF
  11898.     cFileName = ALLTRIM(&cControlSource)
  11899.     IF EMPTY(cFileName) THEN
  11900.         RETURN
  11901.     ENDIF
  11902. ENDIF
  11903. cAlias = THIS.MCIalias
  11904. IF EMPTY(cAlias) THEN
  11905.     cAlias = THIS.name
  11906.     THIS.MCIalias = cAlias
  11907. ENDIF
  11908. _SCREEN.MousePointer = 11
  11909. *!* If video is already loaded, then close it
  11910. cCmd = ("STATUS " + cAlias + " READY")
  11911. IF THIS.doMCI(cCmd) = "true" THEN
  11912.     *!* If one is, close it
  11913.     cCMD = ("CLOSE " + cAlias + " WAIT")
  11914.     THIS.doMCI(cCmd)
  11915. ENDIF
  11916. *!* Need to use window handle functions in FoxTools
  11917. *!*    SET LIBRARY TO HOME() + ".\FOXTOOLS.FLL" PR
  11918. SET LIBRARY to FOXTOOLS.FLL
  11919. EXTERNAL PROCEDURE MainHWND
  11920. EXTERNAL PROCEDURE _WhToHwnd
  11921. EXTERNAL PROCEDURE _WOnTop
  11922. * Returns Handle of Main VFP Window
  11923. Main_hWnd = MainHWND()    
  11924. * Get Handle of the form with FOXTOOLS.FLL
  11925. cur_window = _WhToHwnd(_WOnTop())
  11926. NullPointer = 0
  11927. *!* Set up open MCI command into string variable
  11928. cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ;
  11929.   ' style child parent ' + ALLTRIM(STR(cur_window)) + ' WAIT')
  11930. THIS.doMCI(cCmd)
  11931. *!* Check to see if MCI command succeeded
  11932. IF THIS.MCIerror > 0 THEN
  11933.     messagebox(THIS.MCIerrorString)
  11934.     _SCREEN.MousePointer = 0
  11935.     RETURN
  11936.     *!* It does have visual media, so we need to set up the window
  11937.     *!* it will play in.
  11938.     *!* Get the window handle of the window playing the video
  11939.     cCmd = "status " + cAlias + " window handle wait"
  11940.     hWin = INT(VAL(THIS.doMCI(cCmd)))
  11941.     *!* Once we have the window handle, we need to position
  11942.     *!* the video window to be the same position and size
  11943.     *!* as our player rectangle on the form
  11944.     x1Pos = THIS.LEFT
  11945.     y1Pos = THIS.TOP
  11946.     x2Pos = x1Pos + THIS.WIDTH
  11947.     y2Pos = y1Pos + THIS.HEIGHT
  11948.     *!* Use the SetWindowPos Windows function to set position and size
  11949.     setWindowPos(hWin,0,x1Pos,y1Pos,x2Pos,y2Pos,0)
  11950.     *!* Everything's done, let's show the video
  11951.     cCmd = ("WINDOW " + cAlias + " state show")
  11952.     THIS.doMCI(cCmd)
  11953. ENDIF
  11954. *!* Set the device to use milliseconds when setting/getting position
  11955. THIS.doMCI("SET " + cAlias + " time format milliseconds")
  11956. IF THIS.autoPlay = .T. THEN
  11957.     THIS.playVideo
  11958. ENDIF
  11959. _SCREEN.MousePointer = 0
  11960. ENDPROC
  11961. PROCEDURE playvideo
  11962. cAlias = THIS.MCIalias
  11963. *!* First need to see if the media is at the end 
  11964. *!* by comparing the total length with the current position
  11965. nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  11966. nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
  11967. IF nMediaPosition >= nMediaLength THEN
  11968.     *!* The media is at the end, so we need to seek back to the start
  11969.     *!* of the clip before playing
  11970.     THIS.doMCI("SEEK " + cAlias + " to start WAIT")
  11971. ENDIF
  11972. *!* Now we can play the media
  11973. THIS.doMCI("PLAY " + cAlias)
  11974. IF THIS.MCIerror > 0 THEN
  11975.     THIS.showMCIerror
  11976. ENDIF
  11977. IF THIS.autoRepeat = .T. THEN
  11978.     THIS.tmrCheckMode.INTERVAL = 100
  11979. ENDIF
  11980. ENDPROC
  11981. PROCEDURE pausevideo
  11982. cAlias = THIS.MCIalias
  11983. *!* Check to see if there is media acutally playing
  11984. IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
  11985.     *!* Yes there is, so execute the PAUSE MCI command
  11986.     THIS.doMCI("PAUSE " + cAlias)
  11987.     IF THIS.MCIerror > 0 THEN
  11988.         THIS.showMCIerror
  11989.     ENDIF
  11990.     IF THIS.autoRepeat = .T. THEN
  11991.         THIS.tmrCheckMode.INTERVAL = 0
  11992.     ENDIF
  11993. ENDIF
  11994. ENDPROC
  11995. PROCEDURE showmcierror
  11996. MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
  11997. ENDPROC
  11998. PROCEDURE closevideo
  11999. *!* If video is not already closed, then close it
  12000. cCmd = ("STATUS " + THIS.MCIalias + " READY")
  12001. IF THIS.doMCI(cCmd) = "true" THEN
  12002.     *!* If one is, close it
  12003.     cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
  12004.     THIS.doMCI(cCmd)
  12005.     IF THIS.MCIerror > 0 THEN
  12006.         THIS.showMCIerror
  12007.     ENDIF
  12008.     IF THIS.autoRepeat = .T. THEN
  12009.         THIS.tmrCheckMode.INTERVAL = 0
  12010.     ENDIF
  12011. ENDIF
  12012. ENDPROC
  12013. PROCEDURE setposition
  12014. PARAMETERS cPosition
  12015. cAlias = THIS.MCIalias
  12016. IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
  12017.     cPosCmd = "to " + cPosition
  12018.     nPosition = VAL(cPosition)
  12019.     IF EMPTY(nPosition) THEN
  12020.         RETURN
  12021.     ELSE
  12022.         *!* Check to make sure position is not greater than the length
  12023.         nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
  12024.         IF nMediaLength < nPosition THEN
  12025.             RETURN
  12026.         ELSE
  12027.             cPosCmd = "to " + STR(nPosition)
  12028.         ENDIF
  12029.     ENDIF
  12030. ENDIF
  12031. *!* Make sure video is loaded
  12032. cCmd = ("STATUS " + cAlias + " READY")
  12033. IF THIS.doMCI(cCmd) = "true" THEN
  12034.     cCmd = "SEEK " + cAlias + " " + cPosCmd
  12035.     THIS.doMCI(cCmd)
  12036. ENDIF
  12037. ENDPROC
  12038. PROCEDURE Destroy
  12039. THIS.closeVideo
  12040. ENDPROC
  12041. PROCEDURE Init
  12042. *!* This is the primary Windows API function that is used to 
  12043. *!* send MCI commands
  12044. DECLARE INTEGER mciSendString ;
  12045.    IN WinMM.DLL ;
  12046.    STRING cMCIString,;
  12047.    STRING @cRetString,;
  12048.    INTEGER nRetLength,;
  12049.    INTEGER hInstance
  12050. *!* This function allows us to retrieve the last MCI error that occured
  12051. DECLARE INTEGER mciGetErrorString ;
  12052.    IN WINMM.DLL ;
  12053.    INTEGER nErrorno, ;
  12054.    STRING @cBuffer, ;
  12055.    INTEGER nBufSize
  12056. *!* When MCI plays a video, it creates its own Window.  By using
  12057. *!* this Windows API function we can position this Window to be
  12058. *!* in the same position as our Player rectangle on the form
  12059. DECLARE integer SetWindowPos ;
  12060.     IN User32 ;
  12061.     integer, integer, integer, integer, integer, integer, integer
  12062. ENDPROC
  12063. PROCEDURE Refresh
  12064. IF THIS.autoOpen = .T. THEN
  12065.     THIS.openVideo
  12066. ENDIF
  12067. ENDPROC
  12068. PROCEDURE Error
  12069. #DEFINE INVALID_CONTROLSOURCE_LOC "Ung
  12070. ltige Steuerelementquelle angegeben."
  12071. LPARAMETERS nError, cMethod, nLine
  12072. DO CASE
  12073.     CASE nError = 12 and cMethod = "openvideo"
  12074.         messageBox(INVALID_CONTROLSOURCE_LOC)
  12075.     OTHERWISE
  12076.         ERROR (nError)
  12077. ENDCASE
  12078. ENDPROC
  12079. gimmicks\dmovie\dmovie.prg
  12080. c:\temp\
  12081. dmovie.fxp
  12082. gimmicks\dmovie\
  12083. dmovie.scx
  12084. gimmicks\dmovie\
  12085. dmovie.sct
  12086. gimmicks\dmovie\icons\
  12087. dooropen.ico
  12088. paint_4.ico
  12089. arw01rt.ico
  12090. msgbox01.ico
  12091. gimmicks\dmovie\readme.prg
  12092. readme.fxp
  12093. klassen\graphics\
  12094. h_point.cur
  12095. klassen\
  12096. _multimedia.vcx
  12097. klassen\
  12098. _multimedia.vct
  12099. klassen\
  12100. _base.vcx
  12101. klassen\
  12102. _base.vct
  12103. klassen\setobjrf.prg
  12104. setobjrf.fxp
  12105. gimmicks\dmovie\
  12106. samples.vcx
  12107. gimmicks\dmovie\
  12108. samples.vct
  12109.