DesignIntf

From RAD Studio API Documentation
Jump to: navigation, search


DesignIntf defines the interfaces and classes used by the property editors in the IDE. RAD Studio gives you the chance to use DesignIntf from a package or a DLL source. Below you can find the best approach to use it in both cases.

Using DesignIntf from a Package.

As IDE plugins are mostly packages, and they use DesignIntf unit, the most common way to use it is to add the designide file to the Requires folder, as shown below:

  1. In the Projects window, expand the Package1.bpl node.
    Package1 bpl.png
  2. Right-click the Requires file and select Add Reference…
    Add Reference.png
  3. When the Add window opens, type designide.dcp in the Package name field.
    Add Package.png
  4. Once you click OK, you should see a designide.dcp file created below the Requires file.
    Designide dcp.png

After adding the package name, the compiler automatically recognizes that your package uses the designide package.

Using DesignIntf from a DLL.

To use the DesignIntf and DesignEditors units from a DLL with Delphi, you need to link to the designide package. To link it successfully, add the –LUDesignIDE to the Compiler options:

  1. In the menu bar, click Project and select Options to open the Project Options dialog box.
  2. Under Delphi Compiler, select Compiling.
  3. Under the Other options section, look for Additional options to pass to the compiler, and type –LUDesignIDE.
    Compiling.png

With C++, you need to ensure that $(BDS)\include\windows\vcl\design is added to the INCLUDE path and that the designide.bpi is added to the Requires folder of your package.

For more information, see the comments in the source; the DesignIntf.pas source file is liberally commented.


Classes

IActivatableRepresents a component that can be activated.
IClassProvides access to class metadata.
IComponentEditorIComponentEditor is the interface that the form designer uses to communicate with component editors.
IComponentGuidelinesProvides access to the guidelines for visual components.
ICustomModuleRepresents a custom module.
IDefaultEditorRepresents a default editor.
IDesignEditQueryProvides access to editing operations.
IDesignerIDesigner is an interface to the form designer in the IDE.
IDesigner100IDesigner100 is an interface to the form designer in the IDE.
IDesigner170
IDesigner200
IDesigner290
IDesigner60IDesigner60 is an interface to the form designer in the IDE.
IDesigner70IDesigner70 is an interface to the form designer in the IDE.
IDesigner80IDesigner80 is an interface to the form designer in the IDE.
IDesignerSelectionsIDesignerSelections represents a list of persistent objects.
IDesignNotificationRepresents a notification from the IDE when a specific event occurs.
IDesignNotificationEx
IDesignNotificationViews
IDesignObjectRepresents an object on the form designer.
IDesignPersistentRepresents a persistent object used by the designer.
IDesignWindowRepresents a design window that appears in the IDE.
IEditHandlerProvides access to editing operations.
IEventInfoHolds type information about an event.
IHostFormRepresents a host form for a custom designer.
IImplementationProvides access to the instance of a class.
IMethodPropertyRepresents a method property.
IPropertyIProperty is the interface that the Object Inspector uses to communicate with property editors.
IProperty160
IProperty70Represents a property.
IProperty80Represents a property.
IPropertyControlProvides control to the data of a property.
IPropertyDescriptionAllows you to add descriptions to the property.
IPropertyHostProvides access to a drop-down property control.
IPropertyHost20Provides access to a drop-down property control.
IPropertyKindProvides access to the type of the property.
IReferencePropertyRepresents a property whose value is another component on the form.
ISelectionEditorProvides support for editing components selected in the form designer.
ISelectionEditorListRepresents a list of ISelectionEditors.
ISelectionPropertyFilterProvides support for filtering the list of properties for a selection to be sent to the Object Inspector.
IShowReferenceProperty
IWidePropertyRepresents a wide string property.
IWideProperty10Represents an extension to the IWideProperty interface.
IWidePropertyDescriptionProvides support to obtain the description of a property.
TBaseComponentEditorTBaseComponentEditor is the base class for all component editors.
TBaseComponentGuidelinesTBaseComponentGuidelines is the base class for component guidelines classes.
TBaseCustomModuleBase class for custom modules.
TBasePropertyEditorTBasePropertyEditor is the base class for all property editors.
TBaseSelectionEditorBase class for selection editor classes.
TClassWrapperBase wrapper for IClass.
TComponentEditorClassClass of TBaseComponentEditor.
TComponentGuidelinesClassClass of TBaseComponentGuidelines.
TCustomModuleClassClass of TBaseCustomModule.
TDesignerSelectionsTDesignerSelections maintains a list of persistent objects.
TDragTargetProvides support for drag-and-drop operations.
TDragTargetClassClass of TDragTarget.
TEventInfoRepresents the type information for an event.
TPropertyEditorClassClass of TBasePropertyEditor.
TSelectionEditorClassClass of TBaseSelectionEditor.

