How do I develop C++Builder applications that manage movement?

Last reviewed: 10/4/2012

HOW Article ID: H101201

The information in this article applies to:

  • KinectKit

Summary

You can develop C++Builder applications that manage Kinect sensors using your favorite version of C++Builder.

More Information

KinectKit includes C++Builder header files comprised of the C++Builder classes that manage Kinect sensors and automatically load and unload the runtime DLL.

To access the KinectKit C++Builder classes within your application, first add a project reference to the C++Builder header include files:

  1. Within your C++Builder project, select Project Options.
  2. Select the C++Builder compiler options.
  3. Add Include path reference to the KinectKit header files directory: C:\Program Files\Chant\KinectKit\Win32\CBuilder\include.

To access the KinectKit C++Builder classes within your application, add a reference to the KinectKit Header file in your C++Builder application header file:


#include "cchantkm.h"

Add a reference in your C++Builder application source file to the KinectKit code needed to dynamically load and unload the runtime DLL:


#include "CChantKinectKit.cpp"

Object Instantiation

Declare a global variable for the ChantKM class, instantiate an instance, set the license and serial properties, and set the event handler message.

Add the following to your application header file:


protected:
    void __fastcall OnHasEvent(TMessage& msg);
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_APP+8, TMessage, OnHasEvent);
    END_MESSAGE_MAP(TForm)
private:
	// User declarations
	CChantKM* ChantKM1;

Add the following to your application source file:


    ChantKM1 = new CChantKM();

    // Set deployment license properties
    ChantKM1->SetStringProperty(CSPLicense,"LicenseRegistrationNumber");
    ChantKM1->SetStringProperty(CSPSerials,"LicenseSerialNumber");

    // Define the HasEvent callback message
    ChantKM1->SetWindowMessage(Handle, WM_APP+8, 0, 0);

Event Callbacks

Event callbacks are the mechanism in which the component library communications information back to the application such as compilation is complete or there was an error.


void __fastcall TForm1::OnHasEvent(TMessage& msg)
{
    int numberOfEvents = ChantKM1->GetResourceCount(CSREvent,0,0);
    for (int i = 0; i < numberOfEvents; i++)
    {
        // Get the event from the event queue
        CChantKMEvent* pEvent = ChantKM1->GetChantKMEvent(0);
        switch (pEvent->GetChantCallback())
        {
            default:
                break;
            case CCKSStatusChanged:
            {

                ...

                break;
            }
        }

        ...

        // Remove the event from the event queue
        ChantKM1->RemoveResource(CSREvent,0);
        delete pEvent;
    }
}

Deployment Checklist

When you are ready to deploy your C++Builder application, you need to ensure you have a valid license, bundle the correct Chant component library, and configure your installation properly on the target system. Review the following checklist before deploying your applications:

  • You may deploy your C++Builder application to any system with a valid license from the Chant.
  • Copy CKinectKit.dll to the target system and place in the same directory with your application.

Sample Projects

C++Builder sample projects are installed at the following location:

  • My Documents\Chant KinectKit\Win32\CBuilder\RS 2009,
  • My Documents\Chant KinectKit\Win32\CBuilder\RS 2010,
  • My Documents\Chant KinectKit\Win32\CBuilder\RS XE,
  • My Documents\Chant KinectKit\Win32\CBuilder\RS XE2, and
  • My Documents\Chant KinectKit\Win32\CBuilder\RS XE3.

For additional help with KinectKit, contact Chant Support via Chant Support Contacts or web.