Delphi Serial Communication Component


ZylSerialPort 1.77
Delphi & C++Builder Component

ZylSerialPort is a Delphi & C++Builder thread based serial port component.
Use ZylSerialPort component to easily communicate with external devices on serial port connection, such as modems, bar code readers, GSM modules and others. It works in synchronous and asynchronous mode.

CPort is a Delphi component created by Dejan Crnila. It provide interfaces for Delphi programmers to use the serial communication ports. If you need to utilize serial modem or any other serial communication devices in your Delphi application, you should use this component.It’s obviously doesn’t take much to install and use a modem however. CPort is a Delphi component created by Dejan Crnila. It provide interfaces for Delphi programmers to use the serial communication ports. If you need to utilize serial modem or any other serial communication devices in your Delphi application, you should use this component.

You can use it also with USB, IrDA and Bluetooth devices, because these devices have a driver that redirects the input from the USB, IrDA or Bluetooth port to a virtual serial port (you can check it in System/Device Manager/Ports). If your USB device is not provided with such a driver, then use a USB controller whose vendor provides a virtual serial port driver, such as FTDI or use a USB/RS-232 adapter.

The demo version is fully functional in Delphi and C++Builder IDE, but it displays a nag dialog (the licensed version will, of course, not have a nag dialog and will not be limited to the IDE). The package includes demo programs for Delphi and C++Builder and a help file with the description of the component.

Supported Operating Systems:
Windows 2000/XP/Server2003/Vista/Server2008/7/8/Server2012/10
Available for: Delphi 10.4 Sydney (Win32 & Win64), Delphi 10.3 Rio (Win32 & Win64), Delphi 10.2 Tokyo (Win32 & Win64), Delphi 10.1 Berlin (Win32 & Win64), Delphi 10 Seattle (Win32 & Win64), Delphi XE8 (Win32 & Win64), Delphi XE7 (Win32 & Win64), Delphi XE6 (Win32 & Win64), Delphi XE5 (Win32 & Win64), Delphi XE4 (Win32 & Win64), Delphi XE3 (Win32 & Win64), Delphi XE2 (Win32 & Win64), Delphi XE, Delphi 2010, Delphi 2009, Delphi 2007, Delphi 2006, Delphi 7, Delphi 6, Delphi 5, C++Builder 10.4 Sydney (Win32 & Win64), C++Builder 10.3 Rio (Win32 & Win64), C++Builder 10.2 Tokyo (Win32 & Win64), C++Builder 10.1 Berlin (Win32 & Win64), C++Builder 10 Seattle (Win32 & Win64), C++Builder XE8 (Win32 & Win64), C++Builder XE7, C++Builder XE6, C++Builder XE5, C++Builder XE4, C++Builder XE3, C++Builder XE2, C++Builder XE, C++Builder 2010, C++Builder 2009, C++Builder 2007, C++Builder 2006, C++Builder 6, Turbo Delphi, Turbo C++
Remarks:
- The Delphi 2006
version is fully compatible with Turbo Delphi
- The C++Builder 2006 version is fully compatible with Turbo C++
- Delphi for .NET support was abandoned. You can use our .NET components instead, which are written in C#.
Installation:
If you have a previous version of the component installed, you must remove it completely before installing this version. To remove a previous installation, proceed as follows:

-Start the IDE, open the packages page by selecting Component - Install Packages
-Select ZylSerialPortPack package in the list and click the Remove button
-Open Tools - Environment Options - Library and remove the library path pointing to ZylSerialPort folder
-Close the IDE
-Browse to the folder where your bpl and dcp files are located (default is $(DELPHI)ProjectsBpl for Delphi, $(BCB)ProjectsBpl for C++ Builder). -Delete all of the files related to ZylSerialPort
-Delete or rename the top folder where ZylSerialPort is installed
-Start regedit (click Start - Run, type 'regedit.exe' and hit Enter). Open the key HKEY_CURRENT_USERSoftwareBorland<compiler><version>Palette and delete all name/value items in the list related to ZylSerialPort. (<compiler> is either 'Delphi' or 'C++Builder', <version> is the IDE version you have installed)