Routines

CreateSelectionList
EnableDemandLoadReport
ForceDemandLoadStateSpecifies whether the IDE should use smart loading of registered components.
PersistentToDesignObject
RegisterComponentEditorRegisters an editor so that it is available at design time.
RegisterComponentGuidelines
RegisterCustomModule
RegisterDesignDragObject
RegisterDesignNotification
RegisterDragTarget
RegisterIDropTarget
RegisterPropertiesInCategoryRegisters multiple properties in a specific property category.
RegisterPropertyEditorAllows a component to bring up a custom property editor from the Object Inspector.
RegisterPropertyInCategoryRegisters a single property in a specific property category.
RegisterPropertyMapper
RegisterSelectionEditor
SetPropertyEditorGroup
UnlistPublishedProperty
UnregisterDesignNotification

Types

TCustomModuleAttribute
TCustomModuleAttributes
TDemandLoadStateSpecifies whether the IDE should use smart (lazy) loading of design-time packages installed in the IDE.
TDesignerGuideType
TEditAction
TEditState
TEditStates
TEnableDemandLoadReportProc
TForceDemandLoadStateProc
TGetDesignerEvent
TGetPropProc
TGetWideStrProc
TPropertyAttribute
TPropertyAttributes
TPropertyEditorFilterFunc
TPropertyMapperFunc
TPropKind
TRegisterComponentEditorProc
TRegisterComponentGuidelines
TRegisterCustomModuleProc
TRegisterDesignDragObject
TRegisterDesignNotification
TRegisterDragTargetProc
TRegisterIDropTarget
TRegisterPropertyEditorProc
TRegisterPropertyInCategoryProc
TRegisterPropertyMapperProc
TRegisterSelectionEditorProc
TSetPropertyEditorGroupProc

Variables

_sActionCategoryName
_sAppearanceCategoryName
_sBehaviorCategoryName
_sDatabaseCategoryName
_sDataCategoryName
_sDesignCategoryName
_sDragNDropCategoryName
_sFocusCategoryName
_sHelpCategoryName
_sInputCategoryName
_sInvalidFilter
_sKeyCategoryName
_sLayoutCategoryName
_sLegacyCategoryName
_sLinkageCategoryName
_sLocaleCategoryName
_sLocalizableCategoryName
_sMiscellaneousCategoryName
_sMouseCategoryName
_sPropertyChangeCategoryName
_sVisualCategoryName
_sWindowStyleName
EnableDemandLoadReportProc
ForceDemandLoadStateProc
GReferenceExpandableIndicates whether the Object Inspector treats component properties as expandable subproperties.
GShowReadOnlyPropsIndicates whether the Object Inspector displays published read-only properties.
RegisterComponentEditorProc
RegisterComponentGuidelinesProc
RegisterCustomModuleProc
RegisterDesignDragObjectProc
RegisterDesignNotificationProc
RegisterDragTargetProc
RegisterIDropTargetProc
RegisterPropertyEditorProc
RegisterPropertyInCategoryProc
RegisterPropertyMapperProc
RegisterSelectionEditorProc
SetPropertyEditorGroupProc
UnregisterDesignNotificationProc

Constants

MaxIdentLengthMaxIdentLength: Integer = $3F;