Here you will find Delphi components and classes that are maybe useful. All source code is included. Some of the code is only tested in Delphi 5, but should normally work in all other Delphi versions. Keep visiting here once a while, I plan do do regulary updates.

All the code is freeware and for use at your own risk. Being Freeware, they cannot be sold at any charge, whether they are distributed alone or together with other applications. You may use the components and code into your own applications, but you may not claim you wrote the original code.

Any feedback is welcome, just drop me an email. If you want to keep informed about upgrades of some of the components you may want to send me a mail also.

Here is a listing of the groups:

Communication components
Name: TCiaComPort
Version: 1.15
Size: 13 KB
  A simple but fully functional serial port component. Tested in various Delphi and CBuilder versions. The component fires an event when data is arrived, and when then TX buffer is empty (in case you want to send lots of data, or when you want to close when all data is sent). There is a LineMode and LineEnd property if the component must handle line terminating characters. There's some explanation in top of the source file. Fully tested in Delphi versions 5..2006. Here are some demo applications. Please send me a mail if you use it. You will be notified for importand upgrades. For Delphi 2010 and later there is a modified version supporting unicode, thanks to Francois Piette. You can download it here.
Name: TCiaDataCall
Size: 4 KB
  Handles data communication with a standard modem. It handles automaticly any timeouts. An event is fired when data arrives, or state changed, or timeout errors. Demo is included (without a serial port).
Name: TCiaHtm2Txt
Size: 2 KB
  Converts HTML code to plain text using Internet Explorer in a background thread. When the conversion is done the OnRequestDone event is fired in main application context. Thanks to Bob Herbst who gived me the first version of the Internet Explorer automation code.
Name: TCiaLogon
Size: 5 KB
  You tell it what keywords to search for (e.g..: 'user:', 'pass:', ...). You feed it with incoming data from a server and it will concatenate it in his internal circular buffer. When it find a match on a keyword it fires an event. In the event you can take action appropriate to the keyword (e.g..: send a username, or password). To gain maximum performance the size of the internal buffer has to be set exactly as high as the maximum chuck of data you will receive. It is designed both for speed and minimum memory allocation. There's a demo project (with a fake server) included.
Name: TCiaLZH
Size: 10 KB
  My implementation of LZH compression library (included). It is a simple class that encaptulate fast compression / decompression with pointer to buffer. It includes also compression / decompression with TStreams.
Name: Named pipes
Size: 5 KB
  Components to interprocess communicate with named pipes. Demo included. All communication is done in background while events are fired in main thread context.

general components
Name: TacSaver
  TacParSaver and TacPoSaver are 2 components I use in almost every project. Luc Wuyts is the original author of them. Using them you will find it is very easy to save parameters in an *.ini file or in the registry. Same with Form positions and size.
Name: TCiaConsole
Size: 3 KB
  A simple fast console control derived from TMemo. Added some extra properties such as maximum lines, local echo, and other. There is a demo included.
Name: TCiaListBox
Size: 1 KB
Version: 1.02 2 feb 2003
  Derived from TListbox, and added drag and drop capabilities wich are true by default. Added capabilitie to drag / drop between other listboxes.
Name: TCiaOnlyOne
Size: 2 KB
  When this component is dropped on you main form, the application can run only one instance of it. If it is started a second time, the second instance will terminate and the first one will be put to foreground. Depending on a setting it is possible to run an application several times, only if it is located in different directories (I needed that feature). See explanation on top of the source file. It uses a Mutex, because a Mutex is cleaned up by the OS in case of abnormal program termination.
Name: TCiaTrayIcon
Size: 7 KB
  A nice working tray icon that does exacly what you wants to make a professional GUI. Demo's included. It also demonstrates how to make a GUI without buttons on the taskbar, and how you can give a secondary form an extra button on the taskbar.
Name: TCiaUrl
Size: 2 KB
  Derived from TLabel. When the mouse pointer moves over it then it changes color and shape. When clicked an URL is opened. Any document can open with this component.

Back to Top

Copyright ©2003 - Wilfried Mestdagh