Search This Site

Trillian Pro Plug-in Framework for Delphi

This page is for Trillian users who wish to make plug-ins, if you don't know what Trillian is please go to the Trillian website.

Go to top of page

Here is my Delphi 6 SDK and OOP Framework, it allows you to make plug-ins for Trillian Pro with a minimum of fuss using Delphi. :)

All the functions of the version 2.0 SDK have been added.

If you are using this framework to make your own plug-ins please be sure to UPDATE it from this post as often as possible, many bugs are fixed and new features are often added. I try to make the changes so that you wont have to change your Plug in code, but that's not always possible.

Go to top of page

History & Info


  • Added many little new functions to TPlugin for finding paths
  • Added dynamic contact list entry changes to the sample plug-in. minor changes to list entry functionality
  • Right click on group list entries to add or remove entries dynamically in sample


  • All code checks for nil's in lists
  • Fixed ICON code, where the icon would free its icon data b4 the list entry was freed... Causing GPF... Thanks Razzle for forcing me to find this one. PS: If you call any of the update functions for the list entries and the number of left or right icons have changed please reregister the list entries first.
  • Added custom ADD methods to all lists, so that type applicable to lists are obvious.


  • Fixed initialization problem, another GPF
  • Hopefully no more GPFs or slowdowns??


  • Many bug fixes - no more GPFs (as far as i can tell)
  • Added TContactList and integrated into TPlugin for easy access to the contact list
  • Added MessageSendByName to TPlugin which allows you to send a message by the users name (as per TAliasAlert return), scans the ContactList to find a match and then sends by UIN
  • Be careful not to use MessageSend, specifying an invalid UIN, this causes a GPF.


  • Added TPrefForm with sample
  • Allows you to use a TForm object as a preference dialog
  • Only lightly tested, use at own risk
  • Crash is fixed as far as i can tell
  • Changed sample TMySystrayAliasAlert.OnDestroy - fixed GPF Added extra safeguards against lost object method calls


  • Fixed enumeration objects - they now work (included in sample)
  • Fixed TPlugin freeing problem - object now frees without errors
  • Fixed Systray ondestroy
  • Started adding properties and cleaning objects up
  • Added List manipulation routines
  • Added list callback functions
  • Miscellaeneous bug fixes

Known Problems (To Be Addressed):

  • Footprint of DLL is large due to TPlugin uses all objects regardless weather they are used or not
  • Create constructors currently use all parameters, more constructors will be done to make it easier
  • Menu items must be created for each ListEntry


Go to top of page


X = Tested and completed (Included in Sample)
O = Completed - not yet tested
= Not Done

1. Function Reference
1.1. Outbound (Messages sent to Trillian)
Systray Functions
    X systraySetAlert
Preferences Functions
    X prefsInitialize
Alias Functions
    X editAliasRegister
    X editAliasUnregister
    X keyboardAliasRegister
    X keyboardAliasUnregister
List Functions
    X listAddEntry
    X listRemoveEntry
    X listClearEntry
    X listGetSectionCount
    X listGetGroupCount
    X listGetExpandState
    X listUpdateText
    X listUpdateFont
    X listUpdateTooltip
    X listUpdateIcon
    X listUpdateExpandState
    X listSuppressRedraw
    X listRedrawEntry
Dialog Functions
    X dialogAdd
    X dialogRemove
Contact List Functions
    X contactlistEnumerate
Connection Functions
    X connectionEnumerate
Message Functions
    X messageSend
    X messageBroadcastEnable
    X messageBroadcastDisable
1.2. Inbound (Messages received from Trillian)
plugin_send Notifications
    X load
    X initialLoad
    X start
    X stop
    X finalUnload
    X unload
    X prefsShow
    X prefsAction
Systray Alert Notifications
    X alert_destroy
    X alert_linkClick
    X alert_create
Alias Notificaitons
    X edit_aliasRequest
    X edit_aliasFree
    X edit_aliasDestroy
    X keyboard_aliasRequest
    X keyboard_aliasFree
    X keyboard_aliasDestroy
List Notifications
    X list_mouseMove
    X list_draw
    X list_getDesiredWidth
    X list_getHeight
    X list_changeName
    X list_leftButtonDown
    X list_leftButtonUp
    X list_leftDoubleClick
    X list_mouseLeave
Enumeration Notifications
    X enum_start
    X enum_add
    X enum_finish
Message Notifications
    X message_broadcast
Menu Notifications
    X menu-open
    X menu-open-finish
    X menu-select
    X menu-destroy

| \-TManagedList
| |-TListEntryList
| |-TPIIconList
| |-TPIItemsLIst
| |-TPIMenuList
| \-TPrefDialogsList
| |-TContactList
| | \-TEventContactList
| | \-TChangeNotifyContactList
| | \-TAutoChangeNotifyContactList
| \-TConnectionList
| | \-TEventConnectionList
| | \-TChangeNotifyConnectionList
| | \-TAutoChangeNotifyConnectionList
| |-TListEntry
| |-TPIFontItem
| |-TPIIconItem
| |-TPIItem
| | |-TAlert
| | |-+-TAliasAlert
| | | | \-TFilterAlert
| | | |-TBroadcastAlert
| | | |-TEnumAlert
| | | | |-TConnectionEnumAlert
| | | | \-TConnectionListAdder
| | | | \-TContactListEnumAlert
| | | | \-TContactListAdder
| | | |-TKeyboardAliasAlert
| | | \-TSystrayAlert
| | |-TListEntries
| | \-TPref
| |-TPIMenuItem
| \-TPrefDialog
| \-TPrefForm

Go to top of page


Link (Includes compiled sample - Now handles automatic events for detecting contact list and connection list changes, see top of readme.txt file for more information, fixed bugs as well):

Download Framework (Now Delphi 5+ Ready, ZIPped)
Size: 284 KB
Uploaded: September 04, 2008
This file has been downloaded 401 (401) times
It was last downloaded on Tue, 08 May 2018 04:12:52 +1000

If anyone would like to test it for me, please do!! , its still beta at the moment, and comments / suggestions / questions are welcome.