📄 toolsapi.pas
字号:
IOTAResourceEntry = interface(IUnknown)
['{26EB0E51-F97B-11D1-AB27-00C04FB16FB3}']
{ Gets the resource type of this entry. Follows Windows standard of
specifying a type by name or value. If the high-word is 0, then the
low-word is the resource type value, otherwise it is a pointer to a null
terminated ANSI (byte per char) string. Most predefined types are by
value. }
function GetResourceType: PChar;
{ Gets the resource name of this entry. Follows Windows standard of
specifying a type by name or value. If the high-word is 0, then the
low-word is the resource type value, otherwise it is a pointer to a null
terminated ANSI (byte per char) string. }
function GetResourceName: PChar;
{ Changes the Type and name of this resource entry }
function Change(NewType, NewName: PChar): Boolean;
{ Gets and sets various resource header values. Pass in one of the \
TResHeaderValues enums to indicate which value to get/set. Although
some values are 16bits (Word) these functions operation only on
32bits (Integer). }
function GetHeaderValue(HeaderValue: TOTAResHeaderValue;
var Value: Integer): Boolean;
{ See GetHeaderValue }
function SetHeaderValue(HeaderValue: TOTAResHeaderValue;
Value: Integer): Boolean;
{ Returns a raw pointer to the actual resource data buffer. }
function GetData: Pointer;
{ Returns the current size of the data buffer. }
function GetDataSize: Integer;
{ Resizes the current data buffer. If the size is smaller than the
current size, the data is simply truncated without regard to its
current contents. }
procedure SetDataSize(NewSize: Integer);
{ Returns a unique handle value identifying the resource entry. }
function GetEntryHandle: TOTAHandle;
property DataSize: Integer read GetDataSize write SetDataSize;
end;
{ The IOTAProjectResource is an interface on the project's resource file
(<projectname>.RES). }
IOTAProjectResource = interface(IOTAEditor)
['{26EB0E52-F97B-11D1-AB27-00C04FB16FB3}']
{ Returns the number of Resource entries. }
function GetEntryCount: Integer;
{ Given an index, returns a IOTAResourceEntry of the index'th entry. }
function GetEntry(Index: Integer): IOTAResourceEntry;
{ Given an entry handle, return the IOTAResourceEntry }
function GetEntryFromHandle(EntryHandle: TOTAHandle): IOTAResourceEntry;
{ Given a Resource type and name, return a IOTAResourceEntry or nil
if not found. }
function FindEntry(ResType, Name: PChar): IOTAResourceEntry;
{ Given an entry handle, delete the given resource entry. }
procedure DeleteEntry(EntryHandle: TOTAHandle);
{ Creates a new resource entry of the given type and name and returns a
IOTAResourceEntry. Returns nil if the entry already exists or any other
error occurs. }
function CreateEntry(ResType, Name: PChar; Flags, LanguageId: Word;
DataVersion, Version, Characteristics: Integer): IOTAResourceEntry;
end;
TOTAGetChildCallback = procedure (Param: Pointer; Component: IOTAComponent;
var Result: Boolean) of object;
{ INTAComponent - This is the native component interface }
INTAComponent = interface(IUnknown)
['{34B2E2D1-E36F-11D1-AB0E-00C04FB16FB3}']
{ Returns the actual TComponent/TPersistent }
function GetPersistent: TPersistent;
{ Returns the TComponent if this interface is a TComponent else nil }
function GetComponent: TComponent;
end;
{$IFDEF LINUX}
{$NODEFINE INTAComponent}
{$ENDIF}
{ The IOTAComponent is the base interface for a component living
on a form/data module. Never hold this interface for very long, since
the component may be deleted at any time. }
IOTAComponent = interface(IUnknown)
['{AC139ADF-329A-D411-87C6-9B2730412200}']
// Old GUID ['{34B2E2D0-E36F-11D1-AB0E-00C04FB16FB3}']
{ Returns a string representing the type of the component. }
function GetComponentType: string;
{ Returns a unique Handle to the TComponent/TPersistent }
function GetComponentHandle: TOTAHandle;
{ Returns the interface corresponding to the parent control if a TControl,
otherwise returns the owner of the control. If a TPersistent or the
root object then it returns nil. }
function GetParent: IOTAComponent;
{ Returns True if component is a TControl descendant }
function IsTControl: Boolean;
{ Returns the number of published properties on this component. }
function GetPropCount: Integer;
{ Given the index, returns the property name. }
function GetPropName(Index: Integer): string;
{ Given the index, returns the property type. }
function GetPropType(Index: Integer): TTypeKind;
{ Given the name, returns the property type. }
function GetPropTypeByName(const Name: string): TTypeKind;
{ Given the index or name, returns the property value. The untyped var
must be large enough to hold the returned value. If the property is
a descendant of TPersistent, the return value is a IOTAComponent. For
properties of any other object type, the return value is nil. }
function GetPropValue(Index: Integer; var Value): Boolean;
function GetPropValueByName(const Name: string; var Value): Boolean;
{ Given the index or name, sets the property value. }
function SetProp(Index: Integer; const Value): Boolean;
function SetPropByName(const Name: string; const Value): Boolean;
{ Enumerate the child controls just like TComponent.GetChildren }
function GetChildren(Param: Pointer; Proc: TOTAGetChildCallback): Boolean;
{ Returns the number of child controls (if a TWinControl/TWidgetControl descendant,
else returns 0). }
function GetControlCount: Integer;
{ Given the index, returns an interface to the child control. }
function GetControl(Index: Integer): IOTAComponent;
{ Returns the number of child components (if a TComponent descendant,
else returns 0). }
function GetComponentCount: Integer;
{ Given the index, returns an interface to the child component. }
function GetComponent(Index: Integer): IOTAComponent;
{ Selects the component and updates the Object Inspector. If AddToSelection
if true, then the current selection is not cleared, and the components are
multi-selected }
function Select(AddToSelection: Boolean): Boolean;
{ Same as Select except it brings the form to front with the component
selected. If this interface is a Form/Data Module, then Focus only
brings the form to front. See Select for description of AddToSelection}
function Focus(AddToSelection: Boolean): Boolean;
{ Deletes the component from the form. Following this call, this interface
will now be invalid and must be release. }
function Delete: Boolean;
{ Returns the IPersistent interface }
//function GetIPersistent: IPersistent;
{ Returns the IComponent interface if instance is a TComponent else nil }
//function GetIComponent: IComponent;
end;
INTAFormEditor = interface(IUnknown)
['{56931EB9-329A-D411-87C6-9B2730412200}']
// Old GUID ['{34B2E2CF-E36F-11D1-AB0E-00C04FB16FB3}']
{ Return the instance of the TFormDesigner on this editor }
function GetFormDesigner: DesignIntf.IDesigner;
procedure GetFormResource(Stream: TStream);
property FormDesigner: DesignIntf.IDesigner read GetFormDesigner;
end;
{$IFDEF LINUX}
{$NODEFINE INTAFormEditor}
{$ENDIF}
IOTAFormEditor = interface(IOTAEditor)
['{F17A7BD2-E07D-11D1-AB0B-00C04FB16FB3}']
{ Return the form editor root component }
function GetRootComponent: IOTAComponent;
function FindComponent(const Name: string): IOTAComponent;
function GetComponentFromHandle(ComponentHandle: TOTAHandle): IOTAComponent;
function GetSelCount: Integer;
function GetSelComponent(Index: Integer): IOTAComponent;
function GetCreateParent: IOTAComponent;
function CreateComponent(const Container: IOTAComponent;
const TypeName: string; X, Y, W, H: Integer): IOTAComponent;
procedure GetFormResource(const Stream: IStream);
end;
IOTATypeLibEditor = interface(IOTAEditor)
['{F17A7BD3-E07D-11D1-AB0B-00C04FB16FB3}']
end;
{ Interface implemented by a client to receive notifications
on a specific module }
IOTAModuleNotifier = interface(IOTANotifier)
['{F17A7BCE-E07D-11D1-AB0B-00C04FB16FB3}']
{ CheckOverwrite is called during a SaveAs operation to determine if any
files associated with this module will overwrite any other files.
Return True to allow the overwrite or no overwrite will occur }
function CheckOverwrite: Boolean;
{ User has renamed the module }
procedure ModuleRenamed(const NewName: string);
end;
IOTAModuleInfo50 = interface(IUnknown)
['{F17A7BD6-E07D-11D1-AB0B-00C04FB16FB3}']
{ Returns the type of this module }
function GetModuleType: TOTAModuleType;
{ Returns the Module Name }
function GetName: string;
{ Returns the Module File name }
function GetFileName: string;
{ Returns the Form Name }
function GetFormName: string;
{ Returns the Design class }
function GetDesignClass: string;
{ Fills the TStrings class with the CoClasses }
procedure GetCoClasses(CoClasses: TStrings);
{ Opens and returns the IOTAModule associated with this IOTAModuleInfo }
function OpenModule: IOTAModule;
property ModuleType: TOTAModuleType read GetModuleType;
property Name: string read GetName;
property FileName: string read GetFileName;
property FormName: string read GetFormName;
property DesignClass: string read GetDesignClass;
end;
IOTAModuleInfo = interface(IOTAModuleInfo50)
['{B3EEB4D2-ECDD-4CDC-B96E-B5C8F6D050A8}']
{ Returns the Custom module type identifier }
function GetCustomId: string;
{ Fills the TStrings class with the Additional files }
procedure GetAdditionalFiles(Files: TStrings);
property CustomId: string read GetCustomId;
end;
IOTAModule40 = interface(IUnknown)
['{F17A7BCC-E07D-11D1-AB0B-00C04FB16FB3}']
{ Call this to register an IOTANotifier. The result is the index to be
used when calling RemoveNotifier. If <0 then an error occurred. }
function AddNotifier(const ANotifier: IOTAModuleNotifier): Integer;
{ This invokes the Add To Interface dialog in Delphi }
procedure AddToInterface;
{ Attempt to close this module. True was successful and all references to
this module must be released. False if this module was not closed. }
function Close: Boolean;
{ Return the filename associated with this module. This is only the base
name used by the IDE. Header source and forms are obtained other ways.}
function GetFileName: string;
{ Return the currently assigned file system }
function GetFileSystem: string;
{ Returns the number of associated files (eg. Unit1.Pas and Unit1.dfm) }
function GetModuleFileCount: Integer;
{ Returns the associated file editor. Use QueryInterface to determine if
this is an IOTASourceEditor or IOTAFormEditor }
function GetModuleFileEditor(Index: Integer): IOTAEditor;
{ Return the number of open projects that own this module }
function GetOwnerCount: Integer; deprecated;
{ Return the Indexed Project that owns this module }
function GetOwner(Index: Integer): IOTAProject; deprecated;
{ Returns True if this modules has CoClasses. Can be used to determine if
AddToInterface can be called }
function HasCoClasses: Boolean;
{ Call with the index obtained from AddNotifier }
procedure RemoveNotifier(Index: Integer);
{ Save the module. ChangeName invokes the SaveAs logic. ForceSave will not
ask to save if the module is modified. Returns False if canceled
or an error }
function Save(ChangeName, ForceSave: Boolean): Boolean;
{ Sets the module filename. Header source and forms will use the base
filename. }
procedure SetFileName(const AFileName: string);
{ Sets the associated file system }
procedure SetFileSystem(const AFileSystem: string);
property OwnerCount: Integer read GetOwnerCount;
property Owners[Index: Integer]: IOTAProject read GetOwner;
property FileName: string read GetFileName write SetFileName;
property FileSystem: string read GetFileSystem write SetFileSystem;
end;
IOTAModule50 = interface(IOTAModule40)
['{15D3FB81-EF27-488E-B2B4-26B59CA89D9D}']
{ CloseModule allows an add-in to force a module closed regardless of
whether or not it is modified. If ForceClosed is False, then calling
this method has the same behaviour as Close as implemented in
IOTAModule40 }
function CloseModule(ForceClosed: Boolean): Boolean;
// access to the IOTAEditors contained by a Module
property ModuleFileCount: Integer read GetModuleFileCount;
property ModuleFileEditors[Index: I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -