Embarcadero Skill Sprint – Developing Plugins in RAD Studio, Dec 22 2015


 On Dec 22 I’m running an Embarcadero skill sprint on writing plugins for Delphi and C++Builder – and it covers a lot more than many plugin intros do. Register for the webinar if you find the topic interesting!

Times

  • 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan
  • 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan
  • 5PM San Francisco / Wed 9AM Tokyo / Wed 10AM Sydney (edit: this may be wrong, it may be 12 noon Sydney time. Convert from the San Francisco time if you’re not sure about your timezone.)

Topics

It covers a lot of material – I’ve tried to address things that are not normally addressed in an introduction to plugins, and to give you a good basis in all the fundamentals. Hopefully after this you should have a good enough background to write any plugin you want.

Basics

  • What a plugin is, how to make a simple plugin with icons on the splash screen and About box
  • The difference between DLL and BPL plugins
  • Debugging a plugin (running Delphi under Delphi)

Advanced

  • Using dockable forms
  • Notifiers – a key mechanism used to communicate between the IDE and plugins
  • How to draw on the code editor in Seattle
  • Plus a live Q&A

All in 38 minutes!

Apart from editor painting, all dot points are applicable to a wide range of IDE versions (certainly XE and above, and probably something like D2006 and above.) I’m not sure it’s the most coherent, well-put-together presentation I’ve ever done – I’m writing this after I finished it at 3AM – but I hope you find it interesting.

Replay

Note there is an error in the video: I say that the docs say to use ‘WizardEntryPoint’ as the entry point name, which doesn’t work (true) and to use ‘INITWIZARD0001’ as the actual entry point (also true). I found the documented value didn’t work and looked for what the IDE was actually trying to load, and so used that. It turns out that ‘WizardEntryPoint’ is not the name of the method but a constant, the value of which is ‘INITWIZARD0001’, which makes more sense. Correct would would read ‘InitWizard name WizardEntryPoint;’, no quotes around around the name. I wish that had been documented clearly before I misread it, and made a mistake on video. Can’t erase it now!

Downloads

You can download the source code for the sample plugin. This includes the updated dockable form code based on Allen Bauer’s original.

Discussions about this page on Google+