PEM Editor Version 5

Replacement for the native VFP dialogs to add, edit and maintain properties, events, and methods.
Supported in VFP8 and VFP9
Released 2009-10-11

A complete replacement for:
  • Edit Property/Method
  • New Property
  • New Method
  • Properties Window
  • Document View (for SCX and VCX)

Watch the PEM Editor Video Series (Note: These videos were released with version 4, but are still helpful to get started with PEM Editor.)

38363 Click here to download the latest release of PEM Editor 5

PEME 5 Horizontal.png
(Property View shown in horizontal orientation)

Summary of Version 5 enhancements -

(Note: See file "What's New in PEM Editor 5.doc" in the download area for complete release notes on PEM Editor Version 5 changes and enhancements)
  • New Feature: "Change Parent Class" of on object right in the form or class.
  • New Feature: ”Document TreeView” can now be opened as a separate form from main PEM Editor form.
  • New feature: Copy/Paste function allows copying and pasting properties between objects, and even methods and code between forms and classes.
  • New feature: "Compare with Parent Class" displays a grid listing all non-default properties and methods, and compares them with the values / code in the parent class.
  • New feature: Access to the native VFP “Edit Property/Method…” dialog.
  • New feature: Treeview can now display class name and/or class library of objects in the tree.
  • Enhancement: Additions to context menu for “Find” Filter: Starts with uppercase, Uppercase anywhere, Starts with lowercase, Lowercase everywhere
  • The combobox context menu now allows you to access the Data Environment for a form.
  • Cleanup of the display for "Parent Code" listing, making it more readable and also allowing Document View to be used.
  • Document TreeView: Speed up of initial display (60% reduction in time)
  • Document TreeView: Objects now displayed in grey if they are members of a parent class
  • New options in MemberData Tools: Browsing MemberData as a grid and Display of statistics (used, available, etc)
  • Some minor changes have been made to captions and hot keys.
  • Installation now creates a backup of _FoxCode (in sub-folder “FoxCode Backup”)

38236

Method View . . . Document TreeView
PEME 5 Method View.png PEME 5 Document TreeView.png

(Above images shown in Vertical orientation option)

38236

Features and Functions -

Full Replacement for Property Window

  • Grid display of all Properties, Methods, Events, with these columns
    • Value (Properties only)
    • Origin (Native / Inherited / Custom)
    • Type (Property / Method / Event)
    • Non-Default
    • Has Code (Methods and Events only) - indicates whether there is either custom code or inherited code
    • Favorites
    • Visibility (Classes Only) - (Public / Protected / Hidden)
    • Has _Access method (Properties only)
    • Has _Assign method (Properties only)
  • Grid may be sorted by any column (invoked by clicking on column header)
    • Stable sort if multiple columns are selected.
    • Clicking twice on same column header produces alternate sort: case insensitive sort for names, reverse sort for all others
  • Native VFP editor for editing methods and events (invoked by double-clicking)
  • Property editors: (invoked by double-clicking)
    • Familiar editors for native properties
      • Toggle Editor for logical-valued properties
      • GetColor for colors
      • ListBox for properties with enumerated choices
      • GetFont for font name, size, etc.
    • Options to use additional built-in editors
      • Toggle Editor for all non-native logical-values properties
      • One of two anchor editors
    • Description Oriented Property Editors (DOPEs), which use the property’s description to contain the property editor definition
      • Numeric Enumerated Choices, using Listbox:
        • Orientation: *** nEnum 0 = Above; 1 = Below; 2 = Left; 3 = Right
      • Character Enumerated Choices, using Listbox:
        • Direction: *** Enum North;South;East;West
      • Colors, using GetColor():
        • Color … *** Color
      • Expression Builder, using GetExpr():
        • Color … *** Color
      • Spinner:
        • Transparency *** Spinner 0, 255, 1
      • Function call (either native or UDF):
        • =GetFile(“XLS”)
      • Method call:
        • .SomeMethod(luValue)
    • New-style of custom editors (simpler to design and implement)
    • Support for old-style custom editors. (Note that there are circumstances where it is inappropriate to use these, as occurs when the object that PEM is displaying does not match the currently selected object display in the Property Window. The new-style custom editors do not have this difficulty.)
  • Other attributes that can be edited directly:
    • Description (custom items only)
    • Has _Access method (Properties only)
      • Customizable code for newly created _Access methods
      • Distinct code for array properties
    • Has _Assign method (Properties only)
      • Customizable code for newly created _Assign methods
      • Distinct code for array properties
    • Visibility (Classes only)
    • Favorites -- either local (saved in _MemberData) or global (saved in _FoxCode)
  • Provides for editing of properties when multiple controls have been selected
    • Allows editing of those properties which are found in ALL the selected controls (like the Property Window) or in ANY of the selected controls, assigning the same value to all the appropriate controls.
    • Allows display and editing for a single property for the selected controls, one control at a time. The first column in the grid shows the name of each control being edited.

