TMessageSet Delphi ActiveX Reference Documentation

TMessageSet

Represents a collection of email message sequence numbers or UIDs on an IMAP server.

Importing the Chilkat ActiveX into Delphi

Important: Whenever upgrading to a new version of Chilkat, make sure to re-imported ActiveX DLL into Delphi to regenerate the files described below.

Two things are required to use an ActiveX in Delphi:

  1. The ActiveX DLL needs to be registered via regsvr32 on the system where the Delphi application runs. See How To Register ActiveX DLLs for detailed information.
  2. The ActiveX component needs to be "imported". Use the Delphi Import Component Wizard to import the Chilkat type library. This creates the following files: Chilkat_v9_5_0_TLB.pas and Chilkat_v9_5_0_TLB.dcr. The Chilkat_v9_5_0_TLB.pas should be added to your project.

To import the Chilkat type library, do the following:

  1. In the Delphi RAD Studio, select the menu item "Component" --> "Import a Type Library".
  2. Find "Chilkat ActiveX v9.5.0" in the list and select it. This will only appear in the list if the ChilkatAx-9.5.0-win32.dll (or ChilkatAx-9.5.0-x64.dll) has been registered w/ regsvr32.
  3. Check the "Generate Component Wrappers" checkbox.
  4. Select a directory where the unit files (.pas and .dcr) will be generated.
  5. Select "Create Unit" and then "Finish".
  6. Add the .pas to your Delphi project.

To use a Chilkat ActiveX object in your Delphi code, add "Chilkat_v9_5_0_TLB" to the "uses" statement. For example:

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_v9_5_0_TLB;

Object Creation

// This is the new standard way of instantiating Chilkat ActiveX objects in Delphi.
// If this syntax produces an error, download and test using the latest version of Chilkat.

var
obj: TMessageSet;
...
begin
obj := TMessageSet.Create(Self);
...
// When finished, free the object instance.
obj.Free();

Properties

property Count: Integer readonly

The number of message UIDs (or sequence numbers) in this message set.

property HasUids: Integer

If 1 then the message set contains UIDs, otherwise it contains sequence numbers.

Methods

function ContainsId(msgId: Integer): Integer;

Returns 1 if the msgId is contained in the message set.

function FromCompactString(str: WideString): Integer;

Loads the message set from a compact-string representation. Here are some examples:

Non-Compact String

Compact String

1,2,3,4,5

1:5

1,2,3,4,5,8,9,10

1:5,8:10

1,3,4,5,8,9,10

1,3:5,8:10

function GetId(index: Integer): Integer;

Returns the message ID of the Nth message in the set. (indexing begins at 0). Returns -1 if the index is out of range.

procedure InsertId(id: Integer);

Inserts a message ID into the set. If the ID already exists, a duplicate is not inserted.

function LoadTaskResult(task: TChilkatTask): Integer;

Introduced in version 9.5.0.52

Loads the message set from a completed asynchronous task.

Returns 1 for success, 0 for failure.

procedure RemoveId(id: Integer);

Removes a message ID from the set.

function ToCommaSeparatedStr(): WideString;

Returns a string of comma-separated message IDs. (This is the non-compact string format.)

Returns a zero-length WideString on failure

function ToCompactString(): WideString;

Returns the set of message IDs represented as a compact string. Here are some examples:

Non-Compact String

Compact String

1,2,3,4,5

1:5

1,2,3,4,5,8,9,10

1:5,8:10

1,3,4,5,8,9,10

1,3:5,8:10

Returns a zero-length WideString on failure