TDAppTools: application add-on

Post your tools and samples or ask for them.
Dave Rabelink
Founder/Site Admin
Founder/Site Admin
Posts: 1188
Joined: 24 Feb 2017, 09:12
Location: Gouda, The Netherlands

TDAppTools: application add-on

Post by Dave Rabelink » 27 Sep 2017, 13:11

(current version v2.2)

Free application add-on offering handy features for developers, testers, designers and service engineers.
Features to increase productivity in working with applications build with Team Developer.
TDAppTools is available for all TD versions (32bit only), starting from TD 2.1.

TDAppTools is started from TD build applications giving a toolset to get more detailed information on the application internals and
the system it is running on, even in production environments.

So to be clear, it is not a Team Developer IDE add-on which would primarily be used by developers in the TD development environment, but a toolset to be started
from your running application to get more information on that running application, wherever it is used.

TDAppTools features

As TDAppTools is a personal project and mainly developed in spare free time it was not feasible to introduce all wanted tools at the start.
Those features should be compatible with most TD versions and offer generic functionality to be used in any project.

Gui Inspector

This tool is Spy++ with a TD flavor.

It is used like other GUI spy tools, but the Gui Inspector has the advantage that it shows specific TD information other generic spy tools do not offer.
With the well-known object selection tool, Gui objects can easily be identified on screen.
All information of the object is fetched in real-time and shows SAL details which will benefit anyone wanting to get more detailed information of the Gui internals.

List of features:
  • Easy select objects using drag and point principle
  • Show SAL object details like: class name, template name, SAL attributes and properties
  • Full qualification of objects to show parent/child relationship using template names
  • Shows in which process, dynalib (apd) or library (apl) the object is defined
  • View and change object values, titles/captions, fonts, colors, position and size in realtime
  • Drag objects around the screen to redesign a GUI
  • Inspect the window hierarchy using a tree view (for one process or all processes in the system)
  • Export data from tables, listboxes, comboboxes, listviews etc
  • View and change Windows Styles
  • View Windows properties
  • Class Browser: inspect the complete class hierarchy of an object
  • Locate process folder, show process details dialog, terminate process
  • Find objects based on window handle (Hex and Dec format)
  • Create screen-shots (to clipboard or to file)
  • Change the state and visibility of objects (enabled/disabled/hidden/visible)
  • Locate and select the object in the source-code when running from Team Developer IDE
  • Locate and select classes from the Class Browser in the source-code when running from Team Developer IDE
  • Print objects to IDE output window for easy select within TD
  • Search for Gui objects having a specific class name, template name, window handle, type or value/title
  • Monitor SAM, WIN and USR messages using DebugView.

Instead of creating a complete manual of Gui Inspector, a demo video has been created to demonstrate the features.
In the end of the video it is explained how to integrate it in your own projects.

You can find the video of Gui Inspector on the TDWiki YouTube Channel here:

Sql Monitor

Using Sql Monitor you can trace database actions performed by your application in real-time.
This is without having to enable logging (SQL.INI) or having to change the setup of your system in any way.

Just start the main trace window of Sql Monitor and it will detect when your application calls Sql functions.
These actions are displayed in the trace window and statement log.

Having "Break in source" feature you are able to break at the code line in the TD IDE where the SQL action is being executed.
For example, break on SqlfetchNext call in the source at the moment a record is fetched having specific data values or break
on SalPrepareAndExecute when a query is being processed.

List of features:
  • Detects calling of a set of predefined Sql functions from the current running application (eg SqlConnect, SqlPrepare, SqlFetchNext etc).
  • Works on any database brand (eg Oracle, SqlBase, DB2 etc) as long as the supported Sql functions are called from the application.
  • Enable and disable monitoring on-the-fly.
  • Shows the original sql statement executed.
  • Shows details on actions, like the parameter values of the sql function being called.
  • Inspecting result sets. Display the values of bind variables for each fetched record.
  • Exporting trace and result sets (records) to text, Excel (csv) and HTML.
  • Shows the actual time spent to execute the actions (measured on API level, so no extra noise of business logic etc).
  • Search for specific statements containing particular texts (like names for tables, columns, variables etc).
  • Search for specific records within result sets having a particular value for bind variables.
  • Pretty printed SQL statement using color coding.
  • Inspect fetched (string) buffers as-is or in HEX view. Also conversion options from UNICODE<->ANSI.
  • Break modes to halt execution when particular conditions are met. Application will wait.
  • Break in the sourcecode at the current DB execution action
  • Inspect sql statements, input bind variables BEFORE they are executed/send to the database (in breakmode).
  • Inspect output bind variables AFTER they are fetched from DB but before the application is about to process them (in breakmode).
  • Change the sql statement and/or input bind variable values BEFORE action is executed on database on-the-fly (in breakmode).
  • Change output bind variable values AFTER they are fetched from DB (in breakmode).
  • Change string (buffer) values by loading them from a file (in breakmode)
  • Save string (buffer) to file on disk.
  • New: support for ODBSal API functions OdrPrepareProc, OdrExecuteProc, OdrGetNextResults and OdrPrepareNextResults
  • New: support for SqlPrepareSP, SqlGetNextSPResultset, SqlCloseAllSPResultSets and SqlDropStoredCmd


You can find the video of Sql Monitor on the TDWiki YouTube Channel here:

You can find the video of TDAppTools V2.1 on the TDWiki YouTube Channel here:

How to implement

Implementation in your own project is easy.
To add Gui Inspector or Sql Monitor to the application is just adding one line of code.

Read the TDAppTools readme document for implementation and deployment instructions:
TDAppTools ReadMe

Here the YouTube TDAppTools playlist: ... wjQfwYxY5x

Info on TDAppTools and download link on TDWiki : ... TDAppTools
You do not have the required permissions to view the files attached to this post.
Dave Rabelink

Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel

Return to “Tools & Samples”

Who is online

Users browsing this forum: [Ccbot] and 0 guests