-Unzip the zip file and open the ZylSerialPortPack.dpk file in Delphi (ZylSerialPortPack.bpk or ZylSerialPortPack.cbproj file in C++Builder), compile and install it
and add to Tools/Environment Options/Library (in older Delphi/C++Builder menu) or Tools/Options/[Language]/Delphi Options/Library/Library Path (in newer Delphi menu) or Tools/Options/[Language]/C++ Options/Paths and Directories/Library Path & Include Path (in newer C++Builder menu, in C++Builder 10 or later, set them also for the classic compiler) the path of the installation (where the ZylSerialPort.dcu file is located). The component will be added to the 'Zyl Soft' tab of the component palette. After you have the component on your component palette, you can drag and drop it to any form, where you can set its properties by the Object Inspector and you can write event handlers selecting the Events tab of the Object Inspector and double clicking the preferred event.
If you still have problems in C++Builder, running an application, which contains the component, then open the project and in C++Builder menu, Project/Options/Packages and uncheck 'Build with runtime packages'.
C++BuilderXE2: If you get access violation, running an application with this component, then comment out in the project's main form's cpp file the following: //#pragma link 'ZylSerialPort'.

-another possible problem with C++Builder: Go to Project options, C++ Linker, and uncheck Link with dynamic RTL.

Component

-It is indicated to use this component with 'Stop on Delphi exception' option deactivated. You can do this from Delphi / C++Builder menu, Tools/Debugger Options/Language Exceptions/Stop on Delphi exceptions in older versions or Tools/Options/Debugger Options/Embarcadero Debuggers/Language Exceptions/Notify on language exceptions in newer versions, otherwise you will have a break at all the handled exceptions.

64-bit platform:
Delphi/C++Builder 64-bit support is only for runtime, so you have to use it in the folllwing way:
Install the 32-bit version of the component as it described above and add to Tools/Options/Delphi Options/Library/Library Path, selected platform: 64-bit Windows the path of the Win64 subfolder of the component.
Before compiling the host application for 64-bit Windows, right click on Target Platforms, Add Platform and add 64-bit Windows (Make the selected platform active). If you compile the application in this way, it will be a native 64-bit application.

Help file:
If you can't open the help file:
-right-click on the help.chm file to get the properties
-on the bottom it says: “This file came form another computer....”
-push “Unblock” next to this text
-now the help.chm files opens as all other help files

What's new:
- new method: SetFault
- new event: OnReconnect
- AutoReconnect fix
- support for Delphi/C++Builder 10.4 Sydney
- TestDevice fix, when AutoReceive is true
- new method: ResetIdleState

- ReadStringUpToEndChars improvment
- new ReadStringUpToEndChars method with timedOut parameter
- new method: TestDevice
- new method: InsertControlChars
- Read methods timeout parameter is now in milliseconds, instead of seconds.
- support for Delphi/C++Builder 10.3 Rio
- fault detection optimization, when CloseWhenLineStatusIsZero is true
- new property: PacketSize
- new auto reconnect feature
- improved fault detection
- new method: ReadChars
- new methods: DetectDevice
- support for Delphi/C++Builder 10.2 Tokyo
- new event OnFault
- new property IsFaulted
- new method ReadStringLine
- new method ReadStringUpToEndChars
- support for Delphi/C++Builder 10.1 Berlin
- synchronous communication support
- support for Delphi/C++Builder 10 Seattle
- support for Delphi/C++Builder XE8
- C++Builder Windows 64-bit support
- Windows 64-bit support
- New property XonChar
- New property XoffChar
- New property XonLim
- New property XoffLim
- New property ParityCheck
- New property ReplaceParityErrors
- New property DiscardNulls
- New property DsrSensitivity
- New property TXContinueOnXoff
- New property ErrorChar
- New property EofChar
- New method ReplaceControlChars
- New handshake DTR/DSR
- RTS handshake removed; you can use EnableRTSOnOpen instead
- new Send methods
- log to file
- fixes
- support for custom port names
- more standard baud rates supported

