Bands

This page covers IBand, IBands, IBandList, IBanding, IBandChangeEvent, and IBandChangeEventHandler. These interfaces define available band materials and the left/right/top/bottom assignments attached to pieces.

Interfaces

IBand

Edge band definition with dimensions and supported material thickness.

Source: SDK/include/pascal/uIBand.pas

Properties

  • Property name
    Id
    Type
    Int64
    Description

    Persistent numeric identifier used by TonCut to track the object.

    Declaration

    property Id: Int64 read GetId write SetId;

    Published SDK declaration languages: Pascal.

  • Property name
    Title
    Type
    WideString
    Description

    Human-readable title shown to users.

    Declaration

    property Title: WideString read GetTitle write SetTitle;

    Published SDK declaration languages: Pascal.

  • Property name
    Width
    Type
    Cardinal
    Description

    Width value stored on the object.

    Declaration

    property Width: Cardinal read GetWidth write SetWidth;

    Published SDK declaration languages: Pascal.

  • Property name
    MaxMaterialThickness
    Type
    Cardinal
    Description

    Gets or sets max material thickness.

    Declaration

    property MaxMaterialThickness: Cardinal read GetMaxMaterialThickness write SetMaxMaterialThickness;

    Published SDK declaration languages: Pascal.

  • Property name
    Thickness
    Type
    Cardinal
    Description

    Thickness value stored on the object.

    Declaration

    property Thickness: Cardinal read GetThickness write SetThickness;

    Published SDK declaration languages: Pascal.

  • Property name
    Surplus
    Type
    Cardinal
    Description

    Surplus allowance stored on the object.

    Declaration

    property Surplus: Cardinal read GetSurplus write SetSurplus;

    Published SDK declaration languages: Pascal.

  • Property name
    PreviewColor
    Type
    TTcColor
    Description

    Gets or sets the color used when this band is drawn in a preview, as a TTcColor: a 24-bit RGB value packed as $RRGGBB (not the VCL TColor byte order), clTcNone (-1, no preview color; the default) or clTcRandom (-2, the host derives a stable color from the item’s Id). GetPreviewColor/SetPreviewColor are vtable slots appended at the end of the interface, after EndUpdate, under the same interface GUID, so no existing slot moves; every implementer must add both methods. Engine version 24 carries these slots.

    Declaration

    property PreviewColor: TTcColor read GetPreviewColor write SetPreviewColor;

    Published SDK declaration languages: Pascal.

  • Property name
    OnChange
    Type
    INotifyEvent
    Description

    Event fired when the object or collection changes.

    Declaration

    property OnChange: INotifyEvent read GetOnChange;

    Published SDK declaration languages: Pascal.

  • Property name
    OnIdChange
    Type
    IIdChangeEvent
    Description

    Event fired when an identifier changes.

    Declaration

    property OnIdChange: IIdChangeEvent read GetOnIdChange;

    Published SDK declaration languages: Pascal.

Methods

  • Method name
    Clone()
    Type
    IBand
    Description

    Create a copy of the current object.

    Declaration

    function Clone(): IBand; safecall;

    Published SDK declaration languages: Pascal.

    Returns
    A copied band interface instance.
  • Method name
    Assign()
    Type
    procedure
    Description

    Copy values from another object of the same type.

    Declaration

    procedure Assign(const aOther: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aOtherconst
    Source object whose values should be copied.
  • Method name
    BeginUpdate()
    Type
    procedure
    Description

    Start a batched update so change notifications can be delayed.

    Declaration

    procedure BeginUpdate(); safecall;

    Published SDK declaration languages: Pascal.

  • Method name
    EndUpdate()
    Type
    procedure
    Description

    Finish a batched update and allow deferred notifications to resume.

    Declaration

    procedure EndUpdate(); safecall;

    Published SDK declaration languages: Pascal.


IBanding

Per-edge band assignment helper used by formats to track left, right, top, and bottom edging.

Source: SDK/include/pascal/uIBanding.pas

Properties

  • Property name
    North
    Type
    IBand
    Description

    Signed value assigned to the north or top edge; a negative edge-distance value means inherited or unspecified.

    Declaration

    property North: IBand read GetNorth write SetNorth;

    Published SDK declaration languages: Pascal.

  • Property name
    South
    Type
    IBand
    Description

    Signed value assigned to the south or bottom edge; a negative edge-distance value means inherited or unspecified.

    Declaration

    property South: IBand read GetSouth write SetSouth;

    Published SDK declaration languages: Pascal.

  • Property name
    West
    Type
    IBand
    Description

    Signed value assigned to the west or left edge; a negative edge-distance value means inherited or unspecified.

    Declaration

    property West: IBand read GetWest write SetWest;

    Published SDK declaration languages: Pascal.

  • Property name
    East
    Type
    IBand
    Description

    Signed value assigned to the east or right edge; a negative edge-distance value means inherited or unspecified.

    Declaration

    property East: IBand read GetEast write SetEast;

    Published SDK declaration languages: Pascal.

  • Property name
    Top
    Type
    IBand
    Description

    Alias of North; a negative edge-distance value means inherited or unspecified.

    Declaration

    property Top: IBand read GetNorth write SetNorth;

    Published SDK declaration languages: Pascal.

  • Property name
    Bottom
    Type
    IBand
    Description

    Alias of South; a negative edge-distance value means inherited or unspecified.

    Declaration

    property Bottom: IBand read GetSouth write SetSouth;

    Published SDK declaration languages: Pascal.

  • Property name
    Left
    Type
    IBand
    Description

    Alias of West; a negative edge-distance value means inherited or unspecified.

    Declaration

    property Left: IBand read GetWest write SetWest;

    Published SDK declaration languages: Pascal.

  • Property name
    Right
    Type
    IBand
    Description

    Alias of East; a negative edge-distance value means inherited or unspecified.

    Declaration

    property Right: IBand read GetEast write SetEast;

    Published SDK declaration languages: Pascal.

  • Property name
    OnChange
    Type
    INotifyEvent
    Description

    Event fired when the object or collection changes.

    Declaration

    property OnChange: INotifyEvent read GetOnChange;

    Published SDK declaration languages: Pascal.

Methods

  • Method name
    Assign()
    Type
    procedure
    Description

    Copy values from another object of the same type.

    Declaration

    procedure Assign(const aOther: IBanding); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aOtherconst
    Source object whose values should be copied.

IBandList

Ordered helper list used when TonCut loads material-specific band history.

Source: SDK/include/pascal/uIBandList.pas

Properties

  • Property name
    Count
    Type
    Integer
    Description

    Number of items currently exposed by the interface.

    Declaration

    property Count: Integer read GetCount;

    Published SDK declaration languages: Pascal.

  • Property name
    Items
    Type
    IBand
    Description

    Indexed property used to read one item from the collection.

    Declaration

    property Items[aIndex: Cardinal]: IBand read GetByIndex; default;

    Published SDK declaration languages: Pascal.

    Index Parameters
    aIndex
    Cardinal
    Zero-based position within a collection.
    Value
    The collection item located at the supplied index.

Methods

  • Method name
    Add()
    Type
    procedure
    Description

    Add an item or handler.

    Declaration

    procedure Add(aBand: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBand
    Band instance being queried or modified.
  • Method name
    DeleteByIndex()
    Type
    procedure
    Description

    Delete the item at the specified zero-based index.

    Declaration

    procedure DeleteByIndex(aIndex: Cardinal); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aIndex
    Cardinal
    Zero-based position within a collection.
  • Method name
    Remove()
    Type
    procedure
    Description

    Remove an item or handler.

    Declaration

    procedure Remove(const aBand: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBandconst
    Band instance being queried or modified.
  • Method name
    IndexOf()
    Type
    Integer
    Description

    Return the zero-based index of the matching item.

    Declaration

    function IndexOf(const aBand: IBand): Integer; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBandconst
    Band instance being queried or modified.
    Returns
    Zero-based index of the matching item, or -1 when no match exists.

IBands

Collection interface used to create, enumerate, query, and reload a shared Desktop object set.

Source: SDK/include/pascal/uIBands.pas

Properties

  • Property name
    Count
    Type
    Integer
    Description

    Number of items currently exposed by the interface.

    Declaration

    property Count: Integer read GetCount;

    Published SDK declaration languages: Pascal.

  • Property name
    Items
    Type
    IBand
    Description

    Indexed property used to read one item from the collection.

    Declaration

    property Items[aIndex: Cardinal]: IBand read GetByIndex; default;

    Published SDK declaration languages: Pascal.

    Index Parameters
    aIndex
    Cardinal
    Zero-based position within a collection.
    Value
    The collection item located at the supplied index.
  • Property name
    OnAdd
    Type
    IBandChangeEvent
    Description

    Event fired when an item is added.

    Declaration

    property OnAdd: IBandChangeEvent read GetOnAdd;

    Published SDK declaration languages: Pascal.

  • Property name
    OnRemove
    Type
    IBandChangeEvent
    Description

    Event fired when an item is removed.

    Declaration

    property OnRemove: IBandChangeEvent read GetOnRemove;

    Published SDK declaration languages: Pascal.

Methods

  • Method name
    CreateBand()
    Type
    IBand
    Description

    Open the Desktop band dialog for a new band. The user can review and update the details before confirming; if the dialog is cancelled, the method returns null.

    Declaration

    function CreateBand(): IBand; safecall;

    Published SDK declaration languages: Pascal.

    Returns
    The created band interface instance, or null if the user cancels the dialog.
  • Method name
    Add()
    Type
    procedure
    Description

    Add an item or handler.

    Declaration

    procedure Add(aBand: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBand
    Band instance being queried or modified.
  • Method name
    DeleteByIndex()
    Type
    procedure
    Description

    Delete the item at the specified zero-based index.

    Declaration

    procedure DeleteByIndex(aIndex: Cardinal); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aIndex
    Cardinal
    Zero-based position within a collection.
  • Method name
    DeleteById()
    Type
    procedure
    Description

    Delete the item with the specified TonCut identifier.

    Declaration

    procedure DeleteById(aId: Int64); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aId
    Int64
    TonCut object identifier.
  • Method name
    Remove()
    Type
    procedure
    Description

    Remove an item or handler.

    Declaration

    procedure Remove(const aBand: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBandconst
    Band instance being queried or modified.
  • Method name
    IndexOf()
    Type
    Integer
    Description

    Return the zero-based index of the matching item.

    Declaration

    function IndexOf(const aBand: IBand): Integer; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBandconst
    Band instance being queried or modified.
    Returns
    Zero-based index of the matching item, or -1 when no match exists.
  • Method name
    IndexOf()
    Type
    Integer
    Description

    Return the zero-based index of the matching item.

    Declaration

    function IndexOf(aId: Int64): Integer; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aId
    Int64
    TonCut object identifier.
    Returns
    Zero-based index of the matching item, or -1 when no match exists.
  • Method name
    FindDuplicate()
    Type
    IBand
    Description

    Search for an existing item that duplicates the supplied object.

    Declaration

    function FindDuplicate(const aBand: IBand; aCheckTitle: Boolean = False): IBand; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBandconst
    Band instance being queried or modified.
    aCheckTitle
    Boolean
    Whether title collisions should count as duplicates.
    Returns
    The matching band interface instance, or null when not found.
  • Method name
    FindByTitle()
    Type
    IBand
    Description

    Find an item by its title and any additional matching fields.

    Declaration

    function FindByTitle(const aTitle: WideString; aWidth: Cardinal; aThickness: Cardinal): IBand; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aTitleconst
    WideString
    Human-readable title.
    aWidth
    Cardinal
    Width value in TonCut units.
    aThickness
    Cardinal
    Thickness value in TonCut units.
    Returns
    The matching band interface instance, or null when not found.
  • Method name
    FindUniqueName()
    Type
    WideString
    Description

    Generate or return a title that is unique within the collection.

    Declaration

    function FindUniqueName(const aBaseName: WideString; aWidth: Cardinal; aThickness: Cardinal): WideString; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBaseNameconst
    WideString
    Base title used while generating a unique name.
    aWidth
    Cardinal
    Width value in TonCut units.
    aThickness
    Cardinal
    Thickness value in TonCut units.
    Returns
    A title string that is unique within the collection.
  • Method name
    CheckUniqueName()
    Type
    Boolean
    Description

    Check whether a proposed title is unique within the collection.

    Declaration

    function CheckUniqueName(const aTitle: WideString; aWidth: Cardinal; aThickness: Cardinal; const aIgnoreBand: IBand): Boolean; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aTitleconst
    WideString
    Human-readable title.
    aWidth
    Cardinal
    Width value in TonCut units.
    aThickness
    Cardinal
    Thickness value in TonCut units.
    aIgnoreBandconst
    Band to exclude from uniqueness checks.
    Returns
    Returns true if the proposed title is unique within the collection.
  • Method name
    CheckUniqueName()
    Type
    Boolean
    Description

    Check whether a proposed title is unique within the collection.

    Declaration

    function CheckUniqueName(aBand: IBand; aAutoFix: Boolean = False): Boolean; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBand
    Band instance being queried or modified.
    aAutoFix
    Boolean
    Whether the method may adjust data automatically.
    Returns
    Returns true if the proposed title is unique within the collection.
  • Method name
    GetById()
    Type
    IBand
    Description

    Return the item stored under the specified TonCut identifier.

    Declaration

    function GetById(aId: Int64): IBand; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aId
    Int64
    TonCut object identifier.
    Returns
    The matching band interface instance.
  • Method name
    AddMaterialBandToHistory()
    Type
    procedure
    Description

    Record a band as recently used for the selected material.

    Declaration

    procedure AddMaterialBandToHistory(aMaterial: IMaterial; aBand: IBand); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aMaterial
    Material instance being queried or modified.
    aBand
    Band instance being queried or modified.
  • Method name
    LoadMaterialBandsFromHistory()
    Type
    IBandList
    Description

    Load recently used bands for the selected material.

    Declaration

    function LoadMaterialBandsFromHistory(aMaterial: IMaterial; aLimit: Integer = 5): IBandList; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aMaterial
    Material instance being queried or modified.
    aLimit
    Integer
    Value for limit.
    Returns
    The matching band list interface instance.
  • Method name
    LoadMaterialBands()
    Type
    IBandList
    Description

    Load bands applicable to the selected material.

    Declaration

    function LoadMaterialBands(aMaterial: IMaterial): IBandList; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aMaterial
    Material instance being queried or modified.
    Returns
    The matching band list interface instance.
  • Method name
    Reload()
    Type
    procedure
    Description

    Reload the underlying data from the host or storage layer.

    Declaration

    procedure Reload(); safecall;

    Published SDK declaration languages: Pascal.


IBandChangeEventHandler

Callback sink consumed by the matching change-event interface.

Source: SDK/include/pascal/uIBandChangeEvent.pas

Methods

  • Method name
    Invoke()
    Type
    procedure
    Description

    Handle the event callback when the owning event interface invokes it.

    Declaration

    procedure Invoke(aSender: IUnknown; aBand: IBand; aIndex: Integer); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aSender
    IUnknown
    Object that raised the event.
    aBand
    Band instance being queried or modified.
    aIndex
    Integer
    Zero-based position within a collection.

IBandChangeEvent

Event interface with Add, Remove, and Invoke hooks for collection or entity change notifications.

Source: SDK/include/pascal/uIBandChangeEvent.pas

Methods

  • Method name
    Add()
    Type
    procedure
    Description

    Add an item or handler.

    Declaration

    procedure Add(aHandler: IBandChangeEventHandler); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aHandler
    The handler interface instance to use.
  • Method name
    Remove()
    Type
    procedure
    Description

    Remove an item or handler.

    Declaration

    procedure Remove(aHandler: IBandChangeEventHandler); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aHandler
    The handler interface instance to use.
  • Method name
    Invoke()
    Type
    procedure
    Description

    Raise the typed change event for the current payload.

    Declaration

    procedure Invoke(aSender: IUnknown; aBand: IBand; aIndex: Integer); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aSender
    IUnknown
    Object that raised the event.
    aBand
    Event payload field for band.
    aIndex
    Integer
    Event payload field for index.

Was this page helpful?