Full Replacement for "New Property" and "New Method"

  • Add property or method directly, without exiting to another form
  • Assign the same list of attributes as can be edited (listed above)
  • Updates _MemberData (as needed) with name of new item in proper case
  • For new methods, a plug-in PRG creates the method header
  • Improved handling of _MemberData (see below)

Full Replacement for "Edit Property/Method..."

  • Change name of custom properties and methods
    • For properties, associated _Access and _Assign methods are re-named appropriately
  • Remove custom properties and methods
  • Change from property to method, or vice versa

New view, "Method View", specific to methods and events only

  • A new perspective on the list of methods and events. Separates methods and events in a more natural way:
    • Items that have custom code
    • Items that have inherited code
    • Inherited methods that have no custom or inherited code (stubs)
    • Inherited methods, or native methods or events, that have no custom or inherited code.
  • Allows the normal view to display properties only.
  • Displays only the appropriate subset of columns; has distinct settings for sorting, column widths and column order.

Filters for the list of properties, methods, and events displayed in the grid:

  • Filters specific to the normal view:
    • Filter on any combination of properties, methods, or events
    • Filter on any combination of native, inherited, or customer items
    • Filter on non-default items
  • Filters specific to "Method View"
    • Items that have custom code
    • Items that have inherited code
    • Inherited methods that have no custom or inherited code
    • Inherited methods, or native methods or events, that have no custom or inherited code.
  • Filters available for each view:
    • Filter on favorite items
    • Filter on text searches:
      • Name of item contains (or begins with)
      • Value of item contains (or begins with)
      • Description of item contains (or begins with)

New management tools for _MemberData

  • _MemberData automatically updated for new, changed or removed properties and methods, and for changes in local favorites
  • Preference item (see below) can turn off use of _Memberdata entirely
  • Size of _MemberData (limited to 8K) reduced by approximately 1/3. For forms or class with many inherited PEMs in _Memberdata, reduced by as much as 80%.
  • New tool "Cleanse MemberData" greatly reduces size of MemberData by removing items from parent classes and any "left-over" items that no longer apply, leaving only custom items for the form or class.
  • The first new property or method added to a form or class automatically cleanses _MemberData, so that it will only contain custom items for the form or class

Features unique to PEM-Editor

  • In-line definitions of custom property editors, using the property’s description
  • New-style custom property editors, easier to design and implement
  • Editing of properties when multiple controls have been selected:
    • Optionally editing of those properties which are in ANY of the selected controls, assigning the same value to all the appropriate controls.
    • Allows display and editing for a single property for the selected controls, one control at a time. The first column in the grid shows the name of each control being edited.
  • "Method View"
  • Four different views, without changing selected object on the form/class being edited:
    • Normal view, current objects(s)
    • Method view, current objects(s)
    • Normal view, form or class being edited
    • Method view, form or class being edited
  • Drop-down TreeView (instead of ComboBox) for navigating between controls; order of display fully customizable
  • Context menu item "Auto-rename controls" will rename controls that have their default names to follow a standard naming convention (e.g., TextBox get renamed to "txt" the name of their controlsource; Labels get renamed to 'lbl' leading portion of their caption) Plug-In PRG allows for over-riding these assignments.
  • Special Listings:
    • "View Parent Code" -- displays custom code for a method, as well as the code from any parent classes. In some cases, even finds parent code that VFP method editor does not (correcting a minor glitch in VFP)
    • "Code for all Methods" -- displays custom code for all methods.
    • "Parent code for all methods" -- displays custom code, as well as the code from any parent classes, for all methods.
    • "View Parent Values" -- displays current value for a property, as well as values stored in parent classes.
    • "View Parentage" -- views full parentage of the current control, thru all classes it is contained in, including where it is a control contained in a parent class.
    • "List of PEMs and their descriptions"

Plug-Ins

  • A number of plug-ins are available to alter the behavior of PEM Editor. Samples of each of them are provided in the sub-folder "Sample Plug-Ins". To enable any plug-in, it must be copied into the folder where PEM Editor is installed. Each sample PRG is amply commented, describing parameters and results.
  • Plug-In PRGs:
    • AutoRenameControls.PRG -- invoked when "auto-rename controls" is selected from a context menu, to use a different naming convention for automatically renaming controls.
    • CustomPropertyEditor.PRG -- new style of property editor, greatly simplifying the setup needed for property editors. Sample PRG provided shows how the toggle editor for non-native logical properties and editors for anchor property would be implemented.
    • GetDefaultValue.PRG -- invoked to determine the default value for a property when it is added. The PEMEditor default bases this default value on the first letter of the new property name. The sample PRG provided uses the second letter of the name.
    • GetNewMethodHeader.PRG -- returns the header used for any new methods that are created.
    • SetGridHighlighting.PRG -- sets the Dynamic* properties (and, conceivably, other properties) of the grid to allow custom coloring / highlighting beyond the preference provided with PEM-Editor
    • SetGridSortOrder.PRG -- allows the creation of very specific grid sorting of the grid beyond what is available by clicking on the column headers in the grid. (If used, clicking on column headers has no effect, having been over-ridden by this PRG)
  • Plug-In DBF:
    • "Custom Property Values.DBF" -- A list of properties with enumerated choices that are global; that is, that apply to all forms or classes. (see reference above)

Sticky Settings

  • Preferences form (from context menus)
    • Grid may be placed above or to the left of other controls (above works best for docking on left/right)
    • Use abbreviations in grid columns
    • Do not create or use _MemberData
    • Hide trace window (in debugger) when PEMEditor is active
    • Esc key closes PEM Editor
    • Assign default values (based on name of PEM) when creating new properties
    • Notify when a newly created property or method will not appear in the grid
    • Prompt before PEM deletion?
    • Use toggle editor for any property that is logical valued
    • Type of anchor editor to use:
      • None
      • VFP Default
      • Df Anchor Builder
    • Grid highlighting (may be over-ridden using Plug-In PRG)
      • Background colors
      • Foreground colors
      • Font Bold
      • Font Italic
  • Other settings:
    • Form size and position
    • Docking
    • For each of the grids (normal view and method view):
      • Sort Order
      • Column Widths
      • Column Order
    • All filters except the text search

Non-modal, dockable, re-sizable

Layout choice between vertical and horizontal

After installation, may be invoked either from the VFP menu bar (VFP9), or from StartPEMEditor.PRG. StartPEMEditor.PRG is created as part of the installation process and contains a reference to the full path where PEMEditor is installed. It thus can be copied anyplace else, and used to invoke PEM Editor programmically as needed.

Special considerations for VFP8:

  • Must be invoked with StartPemEditor.PRG (not from the VFP menu bar)
  • It cannot change a PEM's visibility or description.
  • The form is not resizable.
  • Introduces concept of global favorites (only visible in PEM Editor)

Documentation Included:

  • PEM Editor - Installation Notes VFP9.doc
  • PEM Editor - Installation Notes VFP8.doc
  • PEM Editor - Usage Notes.doc
  • PEM Editor 5 – Bug Fixes.doc
  • PEM Editor 5 – What’s New.doc

38363 Click here to download the latest release of PEM Editor 5

38236

Release History:
Version 5 - Released 2009-10-11

Version 4.10 - Released 2009-08-16 (653 downloads)

Version 4 - Released 2009-07-05 (671 dowbloads)

Version 3.01 - update released 2009-02-22

Version 3.0 - Released 2009-01-11. By Jim Nelson, with help from Doug Hennig, Matt Slay, and Rick Schummer. (1252 downloads)

Version 2.0 - Released 2008-11-10. By Jim Nelson and Doug Hennig.

Version 1.0 by Marcia Akins

Last edited Oct 12 at 3:57 PM by mattslay, version 28
Comments
camilghircoias Jan 14 at 12:32 PM 
It seems not to work on properties added to a formset. It does not show them.

RCampbell12 Jan 16 at 1:33 PM 
Since installing (actually I believe this started with v2.0), I have lost the Help entry in the context menu when I right click a PEM in the Properties window in VFP. I can still get to help other ways, of course, but I'd like to get that Help entry back in the menu. I really like v2.0 and look forward to installing v3.0 soon.

cmtrmstr Jan 29 at 7:24 AM 
It is not for Formset control, and how can i uninstall Ver 3.0 and back to default one

edyshor Feb 12 at 1:46 PM 
could you pack 2 zip files for download, one as it is (with sourcecode) and another onewithout the source?
i love it, but in his version i cand't find anywere wha files are truly needed and what aren't so i'll have to find fo myself, but i would have wished to skip the try&error :)

edyshor Feb 12 at 4:05 PM 
a few bugs & anoyances, - after i've newlly installed vfp9 + sp2 + PEM Editor and running FoxTabs also (don't know if it matters)
on a tipical form created from a custom class, i click on add new method in Fom menu and it shows the PEM Editor, and on tp of it the Standard VFP "New Method" dialog (modal of course). I click on cancel, i close PEM Editor and i click on Fom / NewMethod again, to check if it still happens. It doesn't show the VFP standard New Method dialog this time, but when i click on the splitter bars it thos an error "Property Name is not found" in "txtName.Valid" on the line with "If (Vartype(loObject) = 'O' And Upper(loObject.Name) = 'CMDREVERT') Or ;" It happens aparently at randsom since some tims the splitters works and other time they don't. But it hppens allways afer i type something as method's name in the textbox then click on the horizontal splitter bar.
I kind of dislike the "New Method" approach, i prefered the simple and discrete "New Method / Property dialog replacement" for quick and repetatly insertions of methods and properties without all the overkill the PEM editor brings. For editing a metod/property is the bestever, aside from the bugs mentioned.
I run WinXP SP3 with all updates (if it helps), vfp9sp2, PEM Editor, FoxTabs, BrowserX ..

VFOX Feb 13 at 10:44 AM 
Bug report:
1. Environment: Windows XP + SP3, Visual FoxPro 9.0 + SP1
2. Open any object for edit
3. New Method (or New Property)
4. In PEM Editor drag any splitter pointer (5 dots) and ...Ops.. Program Error: Property NAME is not found.

VFOX Feb 13 at 10:55 AM 
For error correction:
1. Open Pemeditor Project
2. Edit Class editpropertycontrols in editproperty.vcx
3. Open Object txtName.Valid event and replace code:
If (Vartype(loObject) = 'O' AND Upper(loObject.Name) = 'CMDREVERT') Or lastkey() = 27
with
If (Vartype(loObject) = 'O' AND TYPE("loObject.Name") = 'C' AND Upper(loObject.Name) = 'CMDREVERT') Or lastkey() = 27
4. Build project to app

RCampbell12 Feb 14 at 12:50 PM 
Is there a way to have the system *not* use _MemberData to remember the property/method's case? I'm using Guineu and it does not yet handle _MemberData properly. I guess you're supplying the source and I could change it, but was hoping this was an option somewhere.

JimRNelson Mar 2 at 4:34 AM 
Response to messages thru Feb. 28. Note that Version 3.01 was releases on Sunday, Feb 22.