Delphi Serial Communication Component
ZylSerialPort - Delphi & C++Builder Component
License comparision
BenefitsSingle Developer LicenseSingle Developer License with Source CodeSite License
no nag screen
no IDE limitation
royalty free
number of developers11unlimited
source code included
free support by e-mail
free upgrade on request1.5 years1.5 years1.5 years
Price
$75.00$187.50$299.99
Buy Now!Buy Now!Buy Now!
How to upgrade?
License Agreement
Download Now!
Attention:
- Sales tax/VAT is not included in the prices above and it differs from country to country.
- All of our products are delivered via ESD (Electronic Software Delivery) only. After purchase you will receive the full version by e-mail.
- All orders are final, so please assure that you buy what you need, checking the fully functional trial version first!

ActiveXperts Serial Port Component is a software development kit (SDK) that enables the user to communicate to a device over a serial interface.

Such a device can be: a weight indicator, a modem, a scanner, or any other device that is equiped with a serial port. It can even be another PC, connected via a NULL modem cable.

ActiveXperts Serial Port Component features the following:

  • Direct COM port support (like 'COM1')
  • TAPI (Windows Telephony Device) support (like 'Standard 56000 bps Modem');
  • Support for RS-232/RS422/RS485, up to 256 simultaneous ports;
  • Support for all types of Hayes compatible modems;
  • Support for serial cable as well as USB cable or Bluetooth connections;
  • Support for Virtual COM ports (i.e. COM ports redirected through the network);
  • Hardware flow control (RTS/CTS, DTR/DSR) and software flowcontrol (XON/XOFF) support;
  • Configurable baudrate/parity/stopbits, full buffered data transfer, text/binary data transfer.
Serial

Step 1: Download and install the ActiveXperts Serial Port Component

Download the ActiveXperts Serial Port Component from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.

Step 2: Create a new Delphi Project

Launch Delphi from the Start menu. Choose 'New' from the 'File' menu and select your preferred kind of application, for instance: 'VCL Forms Application - Delphi for Win32'. A new Form is displayed in the workspace.

(Click on the picture to enlarge)

Step 3: Refer to the ActiveXperts Serial Port Component Library and create the objects

Now that a new project has been created, you must add a reference to Serial Port Component in the project to be able to use the ActiveXperts Serial Port Component object. To do so, choose 'Import Component...' from the 'Component' menu. The Import Components' dialog appears. Select 'Import a Type Library':

(Click on the picture to enlarge)

In the 'Registered Type Libraries' page, select 'Serial Port Component 2.2 Type Library' and click 'Next':

(Click on the picture to enlarge)

In the 'Components' page, leave all fields default and click 'Next':

(Click on the picture to enlarge)

In the 'Install' page, select 'Create Unit' and click 'Next':

(Click on the picture to enlarge)

The interface code is generated now and is shown in the AXSERIAL_TLB tab of the project.

Step 4: Declare and create the object

From the Project Manager, open Unit1.bas and add the AXSERIAL_TLB to the 'Uses' statement to refer to the ActiveXperts Serial Port Component library:

Delphi Serial Communication Components

(Click on the picture to enlarge)

In the 'private' or 'public' section, declare the following objects:

You can now create the objects, for instance in the 'FormCreate' function:

Step 5: Send an AT command to a connected Hayes compatible modem

You can now send and/or receive data to and/or from a serial port.

The following code shows how to query a modem:

Delphi Serial Communication Components

There are many working samples included with the product. You can also find them on the ActiveXperts FTP site: ftp.activexperts-lab.com/samples/serial-port-component.