Is there a way to add a plugin tab into the project options via OTAPI as you can do with the IDE options (INTAAddInOptions)?

Comments

  1. I can't see any OTAPI way of doing it but it seems that Simon Stuart has you covered :)

    ReplyDelete
  2. Simon Stuart I was hoping for you to have a solution! :) Looking forward to see it

    ReplyDelete
  3. The OTA doesn't support it. The pointer I can give you is @Basepasprojopts@TProjPageNames@$bctr$qqr30Basepasprojopts@TProjPageGroup and IIRC I gave them you already on June 30, 2014.

    ReplyDelete
  4. Simon Stuart Oh, I know how I can add to "Tools->Options" and I am doing that already (not very difficult). I was asking for adding to the project options.

    Uwe Schuster I don't remember that I ever asked for that. And in june I did not work on any IDE plugin iirc - but I am getting old and keep forgetting things :p

    ReplyDelete
  5. Simon Stuart I'm also interested in this case and have a plan for tests and experiments on the topic :)
    If you share this example with me too - will be grateful.

    ReplyDelete
  6. Stefan Glienke Check the attachment of the mail from the given date for the given BPL export.

    ReplyDelete
  7. Ah, that email was in another context that's why I did not remember it. I will look into if that helps, thanks

    ReplyDelete
  8. Uwe Schuster Would that gobbly-gook be the constructor for BasePasProjOpts.TProjPageNames, taking a TProjPageGroup as a parameter?

    ReplyDelete
  9. Nicholas Ring Yes. TProjPageNames is a TStringList descendant that holds the classnames of the pages. In most cases adding your own page makes sense when the TProjPageGroup is in [pgAllPages, pgAllPackagePages] unless you want to show your pages by intention also in Run | Parameters...

    ReplyDelete
  10. Stefan Glienke Sorry for side tracking your help request but I am interested in the technique that Uwe Schuster has raised.

    I have seen mangled method signatures (what is the right word?) before but how do you go about converting a method you are interested in to one, so you can find the entry point to it?

    ReplyDelete
  11. Nicholas Ring Brute force way:

    1. Create a small project that has a class and a method with the desired names and arguments.
    2. Compile your project.
    3. Read the name out of the .map file.

    There are probably tools for this, but this approach works for any compiler.

    ReplyDelete
  12. David Heffernan Thanks for the brute force way - a very handy way.

    Just wondering how it is done when the class isn't available (like some of the IDE objects).

    ReplyDelete
  13. Nicholas Ring BPLs, which technically DLLs, export and import mangled names. Signature would not correct, because there is no information about the result. Static or dynamic linking are two options to call the methods. Information on mangling can be found in $(BDS)\source\cpprtl\Source\misc\unmangle.c or http://edn.embarcadero.com/article/27758.

    ReplyDelete
  14. Uwe Schuster Thanks for the info :)

    ReplyDelete

Post a Comment