PropertiesGet.xba 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="PropertiesGet" script:language="StarBasic">
  4. REM =======================================================================================================================
  5. REM === The Access2Base library is a part of the LibreOffice project. ===
  6. REM === Full documentation is available on http://www.access2base.com ===
  7. REM =======================================================================================================================
  8. Option Explicit
  9. REM -----------------------------------------------------------------------------------------------------------------------
  10. Public Function getAbsolutePosition(Optional pvObject As Variant) As Boolean
  11. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getAbsolutePosition&quot;)
  12. getAbsolutePosition = PropertiesGet._getProperty(pvObject, &quot;AbsolutePosition&quot;)
  13. End Function &apos; getAbsolutePosition
  14. REM -----------------------------------------------------------------------------------------------------------------------
  15. Public Function getAllowAdditions(Optional pvObject As Variant) As Boolean
  16. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getAllowAdditions&quot;)
  17. getAllowAdditions = PropertiesGet._getProperty(pvObject, &quot;AllowAdditions&quot;)
  18. End Function &apos; getAllowAdditions
  19. REM -----------------------------------------------------------------------------------------------------------------------
  20. Public Function getAllowDeletions(Optional pvObject As Variant) As Boolean
  21. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getAllowDeletions&quot;)
  22. getAllowDeletions = PropertiesGet._getProperty(pvObject, &quot;AllowDeletions&quot;)
  23. End Function &apos; getAllowDeletions
  24. REM -----------------------------------------------------------------------------------------------------------------------
  25. Public Function getAllowEdits(Optional pvObject As Variant) As Boolean
  26. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getAllowEdits&quot;)
  27. getAllowEdits = PropertiesGet._getProperty(pvObject, &quot;AllowEdits&quot;)
  28. End Function &apos; getAllowEdits
  29. REM -----------------------------------------------------------------------------------------------------------------------
  30. Public Function getBackColor(Optional pvObject As Variant) As Variant
  31. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBackColor&quot;)
  32. getBackColor = PropertiesGet._getProperty(pvObject, &quot;BackColor&quot;)
  33. End Function &apos; getBackColor
  34. REM -----------------------------------------------------------------------------------------------------------------------
  35. Public Function getBeginGroup(Optional pvObject As Variant) As Variant
  36. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBeginGroup&quot;)
  37. getBeginGroup = PropertiesGet._getProperty(pvObject, &quot;BeginGroup&quot;)
  38. End Function &apos; getBeginGroup
  39. REM -----------------------------------------------------------------------------------------------------------------------
  40. Public Function getBOF(Optional pvObject As Variant) As Variant
  41. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBOF&quot;)
  42. getBOF = PropertiesGet._getProperty(pvObject, &quot;BOF&quot;)
  43. End Function &apos; getBOF
  44. REM -----------------------------------------------------------------------------------------------------------------------
  45. Public Function getBookmark(Optional pvObject As Variant) As Variant
  46. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBookmark&quot;)
  47. getBookmark = PropertiesGet._getProperty(pvObject, &quot;Bookmark&quot;)
  48. End Function &apos; getBookmark
  49. REM -----------------------------------------------------------------------------------------------------------------------
  50. Public Function getBookmarkable(Optional pvObject As Variant) As Variant
  51. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBookmarkable&quot;)
  52. getBookmarkable = PropertiesGet._getProperty(pvObject, &quot;Bookmarkable&quot;)
  53. End Function &apos; getBookmarkable
  54. REM -----------------------------------------------------------------------------------------------------------------------
  55. Public Function getBorderColor(Optional pvObject As Variant) As Variant
  56. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBorderColor&quot;)
  57. getBorderColor = PropertiesGet._getProperty(pvObject, &quot;BorderColor&quot;)
  58. End Function &apos; getBorderColor
  59. REM -----------------------------------------------------------------------------------------------------------------------
  60. Public Function getBorderStyle(Optional pvObject As Variant) As Variant
  61. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBorderStyle&quot;)
  62. getBorderStyle = PropertiesGet._getProperty(pvObject, &quot;BorderStyle&quot;)
  63. End Function &apos; getBorderStyle
  64. REM -----------------------------------------------------------------------------------------------------------------------
  65. Public Function getBuiltIn(Optional pvObject As Variant) As Boolean
  66. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getBuiltIn&quot;)
  67. getBuiltIn = PropertiesGet._getProperty(pvObject, &quot;BuiltIn&quot;)
  68. End Function &apos; getBuiltIn
  69. REM -----------------------------------------------------------------------------------------------------------------------
  70. Public Function getButtonLeft(Optional pvObject As Variant) As Boolean
  71. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getButtonLeft&quot;)
  72. getButtonLeft = PropertiesGet._getProperty(pvObject, &quot;ButtonLeft&quot;)
  73. End Function &apos; getButtonLeft
  74. REM -----------------------------------------------------------------------------------------------------------------------
  75. Public Function getButtonMiddle(Optional pvObject As Variant) As Boolean
  76. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getButtonMiddle&quot;)
  77. getButtonMiddle = PropertiesGet._getProperty(pvObject, &quot;ButtonMiddle&quot;)
  78. End Function &apos; getButtonMiddle
  79. REM -----------------------------------------------------------------------------------------------------------------------
  80. Public Function getButtonRight(Optional pvObject As Variant) As Boolean
  81. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getButtonRight&quot;)
  82. getButtonRight = PropertiesGet._getProperty(pvObject, &quot;ButtonRight&quot;)
  83. End Function &apos; getButtonRight
  84. REM -----------------------------------------------------------------------------------------------------------------------
  85. Public Function getCancel(Optional pvObject As Variant) As Variant
  86. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getCancel&quot;)
  87. getCancel = PropertiesGet._getProperty(pvObject, &quot;Cancel&quot;)
  88. End Function &apos; getCancel
  89. REM -----------------------------------------------------------------------------------------------------------------------
  90. Public Function getCaption(Optional pvObject As Variant) As Variant
  91. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getCaption&quot;)
  92. getCaption = PropertiesGet._getProperty(pvObject, &quot;Caption&quot;)
  93. End Function &apos; getCaption
  94. REM -----------------------------------------------------------------------------------------------------------------------
  95. Public Function getClickCount(Optional pvObject As Variant) As Long
  96. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getClickCount&quot;)
  97. getClickCount = PropertiesGet._getProperty(pvObject, &quot;ClickCount&quot;)
  98. End Function &apos; getClickCount
  99. REM -----------------------------------------------------------------------------------------------------------------------
  100. Public Function getContextShortcut(Optional pvObject As Variant) As String
  101. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getContextShortcut&quot;)
  102. getContextShortcut = PropertiesGet._getProperty(pvObject, &quot;ContextShortcut&quot;)
  103. End Function &apos; getContextShortcut
  104. REM -----------------------------------------------------------------------------------------------------------------------
  105. Public Function getControlSource(Optional pvObject As Variant) As Variant
  106. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getControlSource&quot;)
  107. getControlSource = PropertiesGet._getProperty(pvObject, &quot;ControlSource&quot;)
  108. End Function &apos; getControlSource
  109. REM -----------------------------------------------------------------------------------------------------------------------
  110. Public Function getControlTipText(Optional pvObject As Variant) As Variant
  111. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getControlTipText&quot;)
  112. getControlTipText = PropertiesGet._getProperty(pvObject, &quot;ControlTipText&quot;)
  113. End Function &apos; getControlTipText
  114. REM -----------------------------------------------------------------------------------------------------------------------
  115. Public Function getControlType(Optional pvObject As Variant) As Integer
  116. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getControlType&quot;)
  117. getControlType = PropertiesGet._getProperty(pvObject, &quot;ControlType&quot;)
  118. End Function &apos; getControlType
  119. REM -----------------------------------------------------------------------------------------------------------------------
  120. Public Function getCount(Optional pvObject As Variant) As Integer
  121. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getCount&quot;)
  122. getCount = PropertiesGet._getProperty(pvObject, &quot;Count&quot;)
  123. End Function &apos; getCount
  124. REM -----------------------------------------------------------------------------------------------------------------------
  125. Public Function getCurrentRecord(Optional pvObject As Variant) As Variant
  126. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getCurrentRecord&quot;)
  127. getCurrentRecord = PropertiesGet._getProperty(pvObject, &quot;CurrentRecord&quot;)
  128. End Function &apos; getCurrentRecord
  129. REM -----------------------------------------------------------------------------------------------------------------------
  130. Public Function getDataType(Optional pvObject As Variant) As Variant
  131. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getDataType&quot;)
  132. getDataType = PropertiesGet._getProperty(pvObject, &quot;DataType&quot;)
  133. End Function &apos; getDataType
  134. REM -----------------------------------------------------------------------------------------------------------------------
  135. Public Function getDbType(Optional pvObject As Variant) As Variant
  136. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getDbType&quot;)
  137. getDbType = PropertiesGet._getProperty(pvObject, &quot;DbType&quot;)
  138. End Function &apos; getDbType
  139. REM -----------------------------------------------------------------------------------------------------------------------
  140. Public Function getDefault(Optional pvObject As Variant) As Variant
  141. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getDefault&quot;)
  142. getDefault = PropertiesGet._getProperty(pvObject, &quot;Default&quot;)
  143. End Function &apos; getDefault
  144. REM -----------------------------------------------------------------------------------------------------------------------
  145. Public Function getDefaultValue(Optional pvObject As Variant) As Variant
  146. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getDefaultValue&quot;)
  147. getDefaultValue = PropertiesGet._getProperty(pvObject, &quot;DefaultValue&quot;)
  148. End Function &apos; getDefaultValue
  149. REM -----------------------------------------------------------------------------------------------------------------------
  150. Public Function getDescription(Optional pvObject As Variant) As Variant
  151. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getDescription&quot;)
  152. getDescription = PropertiesGet._getProperty(pvObject, &quot;Description&quot;)
  153. End Function &apos; getDescription
  154. REM -----------------------------------------------------------------------------------------------------------------------
  155. Public Function getEditMode(Optional pvObject As Variant) As Variant
  156. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getEditMode&quot;)
  157. getEditMode = PropertiesGet._getProperty(pvObject, &quot;EditMode&quot;)
  158. End Function &apos; getEditMode
  159. REM -----------------------------------------------------------------------------------------------------------------------
  160. Public Function getEnabled(Optional pvObject As Variant) As Variant
  161. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getEnabled&quot;)
  162. getEnabled = PropertiesGet._getProperty(pvObject, &quot;Enabled&quot;)
  163. End Function &apos; getEnabled
  164. REM -----------------------------------------------------------------------------------------------------------------------
  165. Public Function getEOF(Optional pvObject As Variant) As Variant
  166. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getEOF&quot;)
  167. getEOF = PropertiesGet._getProperty(pvObject, &quot;EOF&quot;)
  168. End Function &apos; getEOF
  169. REM -----------------------------------------------------------------------------------------------------------------------
  170. Public Function getEventName(Optional pvObject As Variant) As String
  171. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getEventName&quot;)
  172. getEventName = PropertiesGet._getProperty(pvObject, &quot;EventName&quot;)
  173. End Function &apos; getEventName
  174. REM -----------------------------------------------------------------------------------------------------------------------
  175. Public Function getEventType(Optional pvObject As Variant) As String
  176. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getEventType&quot;)
  177. getEventType = PropertiesGet._getProperty(pvObject, &quot;EventType&quot;)
  178. End Function &apos; getEventType
  179. REM -----------------------------------------------------------------------------------------------------------------------
  180. Public Function getFieldSize(Optional pvObject As Variant) As Variant
  181. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFieldSize&quot;)
  182. getFieldSize = PropertiesGet._getProperty(pvObject, &quot;FieldSize&quot;)
  183. End Function &apos; getFieldSize
  184. REM -----------------------------------------------------------------------------------------------------------------------
  185. Public Function getFilter(Optional pvObject As Variant) As String
  186. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFilter&quot;)
  187. getFilter = PropertiesGet._getProperty(pvObject, &quot;Filter&quot;)
  188. End Function &apos; getFilter
  189. REM -----------------------------------------------------------------------------------------------------------------------
  190. Public Function getFilterOn(Optional pvObject As Variant) As Boolean
  191. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFilterOn&quot;)
  192. getFilterOn = PropertiesGet._getProperty(pvObject, &quot;FilterOn&quot;)
  193. End Function &apos; getFilterOn
  194. REM -----------------------------------------------------------------------------------------------------------------------
  195. Public Function getFocusChangeTemporary(Optional pvObject As Variant) As Boolean
  196. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFocusChangeTemporary&quot;)
  197. getFocusChangeTemporary = PropertiesGet._getProperty(pvObject, &quot;FocusChangeTemporary&quot;)
  198. End Function &apos; getFocusChangeTemporary
  199. REM -----------------------------------------------------------------------------------------------------------------------
  200. Public Function getFontBold(Optional pvObject As Variant) As Variant
  201. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontBold&quot;)
  202. getFontBold = PropertiesGet._getProperty(pvObject, &quot;FontBold&quot;)
  203. End Function &apos; getFontBold
  204. REM -----------------------------------------------------------------------------------------------------------------------
  205. Public Function getFontItalic(Optional pvObject As Variant) As Variant
  206. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontItalic&quot;)
  207. getFontItalic = PropertiesGet._getProperty(pvObject, &quot;FontItalic&quot;)
  208. End Function &apos; getFontItalic
  209. REM -----------------------------------------------------------------------------------------------------------------------
  210. Public Function getFontName(Optional pvObject As Variant) As Variant
  211. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontName&quot;)
  212. getFontName = PropertiesGet._getProperty(pvObject, &quot;FontName&quot;)
  213. End Function &apos; getFontName
  214. REM -----------------------------------------------------------------------------------------------------------------------
  215. Public Function getFontSize(Optional pvObject As Variant) As Variant
  216. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontSize&quot;)
  217. getFontSize = PropertiesGet._getProperty(pvObject, &quot;FontSize&quot;)
  218. End Function &apos; getFontSize
  219. REM -----------------------------------------------------------------------------------------------------------------------
  220. Public Function getFontUnderline(Optional pvObject As Variant) As Variant
  221. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontUnderline&quot;)
  222. getFontUnderline = PropertiesGet._getProperty(pvObject, &quot;FontUnderline&quot;)
  223. End Function &apos; getFontUnderline
  224. REM -----------------------------------------------------------------------------------------------------------------------
  225. Public Function getFontWeight(Optional pvObject As Variant) As Variant
  226. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFontWeight&quot;)
  227. getFontWeight = PropertiesGet._getProperty(pvObject, &quot;FontWeight&quot;)
  228. End Function &apos; getFontWeight
  229. REM -----------------------------------------------------------------------------------------------------------------------
  230. Public Function getForm(Optional pvObject As Variant) As Variant &apos; Return Subform pseudo
  231. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getForm&quot;)
  232. getForm = PropertiesGet._getProperty(pvObject, &quot;Form&quot;)
  233. End Function &apos; getForm
  234. REM -----------------------------------------------------------------------------------------------------------------------
  235. Public Function getFormat(Optional pvObject As Variant) As Variant
  236. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getFormat&quot;)
  237. getFormat = PropertiesGet._getProperty(pvObject, &quot;Format&quot;)
  238. End Function &apos; getFormat
  239. REM -----------------------------------------------------------------------------------------------------------------------
  240. Public Function getHeight(Optional pvObject As Variant) As Long
  241. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getHeight&quot;)
  242. getHeight = PropertiesGet._getProperty(pvObject, &quot;Height&quot;)
  243. End Function &apos; getHeight
  244. REM -----------------------------------------------------------------------------------------------------------------------
  245. Public Function getForeColor(Optional pvObject As Variant) As Variant
  246. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getForeColor&quot;)
  247. getForeColor = PropertiesGet._getProperty(pvObject, &quot;ForeColor&quot;)
  248. End Function &apos; getForeColor
  249. REM -----------------------------------------------------------------------------------------------------------------------
  250. Public Function getIsLoaded(Optional pvObject As Variant) As Boolean
  251. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getIsLoaded&quot;)
  252. getIsLoaded = PropertiesGet._getProperty(pvObject, &quot;IsLoaded&quot;)
  253. End Function &apos; getIsLoaded
  254. REM -----------------------------------------------------------------------------------------------------------------------
  255. Public Function getItemData(Optional pvObject As Variant, ByVal Optional pvIndex As Variant) As Variant
  256. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getItemData&quot;)
  257. If IsMissing(pvIndex) Then
  258. getItemData = PropertiesGet._getProperty(pvObject, &quot;ItemData&quot;)
  259. Else
  260. getItemData = PropertiesGet._getProperty(pvObject, &quot;ItemData&quot;, pvIndex)
  261. End If
  262. End Function &apos; getItemData
  263. REM -----------------------------------------------------------------------------------------------------------------------
  264. Public Function getKeyAlt(Optional pvObject As Variant) As Boolean
  265. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyAlt&quot;)
  266. getKeyAlt = PropertiesGet._getProperty(pvObject, &quot;KeyAlt&quot;)
  267. End Function &apos; getKeyAlt
  268. REM -----------------------------------------------------------------------------------------------------------------------
  269. Public Function getKeyChar(Optional pvObject As Variant) As String
  270. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyChar&quot;)
  271. getKeyChar = PropertiesGet._getProperty(pvObject, &quot;KeyChar&quot;)
  272. End Function &apos; getKeyChar
  273. REM -----------------------------------------------------------------------------------------------------------------------
  274. Public Function getKeyCode(Optional pvObject As Variant) As Integer
  275. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyCode&quot;)
  276. getKeyCode = PropertiesGet._getProperty(pvObject, &quot;KeyCode&quot;)
  277. End Function &apos; getKeyCode
  278. REM -----------------------------------------------------------------------------------------------------------------------
  279. Public Function getKeyCtrl(Optional pvObject As Variant) As Boolean
  280. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyCtrl&quot;)
  281. getKeyCtrl = PropertiesGet._getProperty(pvObject, &quot;KeyCtrl&quot;)
  282. End Function &apos; getKeyCtrl
  283. REM -----------------------------------------------------------------------------------------------------------------------
  284. Public Function getKeyFunction(Optional pvObject As Variant) As Integer
  285. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyFunction&quot;)
  286. getKeyFunction = PropertiesGet._getProperty(pvObject, &quot;KeyFunction&quot;)
  287. End Function &apos; getKeyFunction
  288. REM -----------------------------------------------------------------------------------------------------------------------
  289. Public Function getKeyShift(pvObject As Variant) As Boolean
  290. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getKeyShift&quot;)
  291. getKeyShift = PropertiesGet._getProperty(pvObject, &quot;KeyShift&quot;)
  292. End Function &apos; getKeyShift
  293. REM -----------------------------------------------------------------------------------------------------------------------
  294. Public Function getLinkChildFields(Optional pvObject As Variant, ByVal Optional pvIndex As Variant) As Variant
  295. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getLinkChildFields&quot;)
  296. If IsMissing(pvObject) Then
  297. getLinkChildFields = PropertiesGet._getProperty(pvObject, &quot;LinkChildFields&quot;)
  298. Else
  299. getLinkChildFields = PropertiesGet._getProperty(pvObject, &quot;LinkChildFields&quot;, pvIndex)
  300. End If
  301. End Function &apos; getLinkChildFields
  302. REM -----------------------------------------------------------------------------------------------------------------------
  303. Public Function getLinkMasterFields(Optional pvObject As Variant, ByVal Optional pvIndex As Variant) As Variant
  304. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getLinkMasterFields&quot;)
  305. If IsMissing(pvIndex) Then
  306. getLinkMasterFields = PropertiesGet._getProperty(pvObject, &quot;LinkMasterFields&quot;)
  307. Else
  308. getLinkMasterFields = PropertiesGet._getProperty(pvObject, &quot;LinkMasterFields&quot;, pvIndex)
  309. End If
  310. End Function &apos; getLinkMasterFields
  311. REM -----------------------------------------------------------------------------------------------------------------------
  312. Public Function getListCount(Optional pvObject As Variant) As Variant
  313. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getListCount&quot;)
  314. getListCount = PropertiesGet._getProperty(pvObject, &quot;ListCount&quot;)
  315. End Function &apos; getListCount
  316. REM -----------------------------------------------------------------------------------------------------------------------
  317. Public Function getListIndex(Optional pvObject As Variant) As Variant
  318. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getListIndex&quot;)
  319. getListIndex = PropertiesGet._getProperty(pvObject, &quot;ListIndex&quot;)
  320. End Function &apos; getListIndex
  321. REM -----------------------------------------------------------------------------------------------------------------------
  322. Public Function getLocked(Optional pvObject As Variant) As Variant
  323. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getLocked&quot;)
  324. getLocked = PropertiesGet._getProperty(pvObject, &quot;Locked&quot;)
  325. End Function &apos; getLocked
  326. REM -----------------------------------------------------------------------------------------------------------------------
  327. Public Function getMultiSelect(Optional pvObject As Variant) As Variant
  328. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getMultiSelect&quot;)
  329. getMultiSelect = PropertiesGet._getProperty(pvObject, &quot;MultiSelect&quot;)
  330. End Function &apos; getMultiSelect
  331. REM -----------------------------------------------------------------------------------------------------------------------
  332. Public Function getName(Optional pvObject As Variant) As String
  333. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getName&quot;)
  334. getName = PropertiesGet._getProperty(pvObject, &quot;Name&quot;)
  335. End Function &apos; getName
  336. REM -----------------------------------------------------------------------------------------------------------------------
  337. Public Function getObjectType(Optional pvObject As Variant) As String
  338. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getObjectType&quot;)
  339. getObjectType = PropertiesGet._getProperty(pvObject, &quot;ObjectType&quot;)
  340. End Function &apos; getObjectType
  341. REM -----------------------------------------------------------------------------------------------------------------------
  342. Public Function getOpenArgs(Optional pvObject As Variant) As String
  343. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getOpenArgs&quot;)
  344. getOpenArgs = PropertiesGet._getProperty(pvObject, &quot;OpenArgs&quot;)
  345. End Function &apos; getOpenArgs
  346. REM -----------------------------------------------------------------------------------------------------------------------
  347. Public Function getOptionGroup(Optional pvObject As Variant, pvName As variant) As Variant
  348. &apos; Return an OptionGroup object based on its name
  349. Utils._SetCalledSub(&quot;getOptionGroup&quot;)
  350. If IsMissing(pvObject) Or IsMissing(pvName) Then Call _TraceArguments()
  351. If _ErrorHandler() Then On Local Error Goto Error_Function
  352. If Not Utils._CheckArgument(pvObject, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  353. If Not Utils._CheckArgument(pvName, 2, vbString) Then Goto Exit_Function
  354. getOptionGroup = pvObject.OptionGroup(pvName)
  355. Exit_Function:
  356. Utils._ResetCalledSub(&quot;getOptionGroup&quot;)
  357. Exit Function
  358. Error_Function:
  359. TraceError(TRACEABORT, Err, &quot;getOptionGroup&quot;, Erl)
  360. GoTo Exit_Function
  361. End Function &apos; getOptionGroup V0.9.0
  362. REM -----------------------------------------------------------------------------------------------------------------------
  363. Public Function getOptionValue(Optional pvObject As Variant) As String
  364. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getOptionValue&quot;)
  365. getOptionValue = PropertiesGet._getProperty(pvObject, &quot;OptionValue&quot;)
  366. End Function &apos; getOptionValue
  367. REM -----------------------------------------------------------------------------------------------------------------------
  368. Public Function getOrderBy(Optional pvObject As Variant) As String
  369. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getOrderBy&quot;)
  370. getOrderBy = PropertiesGet._getProperty(pvObject, &quot;OrderBy&quot;)
  371. End Function &apos; getOrderBy
  372. REM -----------------------------------------------------------------------------------------------------------------------
  373. Public Function getOrderByOn(Optional pvObject As Variant) As Boolean
  374. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getOrderByOn&quot;)
  375. getOrderByOn = PropertiesGet._getProperty(pvObject, &quot;OrderByOn&quot;)
  376. End Function &apos; getOrderByOn
  377. REM -----------------------------------------------------------------------------------------------------------------------
  378. Public Function getPage(Optional pvObject As Variant) As String
  379. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getPage&quot;)
  380. getPage = PropertiesGet._getProperty(pvObject, &quot;Page&quot;)
  381. End Function &apos; getPage V0.9.1
  382. REM -----------------------------------------------------------------------------------------------------------------------
  383. Public Function getParent(Optional pvObject As Variant) As String
  384. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getParent&quot;)
  385. getParent = PropertiesGet._getProperty(pvObject, &quot;Parent&quot;)
  386. End Function &apos; getParent V0.9.0
  387. REM -----------------------------------------------------------------------------------------------------------------------
  388. Public Function getProperty(Optional pvItem As Variant, Optional ByVal pvProperty As Variant, ByVal Optional pvIndex As Variant) As Variant
  389. &apos; Return property value of object pvItem, and psProperty property name
  390. Utils._SetCalledSub(&quot;getProperty&quot;)
  391. If IsMissing(pvItem) Then Call _TraceArguments()
  392. If IsMissing(pvProperty) Then Call _TraceArguments()
  393. If IsMissing(pvIndex) Then getProperty = PropertiesGet._getProperty(pvItem, pvProperty) Else getProperty = PropertiesGet._getProperty(pvItem, pvProperty, pvIndex)
  394. Utils._ResetCalledSub(&quot;getProperty&quot;)
  395. End Function &apos; getProperty
  396. REM -----------------------------------------------------------------------------------------------------------------------
  397. Public Function getRecommendation(Optional pvObject As Variant) As Variant
  398. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRecommendation&quot;)
  399. getRecommendation = PropertiesGet._getProperty(pvObject, &quot;Recommendation&quot;)
  400. End Function &apos; getRecommendation
  401. REM -----------------------------------------------------------------------------------------------------------------------
  402. Public Function getRecordCount(Optional pvObject As Variant) As Variant
  403. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRecordCount&quot;)
  404. getRecordCount = PropertiesGet._getProperty(pvObject, &quot;RecordCount&quot;)
  405. End Function &apos; getRecordCount
  406. REM -----------------------------------------------------------------------------------------------------------------------
  407. Public Function getRecordset(Optional pvObject As Variant) As String
  408. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRecordset&quot;)
  409. getRecordset = PropertiesGet._getProperty(pvObject, &quot;Recordset&quot;)
  410. End Function &apos; getRecordset V0.9.5
  411. REM -----------------------------------------------------------------------------------------------------------------------
  412. Public Function getRecordSource(Optional pvObject As Variant) As Variant
  413. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRecordSource&quot;)
  414. getRecordSource = PropertiesGet._getProperty(pvObject, &quot;RecordSource&quot;)
  415. End Function &apos; getRecordSource
  416. REM -----------------------------------------------------------------------------------------------------------------------
  417. Public Function getRequired(Optional pvObject As Variant) As Variant
  418. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRequired&quot;)
  419. getRequired = PropertiesGet._getProperty(pvObject, &quot;Required&quot;)
  420. End Function &apos; getRequired
  421. REM -----------------------------------------------------------------------------------------------------------------------
  422. Public Function getRowChangeAction(Optional pvObject As Variant) As Variant
  423. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRowChangeAction&quot;)
  424. getRowChangeAction = PropertiesGet._getProperty(pvObject, &quot;RowChangeAction&quot;)
  425. End Function &apos; getRowChangeAction
  426. REM -----------------------------------------------------------------------------------------------------------------------
  427. Public Function getRowSource(Optional pvObject As Variant) As Variant
  428. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRowSource&quot;)
  429. getRowSource = PropertiesGet._getProperty(pvObject, &quot;RowSource&quot;)
  430. End Function &apos; getRowSource
  431. REM -----------------------------------------------------------------------------------------------------------------------
  432. Public Function getRowSourceType(Optional pvObject As Variant) As Variant
  433. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getRowSourceType&quot;)
  434. getRowSourceType = PropertiesGet._getProperty(pvObject, &quot;RowSourceType&quot;)
  435. End Function &apos; getRowSourceType
  436. REM -----------------------------------------------------------------------------------------------------------------------
  437. Public Function getSelected(Optional pvObject As Variant, ByVal Optional pvIndex As Variant) As Variant
  438. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSelected&quot;)
  439. If IsMissing(pvIndex) Then
  440. getSelected = PropertiesGet._getProperty(pvObject, &quot;Selected&quot;)
  441. Else
  442. getSelected = PropertiesGet._getProperty(pvObject, &quot;Selected&quot;, pvIndex)
  443. End If
  444. End Function &apos; getSelected
  445. REM -----------------------------------------------------------------------------------------------------------------------
  446. Public Function getSize(Optional pvObject As Variant) As Variant
  447. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSize&quot;)
  448. getSize = PropertiesGet._getProperty(pvObject, &quot;Size&quot;)
  449. End Function &apos; getSize
  450. REM -----------------------------------------------------------------------------------------------------------------------
  451. Public Function getSource(Optional pvObject As Variant) As String
  452. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSource&quot;)
  453. getSource = PropertiesGet._getProperty(pvObject, &quot;Source&quot;)
  454. End Function &apos; getSource V0.9.0
  455. REM -----------------------------------------------------------------------------------------------------------------------
  456. Public Function getSourceField(Optional pvObject As Variant) As Variant
  457. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSourceField&quot;)
  458. getSourceField = PropertiesGet._getProperty(pvObject, &quot;SourceField&quot;)
  459. End Function &apos; getSourceField
  460. REM -----------------------------------------------------------------------------------------------------------------------
  461. Public Function getSourceTable(Optional pvObject As Variant) As Variant
  462. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSourceTable&quot;)
  463. getSourceTable = PropertiesGet._getProperty(pvObject, &quot;SourceTable&quot;)
  464. End Function &apos; getSourceTable
  465. REM -----------------------------------------------------------------------------------------------------------------------
  466. Public Function getSpecialEffect(Optional pvObject As Variant) As Variant
  467. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSpecialEffect&quot;)
  468. getSpecialEffect = PropertiesGet._getProperty(pvObject, &quot;SpecialEffect&quot;)
  469. End Function &apos; getSpecialEffect
  470. REM -----------------------------------------------------------------------------------------------------------------------
  471. Public Function getSubType(Optional pvObject As Variant) As Variant
  472. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSubType&quot;)
  473. getSubType = PropertiesGet._getProperty(pvObject, &quot;SubType&quot;)
  474. End Function &apos; getSubType
  475. REM -----------------------------------------------------------------------------------------------------------------------
  476. Public Function getSubComponentName(Optional pvObject As Variant) As Variant
  477. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSubComponentName&quot;)
  478. getSubComponentName = PropertiesGet._getProperty(pvObject, &quot;SubComponentName&quot;)
  479. End Function &apos; getSubComponentName
  480. REM -----------------------------------------------------------------------------------------------------------------------
  481. Public Function getSubComponentType(Optional pvObject As Variant) As Variant
  482. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getSubComponentType&quot;)
  483. getSubComponentType = PropertiesGet._getProperty(pvObject, &quot;SubComponentType&quot;)
  484. End Function &apos; getSubComponentType
  485. REM -----------------------------------------------------------------------------------------------------------------------
  486. Public Function getTabIndex(Optional pvObject As Variant) As Variant
  487. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTabIndex&quot;)
  488. getTabIndex = PropertiesGet._getProperty(pvObject, &quot;TabIndex&quot;)
  489. End Function &apos; getTabIndex
  490. REM -----------------------------------------------------------------------------------------------------------------------
  491. Public Function getTabStop(Optional pvObject As Variant) As Variant
  492. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTabStop&quot;)
  493. getTabStop = PropertiesGet._getProperty(pvObject, &quot;TabStop&quot;)
  494. End Function &apos; getTabStop
  495. REM -----------------------------------------------------------------------------------------------------------------------
  496. Public Function getTag(Optional pvObject As Variant) As Variant
  497. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTag&quot;)
  498. getTag = PropertiesGet._getProperty(pvObject, &quot;Tag&quot;)
  499. End Function &apos; getTag
  500. REM -----------------------------------------------------------------------------------------------------------------------
  501. Public Function getText(Optional pvObject As Variant) As Variant
  502. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getText&quot;)
  503. getText = PropertiesGet._getProperty(pvObject, &quot;Text&quot;)
  504. End Function &apos; getText
  505. REM -----------------------------------------------------------------------------------------------------------------------
  506. Public Function getTextAlign(Optional pvObject As Variant) As Variant
  507. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTextAlign&quot;)
  508. getTextAlign = PropertiesGet._getProperty(pvObject, &quot;TextAlign&quot;)
  509. End Function &apos; getTextAlign
  510. REM -----------------------------------------------------------------------------------------------------------------------
  511. Public Function getTooltipText(Optional pvObject As Variant) As Variant
  512. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTooltipText&quot;)
  513. getTooltipText = PropertiesGet._getProperty(pvObject, &quot;TooltipText&quot;)
  514. End Function &apos; getTooltipText
  515. REM -----------------------------------------------------------------------------------------------------------------------
  516. Public Function getTripleState(Optional pvObject As Variant) As Variant
  517. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTripleState&quot;)
  518. getTripleState = PropertiesGet._getProperty(pvObject, &quot;TripleState&quot;)
  519. End Function &apos; getTripleState
  520. REM -----------------------------------------------------------------------------------------------------------------------
  521. Public Function getTypeName(Optional pvObject As Variant) As Variant
  522. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getTypeName&quot;)
  523. getTypeName = PropertiesGet._getProperty(pvObject, &quot;TypeName&quot;)
  524. End Function &apos; getTypeName
  525. REM -----------------------------------------------------------------------------------------------------------------------
  526. Public Function getVisible(Optional pvObject As Variant) As Variant
  527. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getVisible&quot;)
  528. getVisible = PropertiesGet._getProperty(pvObject, &quot;Visible&quot;)
  529. End Function &apos; getVisible
  530. REM -----------------------------------------------------------------------------------------------------------------------
  531. Public Function getWidth(Optional pvObject As Variant) As Long
  532. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getWdth&quot;)
  533. getWidth = PropertiesGet._getProperty(pvObject, &quot;Width&quot;)
  534. End Function &apos; getWidth
  535. REM -----------------------------------------------------------------------------------------------------------------------
  536. Public Function getXPos(Optional pvObject As Variant) As Long
  537. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getXPos&quot;)
  538. getXPos = PropertiesGet._getProperty(pvObject, &quot;XPos&quot;)
  539. End Function &apos; getXPos
  540. REM -----------------------------------------------------------------------------------------------------------------------
  541. Public Function getYPos(Optional pvObject As Variant) As Long
  542. If IsMissing(pvObject) Or IsEmpty(pvObject) Then Call _TraceArguments(&quot;getYPos&quot;)
  543. getYPos = PropertiesGet._getProperty(pvObject, &quot;YPos&quot;)
  544. End Function &apos; getYPos
  545. REM -----------------------------------------------------------------------------------------------------------------------
  546. REM --- PRIVATE FUNCTIONS ---
  547. REM -----------------------------------------------------------------------------------------------------------------------
  548. Public Function _getProperty(pvItem As Variant, ByVal psProperty As String, ByVal Optional pvIndex As Variant) As Variant
  549. &apos; Return property value of the psProperty property name within object pvItem
  550. If _ErrorHandler() Then On Local Error Goto Error_Function
  551. Utils._SetCalledSub(&quot;get&quot; &amp; psProperty)
  552. _getProperty = Nothing
  553. &apos;pvItem must be an object and have the requested property
  554. If Not Utils._CheckArgument(pvItem, 1, vbObject) Then Goto Exit_Function
  555. If Not PropertiesGet._hasProperty(pvItem._Type, pvItem._PropertiesList(), psProperty) Then Goto Trace_Error
  556. &apos;Check Index argument
  557. If Not IsMissing(pvIndex) Then
  558. If Not Utils._CheckArgument(pvIndex, 3, Utils._AddNumeric()) Then Goto Exit_Function
  559. End If
  560. &apos;Execute
  561. Select Case UCase(psProperty)
  562. Case UCase(&quot;AbsolutePosition&quot;)
  563. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  564. _getProperty = pvItem.AbsolutePosition
  565. Case UCase(&quot;AllowAdditions&quot;)
  566. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  567. _getProperty = pvItem.AllowAdditions
  568. Case UCase(&quot;AllowDeletions&quot;)
  569. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  570. _getProperty = pvItem.AllowDeletions
  571. Case UCase(&quot;AllowEdits&quot;)
  572. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  573. _getProperty = pvItem.AllowEdits
  574. Case UCase(&quot;BackColor&quot;)
  575. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  576. _getProperty = pvItem.BackColor
  577. Case UCase(&quot;BeginGroup&quot;)
  578. If Not Utils._CheckArgument(pvItem, 1, OBJCOMMANDBARCONTROL) Then Goto Exit_Function
  579. _getProperty = pvItem.BeginGroup
  580. Case UCase(&quot;BOF&quot;)
  581. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  582. _getProperty = pvItem.BOF
  583. Case UCase(&quot;Bookmark&quot;)
  584. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJRECORDSET)) Then Goto Exit_Function
  585. _getProperty = pvItem.Bookmark
  586. Case UCase(&quot;Bookmarkable&quot;)
  587. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  588. _getProperty = pvItem.Bookmarkable
  589. Case UCase(&quot;BorderColor&quot;)
  590. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  591. _getProperty = pvItem.BorderColor
  592. Case UCase(&quot;BorderStyle&quot;)
  593. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  594. _getProperty = pvItem.BorderStyle
  595. Case UCase(&quot;BuiltIn&quot;)
  596. If Not Utils._CheckArgument(pvItem, 1, Array(OBJCOMMANDBAR, OBJCOMMANDBARCONTROL)) Then Goto Exit_Function
  597. _getProperty = pvItem.BuiltIn
  598. Case UCase(&quot;ButtonLeft&quot;)
  599. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  600. _getProperty = pvItem.ButtonLeft
  601. Case UCase(&quot;ButtonMiddle&quot;)
  602. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  603. _getProperty = pvItem.ButtonMiddle
  604. Case UCase(&quot;ButtonRight&quot;)
  605. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  606. _getProperty = pvItem.ButtonRight
  607. Case UCase(&quot;Cancel&quot;)
  608. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  609. _getProperty = pvItem.Cancel
  610. Case UCase(&quot;Caption&quot;)
  611. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJDIALOG, OBJCONTROL, OBJCOMMANDBARCONTROL)) Then Goto Exit_Function
  612. _getProperty = pvItem.Caption
  613. Case UCase(&quot;ClickCount&quot;)
  614. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  615. _getProperty = pvItem.ClickCount
  616. Case UCase(&quot;ContextShortcut&quot;)
  617. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  618. _getProperty = pvItem.ContextShortcut
  619. Case UCase(&quot;ControlSource&quot;)
  620. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  621. _getProperty = pvItem.ControlSource
  622. Case UCase(&quot;ControlTipText&quot;)
  623. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  624. _getProperty = pvItem.ControlTipText
  625. Case UCase(&quot;ControlType&quot;)
  626. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  627. _getProperty = pvItem.ControlType
  628. Case UCase(&quot;Count&quot;)
  629. If Not Utils._CheckArgument(pvItem, 1, Array(OBJCOLLECTION,OBJOPTIONGROUP)) Then Goto Exit_Function
  630. _getProperty = pvItem.Count
  631. Case UCase(&quot;CurrentRecord&quot;)
  632. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  633. _getProperty = pvItem.CurrentRecord
  634. Case UCase(&quot;DataType&quot;)
  635. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  636. _getProperty = pvItem.DataType
  637. Case UCase(&quot;DbType&quot;)
  638. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  639. _getProperty = pvItem.DbType
  640. Case UCase(&quot;Default&quot;)
  641. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  642. _getProperty = pvItem.Default
  643. Case UCase(&quot;DefaultValue&quot;)
  644. If Not Utils._CheckArgument(pvItem, 1, Array(OBJCONTROL, OBJFIELD)) Then Goto Exit_Function
  645. _getProperty = pvItem.DefaultValue
  646. Case UCase(&quot;Description&quot;)
  647. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  648. _getProperty = pvItem.Description
  649. Case UCase(&quot;EditMode&quot;)
  650. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  651. _getProperty = pvItem.EditMode
  652. Case UCase(&quot;Enabled&quot;)
  653. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  654. _getProperty = pvItem.Enabled
  655. Case UCase(&quot;EOF&quot;)
  656. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  657. _getProperty = pvItem.EOF
  658. Case UCase(&quot;EventName&quot;)
  659. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  660. _getProperty = pvItem.EventName
  661. Case UCase(&quot;EventType&quot;)
  662. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  663. _getProperty = pvItem.EventType
  664. Case UCase(&quot;FieldSize&quot;)
  665. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  666. _getProperty = pvItem.FieldSize
  667. Case UCase(&quot;Filter&quot;)
  668. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM, OBJRECORDSET)) Then Goto Exit_Function
  669. _getProperty = pvItem.Filter
  670. Case UCase(&quot;FilterOn&quot;)
  671. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  672. _getProperty = pvItem.FilterOn
  673. Case UCase(&quot;FocusChangeTemporary&quot;)
  674. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  675. _getProperty = pvItem.FocusChangeTemporary
  676. Case UCase(&quot;FontBold&quot;)
  677. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  678. _getProperty = pvItem.FontBold
  679. Case UCase(&quot;FontItalic&quot;)
  680. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  681. _getProperty = pvItem.FontItalic
  682. Case UCase(&quot;FontName&quot;)
  683. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  684. _getProperty = pvItem.FontName
  685. Case UCase(&quot;FontSize&quot;)
  686. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  687. _getProperty = pvItem.FontSize
  688. Case UCase(&quot;FontUnderline&quot;)
  689. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  690. _getProperty = pvItem.FontUnderline
  691. Case UCase(&quot;FontWeight&quot;)
  692. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  693. _getProperty = pvItem.FontWeight
  694. Case UCase(&quot;ForeColor&quot;)
  695. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  696. _getProperty = pvItem.ForeColor
  697. Case UCase(&quot;Form&quot;)
  698. If Not Utils._CheckArgument(pvItem, 1, CTLSUBFORM) Then Goto Exit_Function
  699. _getProperty = pvItem.Form
  700. Case UCase(&quot;Format&quot;)
  701. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  702. _getProperty = pvItem.Format
  703. Case UCase(&quot;Height&quot;)
  704. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJDIALOG)) Then Goto Exit_Function
  705. _getProperty = pvItem.Height
  706. Case UCase(&quot;Index&quot;)
  707. If Not Utils._CheckArgument(pvItem, 1, OBJCOMMANDBARCONTROL) Then Goto Exit_Function
  708. _getProperty = pvItem.Index
  709. Case UCase(&quot;IsLoaded&quot;)
  710. If Not Utils._CheckArgument(pvItem, 1, OBJFORM) Then Goto Exit_Function
  711. _getProperty = pvItem.IsLoaded
  712. Case UCase(&quot;ItemData&quot;)
  713. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  714. If IsMissing(pvIndex) Then _getProperty = pvItem.ItemData Else _getProperty = pvItem.ItemData(pvIndex)
  715. Case UCase(&quot;KeyAlt&quot;)
  716. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  717. _getProperty = pvItem.KeyAlt
  718. Case UCase(&quot;KeyChar&quot;)
  719. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  720. _getProperty = pvItem.KeyChar
  721. Case UCase(&quot;KeyCode&quot;)
  722. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  723. _getProperty = pvItem.KeyCode
  724. Case UCase(&quot;KeyCtrl&quot;)
  725. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  726. _getProperty = pvItem.KeyCtrl
  727. Case UCase(&quot;KeyFunction&quot;)
  728. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  729. _getProperty = pvItem.KeyFunction
  730. Case UCase(&quot;KeyShift&quot;)
  731. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  732. _getProperty = pvItem.KeyShift
  733. Case UCase(&quot;LinkChildFields&quot;)
  734. If Not Utils._CheckArgument(pvItem, 1, OBJSUBFORM) Then Goto Exit_Function
  735. If IsMissing(pvIndex) Then _getProperty = pvItem.LinkChildFields Else _getProperty = pvItem.LinkChildFields(pvIndex)
  736. Case UCase(&quot;LinkMasterFields&quot;)
  737. If Not Utils._CheckArgument(pvItem, 1, OBJSUBFORM) Then Goto Exit_Function
  738. If IsMissing(pvIndex) Then _getProperty = pvItem.LinkMasterFields Else _getProperty = pvItem.LinkMasterFields(pvIndex)
  739. Case UCase(&quot;ListCount&quot;)
  740. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  741. _getProperty = pvItem.ListCount
  742. Case UCase(&quot;ListIndex&quot;)
  743. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  744. _getProperty = pvItem.ListIndex
  745. Case UCase(&quot;Locked&quot;)
  746. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  747. If IsNull(pvItem.Locked) Then Goto Trace_Error
  748. _ge ExitProperty = pvItem.Locked
  749. Case UCase(&quot;MultiSelect&quot;)
  750. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  751. _getProperty = pvItem.MultiSelect
  752. Case UCase(&quot;Name&quot;)
  753. If Not Utils._CheckArgument(pvItem, 1, _
  754. Array(OBJFORM, OBJSUBFORM, OBJCONTROL, OBJOPTIONGROUP, OBJPROPERTY, OBJDIALOG, OBJTABLEDEF, OBJRECORDSET, OBJFIELD, OBJTEMPVAR, OBJCOMMANDBAR) _
  755. ) Then Goto Exit_Function
  756. _getProperty = pvItem.Name
  757. Case UCase(&quot;ObjectType&quot;)
  758. If Not Utils._CheckArgument(pvItem, 1, Array(OBJDATABASE, OBJCOLLECTION, OBJFORM, OBJDIALOG, OBJSUBFORM, OBJCONTROL _
  759. , OBJEVENT, OBJOPTIONGROUP, OBJPROPERTY, OBJRECORDSET, OBJTABLEDEF, OBJFIELD, OBJTEMPVAR _
  760. , OBJCOMMANDBAR, OBJCOMMANDBARCONTROL) _
  761. ) Then Goto Exit_Function
  762. _getProperty = pvItem.ObjectType
  763. Case UCase(&quot;OnAction&quot;)
  764. If Not Utils._CheckArgument(pvItem, 1, OBJCOMMANDBARCONTROL) Then Goto Exit_Function
  765. _getProperty = pvItem.OnAction
  766. Case UCase(&quot;OpenArgs&quot;)
  767. If Not Utils._CheckArgument(pvItem, 1, OBJFORM) Then Goto Exit_Function
  768. _getProperty = pvItem.OpenArgs
  769. Case UCase(&quot;OptionValue&quot;)
  770. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  771. _getProperty = pvItem.OptionValue
  772. Case UCase(&quot;OrderBy&quot;)
  773. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  774. _getProperty = pvItem.OrderBy
  775. Case UCase(&quot;OrderByOn&quot;)
  776. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  777. _getProperty = pvItem.OrderByOn
  778. Case UCase(&quot;Page&quot;)
  779. If Not Utils._CheckArgument(pvItem, 1, Array(OBJDIALOG, OBJCONTROL)) Then Goto Exit_Function
  780. _getProperty = pvItem.Page
  781. Case UCase(&quot;Parent&quot;)
  782. If Not Utils._CheckArgument(pvItem, 1, Array(OBJSUBFORM, OBJCONTROL, OBJCOMMANDBARCONTROL)) Then Goto Exit_Function
  783. _getProperty = pvItem.Parent
  784. Case UCase(&quot;Recommendation&quot;)
  785. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  786. _getProperty = pvItem.Recommendation
  787. Case UCase(&quot;RecordCount&quot;)
  788. If Not Utils._CheckArgument(pvItem, 1, OBJRECORDSET) Then Goto Exit_Function
  789. _getProperty = pvItem.RecordCount
  790. Case UCase(&quot;Recordset&quot;)
  791. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  792. _getProperty = pvItem.Recordset
  793. Case UCase(&quot;RecordSource&quot;)
  794. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJSUBFORM)) Then Goto Exit_Function
  795. _getProperty = pvItem.RecordSource
  796. Case UCase(&quot;Required&quot;)
  797. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  798. _getProperty = pvItem.Required
  799. Case UCase(&quot;RowChangeAction&quot;)
  800. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  801. _getProperty = pvItem.RowChangeAction
  802. Case UCase(&quot;RowSource&quot;)
  803. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  804. _getProperty = pvItem.RowSource
  805. Case UCase(&quot;RowSourceType&quot;)
  806. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  807. _getProperty = pvItem.RowSourceType
  808. Case UCase(&quot;Selected&quot;)
  809. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  810. If IsMissing(pvIndex) Then _getProperty = pvItem.Selected Else _getProperty = pvItem.Selected(pvIndex)
  811. Case UCase(&quot;Size&quot;)
  812. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  813. _getProperty = pvItem.Size
  814. Case UCase(&quot;Source&quot;)
  815. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  816. _getProperty = pvItem.Source
  817. Case UCase(&quot;SourceTable&quot;)
  818. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  819. _getProperty = pvItem.SourceTable
  820. Case UCase(&quot;SourceField&quot;)
  821. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  822. _getProperty = pvItem.SourceField
  823. Case UCase(&quot;SpecialEffect&quot;)
  824. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  825. _getProperty = pvItem.SpecialEffect
  826. Case UCase(&quot;SubComponentName&quot;)
  827. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  828. _getProperty = pvItem.SubComponentName
  829. Case UCase(&quot;SubComponentType&quot;)
  830. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  831. _getProperty = pvItem.SubComponentType
  832. Case UCase(&quot;SubType&quot;)
  833. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  834. _getProperty = pvItem.SubType
  835. Case UCase(&quot;TabIndex&quot;)
  836. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  837. _getProperty = pvItem.TabIndex
  838. Case UCase(&quot;TabStop&quot;)
  839. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  840. _getProperty = pvItem.TabStop
  841. Case UCase(&quot;Tag&quot;)
  842. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  843. _getProperty = pvItem.Tag
  844. Case UCase(&quot;Text&quot;)
  845. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  846. _getProperty = pvItem.Text
  847. Case UCase(&quot;TextAlign&quot;)
  848. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  849. _getProperty = pvItem.TextAlign
  850. Case UCase(&quot;TooltipText&quot;)
  851. If Not Utils._CheckArgument(pvItem, 1, OBJCOMMANDBARCONTROL) Then Goto Exit_Function
  852. _getProperty = pvItem.TooltipText
  853. Case UCase(&quot;TripleState&quot;)
  854. If Not Utils._CheckArgument(pvItem, 1, OBJCONTROL) Then Goto Exit_Function
  855. _getProperty = pvItem.TripleState
  856. Case UCase(&quot;TypeName&quot;)
  857. If Not Utils._CheckArgument(pvItem, 1, OBJFIELD) Then Goto Exit_Function
  858. _getProperty = pvItem.TypeName
  859. Case UCase(&quot;Value&quot;)
  860. If Not Utils._CheckArgument(pvItem, 1, Array(OBJCONTROL, OBJOPTIONGROUP, OBJPROPERTY, OBJFIELD, OBJTEMPVAR)) Then Goto Exit_Function
  861. _getProperty = pvItem.Value
  862. Case UCase(&quot;Visible&quot;)
  863. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJDIALOG, OBJCONTROL, OBJCOMMANDBAR, OBJCOMMANDBARCONTROL)) Then Goto Exit_Function
  864. _getProperty = pvItem.Visible
  865. Case UCase(&quot;Width&quot;)
  866. If Not Utils._CheckArgument(pvItem, 1, Array(OBJFORM, OBJDIALOG)) Then Goto Exit_Function
  867. _getProperty = pvItem.Width
  868. Case UCase(&quot;XPos&quot;)
  869. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  870. If IsNull(pvItem.XPos) Then Goto Trace_Error
  871. _getProperty = pvItem.XPos
  872. Case UCase(&quot;YPos&quot;)
  873. If Not Utils._CheckArgument(pvItem, 1, OBJEVENT) Then Goto Exit_Function
  874. If IsNull(pvItem.YPos) Then Goto Trace_Error
  875. _getProperty = pvItem.YPos
  876. Case Else
  877. Goto Trace_Error
  878. End Select
  879. Exit_Function:
  880. Utils._ResetCalledSub(&quot;get&quot; &amp; psProperty)
  881. Exit Function
  882. Trace_Error:
  883. TraceError(TRACEFATAL, ERRPROPERTY, Utils._CalledSub(), 0, 1, psProperty)
  884. _getProperty = Nothing
  885. Goto Exit_Function
  886. Trace_Error_Index:
  887. TraceError(TRACEFATAL, ERRINDEXVALUE, Utils._CalledSub(), 0, 1, psProperty)
  888. _getProperty = Nothing
  889. Goto Exit_Function
  890. Error_Function:
  891. TraceError(TRACEABORT, Err, &quot;_getProperty&quot;, Erl)
  892. _getProperty = Nothing
  893. GoTo Exit_Function
  894. End Function &apos; _getProperty V0.9.1
  895. REM -----------------------------------------------------------------------------------------------------------------------
  896. Public Function _hasProperty(ByVal psObject As String, ByVal pvPropertiesList() As Variant, Optional ByVal pvProperty As Variant) As Boolean
  897. &apos; Return True if object has a valid property called pvProperty (case-insensitive comparison !)
  898. &apos; Generic hasProperty function called from all class modules
  899. Dim sObject As String
  900. sObject = Utils._PCase(psObject)
  901. Utils._SetCalledSub(sObject &amp; &quot;.hasProperty&quot;)
  902. If IsMissing(pvProperty) Then Call _TraceArguments()
  903. _hasProperty = False
  904. If Not Utils._CheckArgument(pvProperty, 1, vbString) Then Goto Exit_Function
  905. _hasProperty = Utils._InList(pvProperty, pvPropertiesList(), False, True)
  906. Exit_Function:
  907. Utils._ResetCalledSub(sObject &amp; &quot;.hasProperty&quot;)
  908. Exit Function
  909. End Function &apos; _hasProperty
  910. REM ------------------------------------------------------------------------------------------------------------------------
  911. Public Function _ParentObject(psShortcut As String) As Object
  912. &apos; Return parent object from shortcut as a string
  913. Dim sParent As String, vParent() As Variant, iBound As Integer
  914. vParent = Split(psShortcut, &quot;!&quot;)
  915. iBound = UBound(vParent) - 1
  916. ReDim Preserve vParent(0 To iBound) &apos; Remove last element
  917. sParent = Join(vParent, &quot;!&quot;)
  918. &apos;Remove &quot;.Form&quot; if present
  919. Const cstForm = &quot;.FORM&quot;
  920. Set _ParentObject = Nothing
  921. If Len(sParent) &gt; Len(cstForm) Then
  922. If UCase(Right(sParent, Len(cstForm))) = cstForm Then
  923. Set _ParentObject = getValue(sParent)
  924. Else
  925. Set _ParentObject = getObject(sParent)
  926. End If
  927. End If
  928. End Function &apos; _ParentObject V0.9.0
  929. REM -----------------------------------------------------------------------------------------------------------------------
  930. Public Function _Properties(ByVal psObject As String _
  931. , ByRef pvParent As Object _
  932. , ByVal pvPropertiesList() As Variant _
  933. , ByVal Optional pvIndex As Variant _
  934. ) As Variant
  935. &apos; Return
  936. &apos; a Collection object if pvIndex absent
  937. &apos; a Property object otherwise
  938. &apos; Generic function called from Properties methods stored in classes
  939. Dim vProperties As Variant, oCounter As Object, opProperty As Object
  940. Dim iArgNr As Integer, iLen As Integer
  941. Utils._SetCalledSub(psObject &amp; &quot;.Properties&quot;)
  942. vProperties = Null
  943. If IsMissing(pvIndex) Then &apos; Call without index argument prepares a Collection object
  944. Set oCounter = New Collect
  945. Set oCounter._This = oCounter
  946. oCounter._CollType = COLLPROPERTIES
  947. Set oCounter._Parent = pvParent
  948. oCounter._Count = UBound(pvPropertiesList) + 1
  949. Set vProperties = oCounter
  950. Else
  951. iLen = Len(psObject) + 1
  952. If Len(_A2B_.CalledSub) &gt; iLen Then
  953. If Left(_A2B_.CalledSub, iLen) = psObject &amp; &quot;.&quot; Then iArgNr = 1 Else iArgNr = 2
  954. End If
  955. If Not Utils._CheckArgument(pvIndex, iArgNr, Utils._AddNumeric()) Then Goto Exit_Function
  956. If pvIndex &lt; LBound(pvPropertiesList) Or pvIndex &gt; UBound(pvPropertiesList) Then
  957. TraceError(TRACEFATAL, ERRCOLLECTION, Utils._CalledSub(), 0, 1)
  958. Else
  959. Set opProperty = New Property
  960. Set opProperty._This = opProperty
  961. opProperty._Name = pvPropertiesList(pvIndex)
  962. opProperty._Value = Null
  963. Set vProperties = opProperty
  964. End If
  965. End If
  966. Exit_Function:
  967. Set _Properties = vProperties
  968. Utils._ResetCalledSub(psObject &amp; &quot;.Properties&quot;)
  969. Exit Function
  970. End Function &apos; _Properties
  971. REM -----------------------------------------------------------------------------------------------------------------------
  972. Public Function _PropertiesList(pvObject As Variant) As Variant
  973. &apos; Return an array of strings containing the list of valid properties of pvObject
  974. Dim vProperties As Variant
  975. Dim vPropertiesList As Variant, bPropertiesList() As Boolean, sPropertiesList() As String
  976. Dim i As Integer, j As Integer, iCount As Integer
  977. Set vProperties = Nothing
  978. Select Case pvObject._Type
  979. Case OBJCOLLECTION, OBJPROPERTY, OBJFORM, OBJEVENT, OBJSUBFORM, OBJCONTROL, OBJOPTIONGROUP _
  980. , OBJDATABASE, OBJTABLEDEF, OBJQUERYDEF, OBJDIALOG, OBJFIELD, OBJRECORDSET, OBJTEMPVAR _
  981. , OBJCOMMANDBAR, OBJCOMMANDBARCONTROL
  982. vPropertiesList = pvObject._PropertiesList()
  983. Case Else
  984. End Select
  985. Exit_Function:
  986. Set _PropertiesList = vPropertiesList
  987. Exit Function
  988. End Function &apos; PropertiesList V0.9.0
  989. </script:module>