Welcome to CoolControl

Update 12.9.2005 - For now CoolControl has been replaced with EasyListview.  Don't worry EasyListview is designed just like CoolControl minus the heavy use of interfaces and has better integration with the IDE and Object Inspector.

Well I decided to put the source up for CoolControl before it is ready so that users of the older version can continue to use it without fear of wasting their time as this version is quite different. This version is much more Delphi-like in that it has a lot more interaction with the Object Inspector. It is still a Virtual type listview, much like Mike Lischke's VirtualTreeview, but it now first queries for information from the Object Inspector for a "default" implementation of the virtual objects before calling the callback event to customize any aspect of an UI object.

  What is CoolControl?

Introduction

  CoolControl is unlike any Delphi control you have likely worked with. First noticeable difference is you will likely never need to create a descendent of TCustomCoolGroupControl instead you will create descendants of manager classes that interact with the CoolControl. The manager classes encapsulate subsystems of the control. Examples of these subsystems include object selection, background images, selection rectangle drawing, containers for the objects to be stored in the control, columns, painting interfaces, etc.

  The graphic below shows some of the managers and how they relate to the CoolControl. The CoolControl communicates with the managers through the TCoolManagerLink class.

  All managers contained in the ManagerLink have an internal reference back to the owner ManagerLink. In this way the managers can communicate with each other.

Now lets look at the subsystems more closely.

  Control Framework

 

  Before using this component please realize a few things....

  • This component is a work in progress so things may change slightly in future releases (they won't be as radical as this upgrade is from the last version)

  • The help file is way out of date (as well as some of the info on this webpage as it was taken from the help file).
  • The Listview is the only control that is fairly complete (Report Mode needs work). There will be a Grid Control someday, once the Listview is working well.

  PLEASE do not download this component if you don't have time to spend some time understanding it. The package does not contain much information on how to use it so it will take a lot of time and effort (and trail and error coupled with frustration) to understand it then more frustration as you find the bugs in it.

  I welcome constructive criticism, bug reports (detailed reports that have some debugging info are very welcome), and code donations to finish incomplete features (please if you do this contact me first to get how I would like it done, I do have the "master plan" of the control designed in my head). I don't want to spend much time in trying to explain how to use it right now, that time is better spent in finishing it to a more useable state. By releasing it I may be more motivated to work on it if I know there is interest. I like the EasyNSE project but I don't get much feedback on it so it has not been very satisfying spending my weeknights and weekends working on it.

  If you agree with the above you may download the development source here (5/29/2005, Version 0.3.191). There are now compiled demos available to play with. I really would like some help with this. This component has HUGE potential but it is an enormous project for someone to do in their spare time as a hobby.

 


mustangpeak.net

  Last Modified on: