TWEeT #18: IntellisenseX for Nested Objects
Thor TWEeT #18: IntellisenseX for Nested Objects
IntellisenseX provides dropdown lists for nested objects. These dropdown list are available throughout an entire form or class, as shown in this example:
The key to making this work is to define a property that can used by IntellisenseX to determine the dropdown list.
The name of the property is the name of the nested property (“oParts” in the example above) with “_Def” added as a suffix.
The value of the property is basically the same as used for Local Aliases (which apply only to the current procedure; seeUsing Local Aliases in IntellisenseX) or for Global Aliases (which apply everywhere; seethe Alias Dictionary). It can be any one of a number of things, referring to either tables or objects.
- A table, cursor, or view name
- The full or relative path name to a table
- The name of an SQL table
- A reference to class from a class library; thus, “{class, classlibrary}“ See note below for Forms and VCX classes.
- A reference to class using the same syntax as the LOCAL command; thus, “Local loPAL as PAL of BO_PAL.VCX“
- A reference to an object; thus, “Thisform.oParts“
- An executable expression that returns an object or the name of an table, cursor, or view. This executable must start with an “=”; thus, something like “= MyGetObject(‘Parts’)“. See note below for Forms and VCX classes.
An unexpected problem arises when when using the Property Sheet or PEM Editor to set the values for the two items noted above – values inside curly braces are converted to dates, and values beginning with an = sign are saved as expressions. To avoid these issues, prefix the values with && – thus:
- “&& {class, classlibrary}“
- “&& = MyGetObject(‘Parts’)“
This table shows a number of different values that can be used for the value of the “_Def” property:
“PartsList” | The name of a table in the path, in the Data Environment of a form, in an open DBC, in the MRU list for tables, or the name of a table in a SQL Server database. It can also be opened by the plug-in “Open Table”. |
“..\Tables\PartsList” | The absolute or relative path to a table. |
“{NISDetailsForm, NIS.VCX}” | A class in a VCX or PRG |
“Local loPAL as PAL of BO_PAL.PRG” | An alternative way to reference a class. This syntax was chosen so that you can copy the LOCAL command directly from a line of code. |
“ = GetBusinessObject(‘TableName’)” | A call to your own UDF that returns an object; used, for instance, if you use a factory to return objects instead of direct references. |
Nested objects may take any of a number of forms, including:
- ThisForm.oBusObj
- This.oData
- This.oPartsList.oData
- This.oBusObj.oPartsList.oData
Nested objects may appear in forms, VCX-based classes, and PRG-based classes and there can be multiple levels of nesting.
This TWEeT has addressed Aliases that apply to an entire form or class (both VCX and PRG-based). Earlier TWEeTs have addressedLocal Aliases andthe Alias Dictionary addressed global aliases.
An upcoming TWEeT will describe plug-ins that be used to handle cases that these features do not.
See also History of all Thor TWEeTs andthe Thor Forum.
Previous headlines
#29, 2014-04-29 TWEeT #17: Using Local Aliases in IntellisenseX
#28, 2014-03-03 TWEeT #16: Custom Keyword List for Field Names
#27, 2014-02-24 TWEeT #15: IntellisenseX and the Alias Dictionary
#26, 2014-02-17 TWEeT #14: IntellisenseX for Objects
#25, 2014-02-10 TWEeT #13: New (hidden) IntellisenseX Feature
#24, 2014-02-03 TWEeT #12: IntellisenseX by Dot or by Hot Key?
#23, 2014-01-27 TWEeT #11: IntellisenseX: Aliases for VFP Tables
#22, 2014-01-20 TWEeT #10: IntellisenseX: Field Names from SQL Server Tables
#21, 2014-01-13 TWEeT #9: Extract to Variable and Extract to Constant
#20, 2014-01-05 TWEeT #8: Creating Properties and Methods (#3)
#19, 2013-12-18 TWEeT #7: Creating Properties and Methods (#2)
#18, 2013-08-26 Thor Version 1.40 released: Thor ToolBar
#17, 2013-06-23 New VFPX Project: Finder
#16, 2013-03-31 New Video: 50 Ways to Run a Thor Tool
#15, 2012-03-05 New Thor Tool: AutoComplete
#14, 2012-01-16 Thor videos available from Thor menu
#13, 2012-01-05 Thor's Tool Launcher: The one tool youmust use
#12, 2012-11-16 Thor menus provide access to Discussion Forums and Change Logs
#11, 2012-11-10 Online FoxPro Users Group (OFUG) created
#10, 2012-10-14 New VFPX Project: FoxcodePlus
#9, 2012-10-06 Easy access to all VFPX home pages
#8, 2012-09-30 IntellisenseX released as a VFPX project
#7, 2012-09-19 All VFPX projects can be downloaded from Thor
#6, 2012-09-16 Use the Thor discussion group
#5, 2012-09-10 IntellisenseX released
#4, 2012-09-09 Data Explorer is now a Thor tool
#3, 2012-09-04 New VFPX Projects: Dynamic Forms & Data Explorer
#2, 2012-08-30 Join the Thor Beta discussion group
#1, 2012-08-25: Introducing Thor News
Thor Version 1.40 released: Thor ToolBar
Added the Thor ToolBar. Tools may be added to the Toolbar may using the checkbox shown in the Thor Configuration form, below (and also available in theTool Launcher.)
When you add a tool to the Thor Toolbar, you can select a caption for the tool or select an image to represent it. In the sample below, abbreviated captions are used.
The toolbar’s size, positioning, and docking, persist from one session to the next. (Truth be told, persisting the docking has been problematic.)
New VFPX Project: Finder
The new VFPX project Finder is a powerful search tool to find forms and classes. It searches either a project or folder (with sub-folders) for names of files or classes.
Files or classes can be opened by double-clicking and there are numerous other options available from the context menu for rows in the grid.
When Class Search is used, the classes found can be dragged/dropped onto forms or classes being edited.
See the Finder Home Page and watch theFinder introductory video (11:25).
Thor videos available from Thor menu
There are already a number of videos explaining features of Thor and there are more to come. Follow the link from the Thor menu to the list of all Thor videos.
Thor's Tool Launcher: The one tool you must use
Thor’s Tool Launcher uses a simple screen that allows you to browse through all the Thor tools by keyword, to read their descriptions or visit their home pages, to set their options, and, most importantly, to run them. It also helps you to organize the tools that you use most to make them easily accessible.
Thor suffers from an over-abundance of tools – there are so many that it may seem impossible to find which tools are of interest to you. The Tool Launcher simplifies that search.
Watch this short video (7:57) to learn all about it.
Thor menus provide access to Discussion Forums and Change Logs
The Thor menu has been changed to provide access to a number of related Discussion Forums.
These forums are the preferred form of communication about these tools, rather than private emails, or using the Universal Thread, Foxite, or any other on-line forums.
Change logs for the various tools and components of Thor are now available, as well as a link to the never ending list of Thor ERs.
Online FoxPro Users Group (OFUG) created
A new Online Foxpro User Group is starting up. For more information, join the Google group athttps://groups.google.com/forum/?fromgroups#!forum/ofug.
Meetings will be held the 3rd Tuesday of each month at 8:30 Eastern Standard Time via GotoMeeting.com or equivalent.
Details about how to join the meeting will be published on the group forum (see link above) immediately before the meeting is to start.
We intend to record the meeting and make it available on-line for those unable to attend.
Next Meeting: Tuesday, November 20th, 8:30 PM Eastern Time (0130 UTC Wednesday, November 21)
Presenters:
- Matt Slay - Dynamic Forms
- Jim Nelson - PEM Editor and related tools
New VFPX Project: FoxcodePlus
The new VFPX project FoxcodePlus (Beta 1) is available from Check For Updates.
This project is not related to IntellisenseX, another VFPX project, although both provide Intellisense enhancements. FoxCodePlus provides a wider range of features and includes some of the features provided by IntellisenseX. Although not yet tested, it appears that the two may be used concurrently.
After downloading (which includes both the code and documentation), you can use the Thor menu pad in the system menu to open the folder in which these components are installed:
Easy access to all VFPX home pages
Thor now provides ready access to the home pages for all VFPX projects, available from the Thor menu pad.
IntellisenseX released as a VFPX project
IntellisenseX has been released as a VFPX project.
IntellisenseX refers to a suite of Thor Tools that provide functionality similar to native Intellisense. These tools display lists of available variable names, field names, or members (properties, events, methods, and objects) while you type code, just like Intellisense. However, they cover those areas that Intellisense forgot (such as the list of field names in a table when editing in a code window) and provide new capabilities, available through customization, such as displaying the list of field names in an SQL table.
Visit the IntellisenseX home page and also watch the Intellisense training videos.
IntellisenseX is available from Check For Updates.
All VFPX projects can be downloaded from Thor
The current version of all VFPX projects can now be downloaded directly from Check For Updates.
The projects listed in Check For Updates are listed alphabetically within these five groups:
- Projects that you have already downloaded for which there is a more current version. (see #4)
- Projects that you have not downloaded which have had updates in the last three months
- All other projects that you have not downloaded
- Projects that you have already downloaded and which are current
- All projects marked as “never update”. This takes precedence over any of the categories above.
Use the Thor discussion group for comments,
suggestions, bug reports, etc.
Use the “Community / Discussions” menu item in the Thor menu pad to send comments, suggestions, bug reports, and so on to the Thor Discussion Group. You are invited to become a member of the group so that you can see what is going on in the land of Thor.
Two things of note:
- You can email discussion questions (with screenshots) directly to:
- When reporting bugs, please provide as much information as possible, including screenshots. Any information you can provide (such as an image of the debugger, etc.) will be greatly appreciated.
IntellisenseX released
IntellisenseX refers to a suite of Thor Tools that provide functionality similar to native Intellisense. These tools display lists of available variable names, field names, or members (properties, events, methods, and objects) while you type code, just like Intellisense. However, they cover those areas that Intellisense forgot (such as the list of field names in a table when editing in a code window) and provide new capabilities, available through customization, such as displaying the list of field names in an SQL table, as shown below. For a full description, see the IntellisenseX Home Page.
Data Explorer is now a Thor tool
Data Explorer 3 is now available as a Thor Tool. This means that you can choose to access it by hot key by assigning the hot key in the Thor configuration form.
New VFPX Projects: Dynamic Forms & Data Explorer
Two new VFPX projects have been created in the last few days and are available from Check For Updates:
After downloading, you can use the Thor menu pad in the system menu to open the folder in which these components are installed:
Join the Thor Beta discussion group.
The Thor Beta discussion group is intended for discussions of features currently under development for Beta versions of Thor, the Thor Repository, and PEM Editor.
All other Thor issues should be directed to the Thor discussion group.
To use the Beta version for Thor, download Thor Repository Beta Updater.Zip and unzip it into this sub-folder of the folder where you have installed Thor:Thor\Tools\Updates\My Updates
Thereafter, you will see a record for "Thor Repository Beta" when you run "Check For Updates".
Introducing Thor News.
This is the first installment of the Thor News, which will notify you of changes and updates to Thor. It will also, from time to time, explore some of the more interesting tools found in Thor.
The latest news will be brought to you:
- each time that you run Check For Updates
- once a week when you execute RunThor.
You can change these settings in the Thor Configuration form: