>>Renoir,
>>I don't know of a way to save a property back into the class of an executable. But here is an idea to get the HelpContextID into the object at runtime.
>>Can you get the name of the object when the user creates a new help screen? If so, store the object name and the new HelpContextId into a table. You may need to store the FormName.ObjectName to uniquely identify it, just be consistent.
>
>Thanks David,
>
>Not the answer I was hoping for - although the one I expected... Didn't want to revamp what I've already written, but the I agree; the flexibility demands that the object's name be used instead of the HelpContextID. Oh, well, that's what Find and Replace is for...
>
>Renoir
I'm with you, I hate having to make major changes to what I've already written and tested. So here's another idea. I don't know your code, but I imagine you are passing something like This.HelpContextID to your help form. If so, you need three changes.
1. Change it to pass just "This" (without the quotes, of course).
2. Change the Help System parameter to oObj. If oObj.HelpContextID is greater than zero, use it. Your done and everything works as before. If oObj.HelpContextID = 0, then lookup oObj.Name in the table to get your HelpContextID. Once again, everything works the same.
3. Add code to the part of the help sytem that allows users to add new help screens so it will generate a valid HelpContextID and store it in the table with oObj.Name.
This should work with a minimum amount of Search and Replace.
David.