RAD Studio |  |

Obtaining Tools API Services
See Also
Collapse All

To do anything useful, a wizard needs access to the IDE: its editors, windows, menus, and so on. This is the role of the service interfaces. The Tools API includes many services, such as action services to perform file actions, editor services to access the source code editor, debugger services to access the debugger, and so on. The following table summarizes all the service interfaces.

Tools API service interfaces

Interface | Description
INTAServices | Provides access to native IDE objects: main menu, action list, image list, and tool bars.
IOTAActionServices | Performs basic file actions: open, close, save, and reload a file.
IOTACodeCompletionServices | Provides access to code completion, allowing a wizard to install a custom code completion manager.
IOTADebuggerServices | Provides access to debugger.
IOTAEditorServices | Provides access to source code editor and its internal buffers.
IOTAKeyBindingServices | Permits a wizard to register custom keyboard bindings.
IOTAKeyboardServices | Provides access to keyboard macros and bindings.
IOTAKeyboardDiagnostics | Toggle debugging of keystrokes.
IOTAMessageServices | Provides access to message view.
IOTAModuleServices | Provides access to open files.
IOTAPackageServices | Queries the names of all installed packages and their components.
IOTAServices | Miscellaneous services.
IOTAToDoServices | Provides access to the To-Do list, allowing a wizard to install a custom To-Do manager.
IOTAToolsFilter | Registers tools filter notifiers.
IOTAWizardServices | Registers and unregisters wizards.

To use a service interface, cast the BorlandIDEServices variable to the desired service using the global Supports function, which is defined in the SysUtils unit. For example,

Copy Code

    procedure set_keystroke_debugging(debugging: Boolean);
    var
      diag: IOTAKeyboardDiagnostics
    begin
      if Supports(BorlandIDEServices, IOTAKeyboardDiagnostics, diag) then
        diag.KeyTracing := debugging;
    end;

Copy Code

    void set_keystroke_debugging(bool debugging)
    {
    _di_IOTAKeyboardDiagnostics diag;
    if (BorlandIDEServices->Supports(diag))
    diag->KeyTracing = debugging;
    }

If your wizard needs to use a specific service often, you can keep a pointer to the service as a data member of your wizard class.

The following topics discuss special considerations when working with the Tools API service interfaces:

- Using native IDE objects
- Debugging a wizard
- Interface version numbers

See Also

Working with Files and Editors

Creating Forms and Projects

Notifying a Wizard of IDE Events

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!