(1) Problem having handling of formsets was resolved in 3.01
(2) The missing Help entry in the Property Window has now returned
(3) PEM Editor should be installed in its own folder. When it is installed, it creates a PRG named StartPEMEditor.PRG. These are the only two files that need exist in that folder. (This will change when Version 4 is available).
(4) All the problems with the splitters, clicking on them and trying to move them, have been resolved. Same with the code which bombed referencing "CMDREVERT'
(5) The Preferences form (from the grid's context menu) allows you to indicate whether you want to skip use of _MemberData.

RCampbell12 Mar 9 at 10:12 PM 
I entered an item in the issue tracker. An easy-to-reproduce bug related to resizing the PEM Editor form. It is not showing up when I do a search, however. Perhaps it needs to be approved before it is generally available.

fdbozzo May 12 at 3:34 PM 
I cant see the images, just blank boxes with the X (like when there isn't any image assigned).
I've tried registering the APP in c:\vfpx\PEMEditor directory (with DO <App>), and it appears, but without any images. I've also tried regenerating the APP with the same problem. In design mode can't see any image visually on the grid (just the picture property with the bitmap full path).

What can it be? Any setting? I'm using VFP9 + SP2 (latest) in Windows XP+SP3 spanish.
Regards.

RGBean944 May 22 at 9:16 PM 
I notice that when you try to rename a method and that method has a preprocessor #IF based on an an #INCLUDED #DEFINE, you get a 'compile' error, and it blows away the method unless you immediately close the form and don't save the changes. Using VFP 9.0 SP 2 with all Hotfixes (09.00.0000.7423)

edyshor Jun 23 at 2:17 PM 
Could you include in each of the textboxes Lostfocus event something of the likes:
If !Inlist(Lastkey(), 13, 9, 15, 18, 3, 27) And !Mdown() Then
&& ENTER, TAB, Shift+TAB, PgUp, PgDown, ESC
Nodefault
Endif
Or at least make it aviable as an option. It's really anoying the fact that the focus jumps to prev/next control when i'm using arrow keys :( - its prety tiresome to change it each and every time i downoad a release.

camilghircoias Jul 7 at 7:15 AM 
Hi,
I want to report a bug that makes it unusable for me.
I have a formset. Go edit/property dialog and click in the tree combo (up,left)
Receive "parent is not an object error".
It seems the pem editor was not tested on formsets enough.

thn Jul 26 at 1:23 PM 
Hi
PEM Editor Version 4 is an awfull tool, absolutely fantastic
Thanks a lot for sharing this outstanding work
I encourage every VFP developer to use it

Koen Aug 18 at 9:21 AM 
Version 4.10 now works x-times faster than all previous versions. There does not seem to be any serious shortcomings anymore on this usefull application.

thn Sep 3 at 12:28 PM 
Detected a slight bug
Cannot change Method from "Protected" to "Public"
HTH
and thanks again

Skysurfer Sep 9 at 6:26 PM 
First of all, thank you for your excellent work. I've used PEM Editor since version 3, and I found several bugs which I name:

- It can't remove custom properties or methods, it is removed from the list, immediately I save the class, then when I re-open it, the property/method still exists. I can't get rid of the method/property.
- It can't change visibility of a class method/property.
- When renaming a method the old method with the old name still exists as well as the new method with the new name, and I can't get rid of the old method.

I guess fixing those bugs is important to make it a better tool than the regular PEM Editor.

JimRNelson Sep 10 at 5:51 PM 
Skysurfer --

Thanks for the bug reports.

I must say that I suspect that something very weird is going on for you. Your reports have to do with basic features that have been part of PEM Editor -- well, for as long as I've been working on it. I use those features (except for visibility) every day. I would expect that the others who use it use those same features regularly.

I have just tried duplicating your problems, and cannot. I am able to remove, rename, and change the visibility of custom properties and methods.

So, I'm kind of stumped as to what is causing your problems.

You should be able to make a change, click 'Refresh', and see the effect of the change. Refresh actually recreates the grid based on what is in the Form Designer, and this should be exactly what you see in the Property Window at the same time.

One more thing that comes to mind -- Does this happen on ALL forms and classes you work on? Does it always fail? If not, can you identify any circumstances where it always fails?

Skysurfer Sep 11 at 5:23 AM 
Hi Jim. As I said, this bug happened to me since version 3. By the way when I installed version 4.1 I didn't previously uninstalled version 3. Might that be causing the bug? By the way, I always use the Custom base class for my classes and it always happens on them I haven't tried with another base class (this is because the project I'm working on these days is a process with no UI). Another unusual setup I have is that I shared a folder that then I map it as unit K: I have all my projects and classes on that unit`s folders. As you mentioned, I rename, remove or or change visibility, then when I click "Refresh" the removed method apperars, the renamed method is effectively renamed but another method with the old name and in lowercase appears too, and the visibility is not changed. Is there anything I can do to help you/me to reproduce this bug? Oh, I'm using VFP9 SP2 and the last patch that fixes the reports' group header bug on WinXP SP3.

JimRNelson Sep 11 at 4:57 PM 
SkySurfer:
First of all, I'm glad both that you are using the most recent version and that you told me so. (That was going to be my next question).

There is no need to uninstall previous versions, but I suggest you put newer versions in a new folder and re-install. This shouldn't have caused your problem, however.

I'm almost 100% sure that the problem you are experiencing is occurring because of the custom base classes you are using.

One thing I'd like you to try, if you could, would be to try using it on one of the 'normal' base classes -- I think it should work correctly then; I;d be getting howls from all over it weren't.

In the meantime, I have created my own class based on a custom base class, and have been unable to duplicate your problem. I have been able to add both properties and methods, rename them, and change their visibility. When I save the class and re-open it, I have not lost anything -- everything I changed was saved.

Is there any chance you could send me your class library, and specific step by step instructions so that I can attempt to reproduce the problem here?

Thanks
Jim Nelson

Skysurfer Sep 17 at 10:55 PM 
Hi Jim, thanks for your helping. Yesterday I tried to delete aCustom method and, as it always happened to me it was not deleted. Then, just by curiosity I opened the class library as a table and found that in memo field "Reserved3" there was the name of the method I tried to delete preceded by an asterisk and followed by the comments I entered for the method. I deleted that line, then I opened the class and to my surprise the method was gone. Might that give you an idea on wthat is going on?

jzakula Sep 22 at 8:46 PM 
Hi, I just started using Pem Editor (latest version) and I like it, but I find that with some particularly large classes and forms that I am working with at present, as I click (or arrow) from class to class in the grid, the controls in the right-hand container refresh unreliably. Actually, they more often don't than do. These controls are several subclasses deep (possible effect?), however I think that the issue may arise from the number of pems (150+ methods). Has anyone else encountered similar behavior? Thanks, nice tool!

JimRNelson Sep 26 at 9:08 PM 
JZakula --

What exactly do you mean 'the controls refresh unreliably'? I'll need more specific information than that to be able to try to diagnose your problem.

As far as I know and have encountered, there should be no problem either with the number of subclasses or the number of PEMs. But, we'll see once you tell me more.

Jim Nelson

JimRNelson Sep 26 at 9:17 PM 
SkySurfer:

Unfortunately, that doesn't help. What you did was to hack the VCX - field Reserved3 is where the names of the custom properties and methods are stored. Anyway, PEMEditor never updates the SCX or VCX; it uses only native VFP functions and methods.

A few questions and suggestions:

(1) Does this always happen, for all forms and classes, and for all customer properties or methods you try to remove? If not, can you please tell me which ones appear to work and which ones fail?

(2) Try doing this with both PEM Editor open and the Property Window. When you remove a custom method (or property) using PEMEditor, is it also removed from the Property Window? When you remove it using Property Window, is it removed when you refresh PEM Editor? In both cases, when you save the class and re-open, is it gone?

(3) Can you please send me a copy of any of your classes that fail so that I can work on them as well?

Thanks,

Jim Nelson

boudewijn Sep 29 at 9:09 AM 
Found a little bug.

I added a method and initially made that protected.
For testing purposes I wanted to make it public later on.
It stubbornly kept the method protected. I cannot change it other than to remove the method and add it again as a public method.
The other way around, from public to protected does work.
Once protected you cannot change it back to public, I can make it hidden, and from hidden again protected, but no way I can change it back to public.

Maybe form the next update.

JimRNelson Sep 29 at 8:13 PM 
Boudewin --

Are you having this problem in the class where you have added the method, or in a child class?

I am not able to duplicate the problem when you change the visibility in the class where the property or method is added (custom).

I am, however, able to duplicate this in a child class. If a property or method is inherited, and you try to change the visibility BACK to public, nothing happens. This is not a bug in PEM Editor so much as it as a limitation in what VFP allows -- PEMEditor is just using AddProperty, and that particular combination fails to have any effect.

So, unfortunately, this is not something that can be corrected. (sigh)

Jim Nelson

jzakula Sep 30 at 12:56 AM 
The controls refresh unreliably:
If I open the pemeditor form and click in the grid on the left to view a method, that method's data may or may not refresh in the controls on the right.
If I click on several more methods in the grid the controls on the right will stop refreshing and as often as I click I will continue to see the data for the method where the refreshing stopped.
If I click into the "Name:" textbox, the correct name will then appear for the appropriate method chosen in the grid.
If I click into the "Code:" editbox, I will then see the appropriate code. If I click into the "Description:" editbox, the proper description will appear.
If I click on other controls containing member data they would seem to refresh but the values would obviously change.
If I click the "Current Control" checkbox above the grid I can once again make choices in the grid and see the controls on the right refresh.
When "Current Control" is checked it seems that as many as 5 or 7 choices can be made before the refresh mechanism fails.
Also, sometimes if I wait and click around in the grid long enough the refresh mechanism works for a few more methods.
Sometimes clicking the refresh button at the top of the dialog will force a refresh and sometimes it will not.
Occasionally when the dialog opens the controls in the right panel are not visible.
If I click an editor window behind the right panel and click back into the dialog the controls become visible.
Occasionally unneeded buttons do not disappear from the bottom of the right pane and the buttons appear overlapped.
I have not noticed exactly when this happens yet.
If this doesn't help, let me know what else you might need. The problem isn't a show-stopper. It's just annoying.
Thanks,

Jeff Zakula

JimRNelson Sep 30 at 4:52 PM 
Jeff --

Wow! That's really wacky behavior!! (You get a prize!)

You mentioned earlier that it only happens for some particularly large forms and classes. Is that correct ... for normal sized guys, you have no problem?

I'm sort of at a loss as to what other questions to ask ... hmmm:
What version of VFP are you using?
What version of PEM Editor?
Are any of your debugger windows open? If so, can you try it again with them closed?
Can you try this on a different PC to see if you get the same behaviorr?
Any possibility you could package things up and send my a zip so that I can try it?
Can you try _oPEMEditor.Draw() from the command window when its acting strange?


I think that's all that for now

Jim Nelson

jzakula Oct 13 at 5:38 PM 
Hi Jim,

I did a little fooling around on my current machine and didn't come up with anything definitive. I did put the pem editor on another machine and it worked flawlessly. I am setting up another development machine right now because my current one is a pretty old xp unit, and I have noticed some suspicious behavior in a couple other apps. So, I would chalk it up to winrot at this point. Sorry to throw you a curve.

Jeff Zakula

JimRNelson Oct 13 at 7:23 PM 
Jeff --

No problem at all. If you have any more problems, concerns, suggestions, etc, in the future, gimme a call ... uh, message.

Jim

CeliaBertoia Nov 2 at 12:41 AM 
I just started using the PEM Editor Version 5. Bravo.

I like the control over the visibility of PEMs that it adds and the extra data columns when compared to the VFP native properties editor.

Here are a couple comments regarding odd behavior I have noticed. Nothing critical – just annoying.

The PEM Editor changes the mouse cursor quite often to the Wait or Hour Glass cursor, but does not change it back until I move the mouse. This behavior gives the false impression that it is still doing something when it is not doing anything. Perhaps a refresh or redraw of the mouse cursor when whatever task is completed will fix this – unless this is FoxPro doing this.

The scrollable list of PEMs and its scroll bar behave rather oddly. It is possible to scroll down until all the rows are above the visible area in the list box. The scroll bar tab size does not reflect the size of the scrolling region correctly. This is more noticeable when Method View is checked. When the amount of rows barely fills the list the scroll bar tab should be nearly full height or the scroll bar should go away altogether. Instead it sticks around or is smaller then it should be allowing scrolling beyond the end of the list. When clicking in the scroll bar above or below the scroll bar tab, the list will jump around unpredictably. Perhaps the scroll range is not being set correctly.

Anyone else notice these behaviors? I’m running XP PRO SP3 fresh and clean dedicated VFP 9.0 SP2 development machine.

Thanks to all for the great tool

Celia

JimRNelson Nov 2 at 3:54 AM 
Celia --

Thanks for the kind words. As for your comments:

(1) Actually, PEM Editor never sets the cursor to the Hour Glass -- VFP is doing that. I agree, quite annoying. It has been corrected (after much pain) on a few of the most frequently used objects. (This only occurs in SP2, to my knowledge)

(2) The filters in PEM Editor are in fact filters on a cursor -- as you may know, the scrollbar does not behave well on a filtered cursor. This has been there since I started, and I wonder why I don't recall anybody else bringing this up.

Two new things:

(1) You may not be aware that most of the serious features in PEM Editor are found in the right-click context menus. There is a lot more to it than just a few columns. There are actually four context menus:
(1) On the grid
(2) On the "Find" filter
(3) On the combobox (which drops down as a TreeView)
(4) On the TreeView.

(2) I expect to have documentation for PEM Editor available fairly soon -- am hoping before Thanksgving.

Cheers,

Jim Nelson

kknorr Wed at 10:44 PM 
Jim I just got a Win 7 machine and installed vfp9 sp2 on it. I installed Pem Editor 5.0 and found it will not run because its using msxml2.domdocument.4.0. I have version 5 and 6 installed on this machine. can you change code to use the latest version.

Ken

kwesterlund Thu at 6:48 PM 
Fantastic! Each version is getting better with more and more features.

I love the copy function, simply unbelievable. It took a while to find it though ; )

Thanks for making my job easier.

Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | Advertise With Us | Version 2009.10.27.15987