IDE Fix Pack 2010 – ObjectInspector F1 key

By | September 5, 2009

I got many requests to add a patch for the non-functioning F1 key in the Object Inspector. So I spend 2 hours trying to find out where the F1 got lost and what Delphi 2009 does what 2010 doesn’t. My research showed that Delphi 2009 calls a function named “ShowPropertyHelp” while Delphi 2010 skips this call. Before the call to ShowPropertyHelp there is a call to a function named “GetTrait”.In Delphi 2009 it returns an interface while in Delphi 2010 it returns nil.

Then I remembered that I saw something in ToolsAPI.pas that was called “Traits”. So I looked into it and found the IOTAPersonalityServices interface. By analyzing the GetTrait “call parameters” I was able to extract the GUID that is used for the IOTAPersonalityServices.GetTrait(ATraitGUID) parameter. It seems that in Delphi 2010 the Property-Help trait is missing or GetTrait doesn’t return it.

The next step was to try to add the “trait” by calling the IOTAPersonalityServices.AddPersonalityTrait method with the personality ID and the extracted GUID. And vólà the F1 key in the Object Inspector is back.

For those who can’t wait some months until I release a new IDE Fix Pack version can download a snapshot from:

https://www.idefixpack.de/fixpack/builds/


Oh, and while I was trying the F1 key, I saw the content of the Help. Or should I better say the missing content of the Help. They were on the right path with Delphi 2009.  And now this.
“Hey we almost have the Delphi 7 standard” – “So we can delete it and start all over again”.

10 thoughts on “IDE Fix Pack 2010 – ObjectInspector F1 key

  1. Cesar Romero

    Hi Andreas,

    I installed this build and Object Inspector F1 back to work, thank you very much.
    Just a question, every time it brings only C++ help not Delphi, I tried several different components + Form, different properties and every time the same result.
    Is possible it be a Help problem or maybe the extracted “Personality Trait” GUID you passing is fixed to C++ Builder Personality?

  2. j0seant

    Great! Thank you very much. (Bad for Embarcadero and missing documentation)

  3. Andreas Hausladen Post author

    @Cesar: If you press F1 on the “Align” property you see a Delphi help page. And with the German help I have more “Please help us to fill this page” pages than filled pages.

  4. Marcus

    A tip for German Delphi users: According to German right you can give back the Delphi 2010 product. The help is part of the buying contract and is not available in the product.

  5. Cesar Romero

    @Andreas:

    SO I think it is a Delphi problem, TForm.Align give me C++ help, this is the copy of the header from help:

    ms-help://embarcadero.rs2010/vcl/Forms.TForm.Align.html
    Forms.TForm.AlignFrom MediaWiki
    [edit] C++ Information
    From Forms.hpp

  6. eXandr

    off.

    Andy, are you going to build DLangExtantion for D2010? When?
    If you are not, then could you please share the source code with us so we build it for D2010 ourselves?

  7. LDS

    “I saw the content of the Help. Or should I better say the missing content of the Help.”
    Why did you believe F1 was not working? Because of an oversight? No, IMHO it was removed because it had nothing to show 😀

Comments are closed.