카테고리 없음

Delphi Xe5 Serial Port Component

fopeumenti1974 2020. 11. 26. 03:40


Serial Port Programming RS232 / RS485 Behind the connection – Using the serial port is a common task and there are a huge number of components for doing that. I'm using TCiaComPort by Wilfried Mestdagh for years.

Active7 years, 8 months ago

A few years back for one of my applications I moved my serial handling to a thread when a certain app had to respond very quickly to certain serial events.

It was in BDS2006, with an older version (some 3.x?) It was done by having code like this in the tthread.execute:

Initialization was like

The rxchar method reads using comport1.readstr()

I recently had to dig this up, and noticed it didn't work in my Delphi XE, which has tcomport4. Looking in the source I saw remarks thatcomport4 has changed the way it deals with its internal threads ('overlapped' property), but the default seems to be 'true' has a comment 'classic', and I

assumed that means compatible with older versions.

Note that the protocols are binary, and all string,char<-> ansistring,ansichar changes have been done like I did in the normal mainthread version

Now the real questions:

  1. does anybody have tcomport4 working in a thread ?
  2. Are there obvious mistakes in the above?
  3. or do I need to migrate to a different component?

I'm still debugging what is going on, but am in a hurry, which is while I post this in the hope of quickly getting pointers.

Update

I reinstalled an old turbo delphi copy, and verified it worked there with v3. I fixed a small bug though in the codepath that went a bit different from what I thought (not in the above code)

This allows me to describe the behaviour between dxe/comportv4 and bds2006/comportv3 better; the v4 code generates much more read events (hundreds/second). It seems that the read doesn't delete the read chars from the incoming queue or so.

Update 2

I did a quick test with the newest version, and did the necessary rearranging (kill string function use for an essentially binary protocol). I got stuck for a while because the application crashed on startup, but that is because I use gnugettext, and Comport packages a different (non unicode even?) version. But after that it works.

Unfortunately the changes are a bit to risky to propagate back to the production version (completely written protocol decoding), so I'll have to test with inbetween versions (between 4.0 and 4.11f). I'll do that in due time, any suggestion which version was the last readstr(ansistring) one?

Update 3

In the end I simply renamed the 4.11f units and use them in parallel to the old version, using the 4.11f for the threaded codebases and the old one to maintain existing code.

Long term I might simply take the waitforevent code and make an own version. The main problem with it is that it is afaik not possible to see if the wait terminated on timeout, stopevent or whatever. This means you need another timer if you want to e.g. send on regular intervals.

Marco van de Voort
Marco van de VoortMarco van de Voort
22.7k5 gold badges44 silver badges81 bronze badges

1 Answer

You need to upgrade to the latest stable 4.11 release here.

Xe5Usb portWarren PWarren P
41.3k34 gold badges155 silver badges284 bronze badges
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.

Not the answer you're looking for? Browse other questions tagged delphitcomport or ask your own question.

A curated list of awesome Delphi frameworks, libraries, resources, and shiny things. Inspired by awesome-.. stuff.

Note that only open-source projects are considered. Dead projects (not updated for 3 years or more) are mainly ignored except for those which do not have alive analogs.Feel free to suggest other missing nice projects either by comments or pull requests.

This awesome collection is also available on Delphi.ZEEF.com

Contents

  • Awesome Delphi
    • Multimedia
    • Communications
    • GUI
    • Non-visual Classes/Utils
    • Utilities

General Libraries

Big general-purpose libraries

  • JCL. Set of thoroughly tested and fully documented utility functions and non-visual classes which can be instantly reused in your Delphi and C++ Builder projects. The library is grouped into several categories such as Strings, Files and I/O, Security, Math and many, many more.

  • JVCL. Library of over 600 Delphi components developed by 'Project JEDI' members.// GUI, algorithms, classes, API headers etc.

  • Alcinoe. Components suite for Delphi.// Network: FTP/Http/NNTP/POP3/SMTP, ISAPI, WinInet Http/FTP clients; DB: Firebird/MySQL/SQLite3/Memcached/MongoDb/SphinxQL; XML/JSON Parser; ZLIB; Cryptography: AES, Blowfish, MD5, SHA, secure keyed MD5/SHA; Other: Self-Balancing Binary Trees, expression evaluator

  • Fundamentals Code Library (abandoned, more recent fork is here - though it slightly differs in units set, f.ex. no XML. Recent major version 5 here). Collection of Delphi / FreePascal code units. Includes libraries for Unicode, Strings, Data Structures, Sockets and Mathematics.// Utils: ZLIB compression; JSON; XML; ProtocolBuffers; Unicode routines; data structures; Hashes: XOR, CRC, Adler, MD5, SHA, secure keyed MD5/SHA, etc; Network: blocking TCP client/server, HTTP(S) via SSL3/TLS1.0/TLS1.1/TLS1.2 (fully native); SQL parser; BitCoin MtGox client; Blaise script engine; Cipher: AES, DES, FUNE, RC2, RC4, RSA, Diffie-Hellman; Maths: matrix, complex, statistics, huge numbers

  • Spring4D. Open-source code library for Embarcadero Delphi 2010 and higher. It consists of a number of different modules that contain a base class library (common types, interface based collection types, reflection extensions) and a dependency injection framework. Includes Encryption Library.// Collections and other containers using Generics and based on IEnumerable, probably more accurate and featured than RTL analogs; crypto: CRC, DES, MD5, SHA; file utils etc

  • TheUnknownOnes. Huge heap of classes, components, utilities for almost every purpose. Nearly undocumented and seems not very up-to-date though.

  • CNVCL. CnPack Component Package. Large collection of visual components, classes and utilities. // Lots of useful stuff; documentation and comments mainly in Chinese

  • mORMot. Client-Server ORM/ODM SOA MVC framework for Delphi 6 and higher, or FPC 2.7. Direct SQL/NoSQL database access, ORM/ODM over objects, RESTful ORM and SOA services via interfaces over high performance HTTP server, MVC/MVVM web sites, testing including mocks and stubs, logging, cryptography, compression, huge documentation.

  • MARS - Curiosity. Delphi REST Library. Pure REST approach, standard concepts in a familiar Delphi flavor (including a component based client library). Known compatibility: Delphi versions from XE to 10 Seattle. Some functionalities requires FireDAC.

  • ADAPT. Advanced Developer Async Programming Toolkit, foundation library intended to be used at the heart of your projects for the purpose of providing extremely powerful, multi-threaded (and thread-safe) capabilities. Event Engine - a very powerful system for producing Multi-Threaded, Asynchronous and Event-Driven programs. Generics Collections - highly efficient Collection Types (Lists, Trees, Maps etc.). Math Library - a library for Unit Conversion, special calculation and other useful mathematics routines. Package Engine - extension of the Streamables Engine supporting the packaging of files together (a VFS of sorts). Shared Streams Library - 100% Thread-Safe Stream Classes (Interfaced too) allowing read/write from multiple Threads. Stream Handling Library - makes working with Streams much easier! Handles Deleting, Inserting, Reading and Writing data.

  • Redux Delphi. Predictable state container for Delphi apps utilizing a unidirectional data flow. Inspired by ReduxJS. Comes with Immutable Generic List.

    Uloz.to is the largest czech cloud storage. Upload, share, search and download for free. Credit allows you to download with unlimited speed. Download or Stream the newly released Classic Album from Gang Starr titled The Ownerz (2003) this is a Rap Classic Album and was published on Saturday, November 11, 2017.The Classic Album has four working Download links available. https://pusulcuspel.tistory.com/4.

  • GrijjyFoundation. Foundation classes and utilities that are used throughout the other Grijjy Repositories.// BSON/JSON, IOCP/EPOLL sockets, socket pools, HTTP, HTTP/2, OpenSSL, ProtocolBuffers.

  • unRxLib. Effort to keep RxLibrary (library of 60+ components) actual.

  • [QuickLib] (https://github.com/exilon/QuickLib). Delphi/freepascal (Windows/Linux) library for Quick development and crossplatform support (Json Serialize, AutoMapper, Chronometer, Threads, Lists, Config, Console services and more).

Multimedia

Audio

  • Audio Tools Library. For manipulating many audio formats file information.//Abandoned since 2005.

  • Delphi ASIO & VST Project. Framework for writing applications using the ASIO interface and VST plugins. It comes with countless DSP algorithms all demonstrated in dozens of examples.//Not very active lately, but the trunk is in a usable state .

  • NewAC - New Audio Components (abandoned, list of forks on GH here). Designed to help your Delphi programs perform different sound processing tasks. With NewAC you can play audio stored in many formats (wav, Ogg Vorbis, FLAC, Monkey Audio, WavPack, MP3, Windows WMA, DTS, AC-3 (Dobly Surround), VOB (DVD files)).// Playback, recording, tag read/write, some audio editing tasks and conversions

  • Audorra. Digital audio library for Delphi and Freepascal. Using a flexible plugin architecture, it allows you to exchange the audio backend (e.g. WaveOut, OpenAL), add protocol classes (e.g. file, http) and decoders.

Video

  • DSPack (abandoned, active fork is here). Set of components and classes to write Multimedia Applications using MS Direct Show and DirectX technologies.

  • Delphi-OpenCV. Translation of OpenCV library header files in Delphi// Includes FFMPEG headers

  • FFmpeg Delphi/Pascal Headers. Open source translation of FFMPEG headers.

  • PasLibVlc. Interface to VideoLAN libvlc.dll and VCL player component for Delphi / FreePascal based on VideoLAN

Graphic

  • Graphics32. Designed for fast 32-bit graphics handling on Delphi, Kylix and Lazarus. Optimized for 32-bit pixel formats, it provides fast operations with pixels and graphic primitives, and in most cases Graphics32 outperforms the standard TCanvas classes. It is almost a hundred times faster in per-pixel access and about 2-5 times faster in drawing lines.

  • GraphicEx. Addendum to Delphi's Graphics.pas to enable your application to load many common image formats. This library is primarily designed to load images as background (buttons, forms, toolbars) and textures (DirectX, OpenGL) or for image browsing and editing purposes as long as you don't need to save images.

  • Vampyre Imaging Library. Cross-platform native Object Pascal (Delphi and Free Pascal) image loading, saving, and manipulation library.

  • CCR-EXIF (seems abandoned, list of forks on GH here). Library to read and write Exif, IPTC and XMP metadata from JPEG, TIFF and PSD images.

  • KIcon. This component makes sense if a more complex manipulation with icons (or better icon files *.ico) than just viewing is needed. Full PNG icon image support, correct rendering, icons with alpha channel.

  • Delphi Twain. The library allows you to easily access scanning functions from Delphi and Lazarus.

  • Synopse PDF. Fully featured Open Source PDF document creation library for Delphi, embedded in one unit. Pure Delphi code, Delphi 5 up to XE7, for Win32 and Win64 platforms.

  • PowerPDF. VCL component to create PDF docment visually. Like Forms, you can design PDF document easily on Delphi or C++Builder IDE.

  • IGDI+. The free open source library allows quick and easy implementations of complex GDI+ applications, in a natural Delphi-friendly code.

  • GLScene. OpenGL based 3D library for Delphi. It provides visual components and objects allowing description and rendering of 3D scenes in an easy, no-hassle, yet powerful manner. GLScene is not just an OpenGL wrapper or utility library, it has grown to become a set of founding classes for a generic 3D engine with Rapid Application Development in mind. GLScene allows you to quickly design and render 3D scenes without having to learn the intricacies of OpenGL, if you know how to design a TForm, you'll easily master the basic operations of GLScene. The library comes with a large collections of demos showcasing the ease of use, and demonstrating RAD wasn't done at the expense of CPU/GPU horsepower.

  • SynGdiPlus. Enables an application to load and save GIF, TIF, PNG and JPG pictures. It also allows anti-aliased drawing from any TMetaFile. That is, you can play a .emf content using GDI+ instead of GDI, for much better rendering result.

  • mORMotReport (docs). Fast and efficient code-based reporting component, with preview form and PDF export.

  • Andorra 2D. New generation 2D Engine for Delphi and Lazarus. Andorra 2D is capable to use DirectX or OpenGL through graphic plugins. Andorra 2D is built in a very modular way and is yet easy to use.

  • Transparent-canvas. Delphi VCL / Windows project for drawing semi-transparent alphablended graphics. It provides a class similar to TCanvas.

  • Fully-justified-text. Delphi VCL / Windows project for text output, allowing printing of fully justified text with a variety of options.

  • AsciiImage. AsciiImage-Implementation for Delphi by Alexander Benikowski based on AsciiImage by Charles Parnot. Read more on his article.// Creates scalable monochrome image from ASCII pixel map

  • PngComponents. PngComponents is a set of components that allows you to include in your application real PNG files. PNG files on their own do not generate an enourmous advantage, but their support for an alpha-channel does indeed have quite a charm to it.

  • AggPasMod. Modernized Pascal Anti-Grain Geometry. Based on AggPas, which is itself based on the Anti-Grain Geometry, this project offers support for the latest Delphi Versions (XE and above) and contains some helper classes (VCL components and FireMonkey interface). 2D vector graphics library. Basically, you can think of AggPas as of a rendering engine that produces pixel images in memory from some vectorial data. But of course, AGG can do much more than that.// Vector graphic library, renders SVG and much more

  • delphi-shader. Hundreds of graphical effects, and a library that provides GLSL functionality in pure Delphi code. This project produces an executable with more than a hundred real-time graphical effects. All that is a 100% pascal implementation, without the use of exernal libraries or hardware acceleration.

  • dglOpenGL. Delphi / Pascal OpenGL header translation.

  • DelphiZXingQRCodeEx. Delphi port of the QR Code generating functionality from ZXing, an open source barcode image processing library.

  • ZXing.Delphi. Native Object Pascal library for Delphi XE to 10.2 Tokyo that is based on the well known open source Barcode Scanning Library ZXing (Zebra Crossing). It is aimed at all of the FireMonkey mobile platforms and, starting from v3.1, it fully supports also Windows VCL applications (no dependencies on FMX.Graphics unit).

  • QuickImageFX. Delphi library for simplifying image load/save, conversion and transformation. Load/save png, jpg, gif and bmp. get image from different resources: file, stream, http, imagelist, associated windows icon, executable file icon, etc.. Rotate, flip, grayscale and many other transformations.

  • NativeJpg. Fully object-oriented Pascal implementation that allows to read and write Jpeg files. You can use this software to read and write Jpeg images from files or streams. It supports baseline and progressive Jpeg, support for metadata, as well as all conceivable lossless operations.

Game dev

  • RecastNavigation. Navigation mesh construction toolset for games. Recast is accompanied with Detour, path-finding and spatial reasoning toolkit. You can use any navigation mesh with Detour, but of course the data generated with Recast fits perfectly. This is a port of the original RecastNavigation written in C++.

  • Kraft Physics Engine. Open source Object Pascal physics engine library that can be used in 3D games. Compatible with: Delphi 7-XE7 (but not with the Android and iOS targets), FreePascal >= 2.6.2 (with almost all FPC-supported targets including Android and iOS)

  • ZenGL. OpenGL Cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics, handling input, sound output, etc.// Not updated lately, but is working ok

  • Platform eXtended Library (PXL). Cross-platform framework for developing 2D/3D video games, interactive and scientific applications. It aids the developer with mathematics, hardware control, resource management, displaying real-time graphics and text, handle user input and network communication capabilities.

  • CrystalPathFinding. Simple and effective library with an open source intended for the searching of the shortest paths by algorithms A*/WA* for maps based on tiles with 4 (simple), 8 (diagonal/diagonalex) or 6 (hexagonal) neighbors.

  • Allegro-Pas (GitHub). Wrapper to use the Allegro game library with Pascal/Delphi.

  • Castle Engine. Complete Pascal Game Engine. Cross-platform 3D and 2D game engine with a lot of graphic effects and a scene graph based on X3D.

  • TileEngine. (GitHub) OOP Pascal Wrapper and bindings for Tilengine 2D retro graphics engine. Tilengine is a cross-platform 2D graphics engine for creating classic/retro games with tilemaps, sprites and palettes. Its scanline-based rendering algorithm makes raster effects a core feature, a technique used by many games running on real 2D graphics chips.

  • SDL2 (GitHub). Pascal SDL 2 Headers. Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.

  • SFML. Pascal SFML Headers. SFML provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics, audio and network. Currently Delphi and FPC/Lazarus are supported. However, due to a compiler incompatibility with the Delphi compiler (solved with workarounds), FPC is recommended at the moment.

  • pasvulkan. Vulkan header generator, OOP-style API wrapper, framework and prospective Vulkan-based game engine for Object Pascal.

  • DarkGlass. DarkGlass is a general purpose game engine written using Delphi.

  • JEDI-SDL. Pascal headers for SDL from JEDI. Works with Delphi, Kylix, Free Pascal, Gnu Pascal and TMT Pascal.

Communications

Network

Socket communication, network protocols, encodings, etc

  • Internet Component Suite. Asynchronous-based library composed of various Internet components and applications. Clients/servers for TCP, UDP, raw sockets, FTP, SMTP, POP3, NNTP, HTTP, Telnet and more. Supports SSL and TLS with the help of OpenSSL. Also includes Mime Decoder, SHA1/MD4/MD5 hashes, DES encryption.

  • Indy. Network components for Delphi, C++Builder, Delphi.NET, and FreePascal// All-in-one network library based on blocking sockets and threads. Included in default RAD studio installation since 2006.

  • Ararat Synapse. Pascal TCP/IP Library for Dephi, C++Builder, Kylix and FreePascal. Deals with network communication by means of blocking (synchronous) sockets or with limited non-blocking mode. This project not using asynchronous sockets! The Project contains simple low level non-visual objects for easiest programming without problems (no required multithread synchronisation, no need for windows message processing,..) Great for command line utilities, visual projects, NT services,..// TCP, UDP, ICMP, RAW; ICMP, DNS, SMTP, HTTP, SNMP, NTP, FTP, LDAP, NNTP, Telnet; IPv6; SOCKS proxy; SSL/TLS (via OpenSSL or Windows CryptoApi); PING; character code transcoding; MIME coding and decoding; CRC16, CRC32, MD5 and HMAC-MD5.

  • Internet Professional. Set of VCL components providing Internet connectivity for Borland Delphi & C++Builder. iPRO includes POP3, SMTP, NNTP, FTP, HTTP, Instant Messaging, & HTML viewer components, as well as components for low-level socket access.// Seems abandoned but contains pretty large set of features incl ICMP, POP, SMTP, HTTP, NNTP, NTP, FTP, SMTP; HTML parser and viewer; MIME utils; cookies, certificates, caching, encryption etc

  • SynCrtSock. Features several sockets and HTTP client-server classes, including a high-performance http.sys based server under Windows, and a new thread-pool powered socket server.// Also implements http.sys binding under Windows and cURL binding under nix

  • TML Messaging Suite. Network messaging library for rapid development of extensible and scalable interfaces. Based on the peer to peer standard protocol BEEP (Blocks Extensible Exchange Protocol), defined in RFC3080 and RFC3081. libTML is suitable for many use cases and communication patterns. Equipped with a type safe data API, TML can transport hierarchical data structures fast and reliable.// The libTML Object Pascal Components are not only a language binding to the core library but a complete set of non visual components to simplify the usage of libTML with Embarcadero RAD Studio and Lazarus.

  • DMVCFramework. Popular and powerful framework for web solution in Delphi.

  • Delphi IOCP. Implements several network classes based on Windows IOCP technology. Socket, HTTP, Ntrip servers and clients.// Quite well documented and good styled code but Chinese only.

  • delphi-aws-ses. Amazon Simple Email Service (AWS SES) library for Delphi applications.

  • delphi-slackbot. Delphi library to send messages on Slack using slackbot.

  • Kitto. Allows to create Rich Internet Applications based on a data model that can be mapped onto any database. The client-side part uses ExtJS (through the ExtPascal library) to create a fully AJAX application, allowing you to build standard and advanced clause. You can use this software to read XML documents from files, streams or strings. The load routine generates events that can be used to display load progress on the fly. You can also use it to create and save XML documents.

  • Delphi-XmlLite. Header translation for Microsoft XmlLite. XmlLite is a native C++ implementation of .NET XmlReader+Writer for stream-based, forward-only XML parsing and creation. XmlLite.dll is required. It is included with all new versions of Windows, and service packs for old versions. XmlReader's pull-based interface is cleaner to use than SAX's event-based interface.// Seems abandoned and reported to be somewhat buggy.

  • Chimera. Open Source (MIT License) library for Delphi XE2 which provides a fast and cross platform JSON generator/parser (serializer/deserializer) under a license that doesn't suck.

  • SynCommons. High speed JSON library, using TDocVariant custom variant type for storage and access.

    So please edit them accordingly as you feel. https://pusulcuspel.tistory.com/5. PS:I don't know what SO tags I can associate my question with. There isn't much source code out there on how to make visualizations for Microsoft's Windows Media Player, but there is one tutorial found on Channel 9 titled.

  • SynCrossPlatformJSON. High speed cross-platform JSON library, using TJSONVariant custom variant type for storage and access.

  • Json Data Objects. This Delphi unit contains a JSON parser that supports Delphi 2009-10Seattle and the platforms Win32, Win64 and ARM Android (MacOS and iOS may work).

  • TinyJSON. This is a small (about 1600 lines of code) unit for Delphi, which realizes parsing and generating JSON format. Can be used in combination with FastMM and FastCode for even faster speed.

  • JSON delphi library. This is a delphi library implementing JSON. Lightweight and fast.

  • dwsJSON. dwsJSON is a unit that supports JSON parsing/creating, it's part of DWScript but relatively 'standalone', in that if you add it in your Delphi (or FPC) projects, it won't pull the whole of DWScript library, and thus can be used anywhere you need.

  • Fundamentals Code Library. JSON, XML.

  • Alcinoe. XML/JSON Parser.

  • delphi-yaml. Delphi 7 compatible bindings for libyaml, YAML parser and emitter library implemented in C. Four layers of bindings are proposed.

  • GrijjyFoundation. JSON/BSON.

  • VerySimpleXML. Lightweight, one-unit, cross-platform XML reader/writer for Delphi 2010 - 10.2.2 Tokyo

  • XSuperObject. Delphi Cross Platform Rapid JSON

Language

Tools for Pascal and other languages

  • Next Delphi Yacc & Lex. Parser generator toolset for Delphi.

  • Abstract Syntax Tree Builder. With DelphiAST you can take real Delphi code and get an abstract syntax tree. One unit at time and without a symbol table though.

  • Castalia-Delphi-Parser. These files make up a hand-written high speed parser for the Object Pascal dialect known as 'Delphi'. The original work was done by Martin Waldenburg in the late 1990s, and the project was abandoned sometime before 2003, when I found the code and began working on it. I have kept it updated as necessary to work with my project, called 'Castalia'.

  • CrossPascal. Aims to be a Delphi 7 compatible cross-platform source-to-source compiler (together with the new unicode string types from XE3 but where ansistring is still the default string type for to be still Delphi 7 compatible) which generates intermediate C code.// Quite interesting project though seems abandoned

Memory managers

Libraries that implement dynamic memory allocation

  • FastMM. Lightning fast replacement memory manager for Embarcadero Delphi Win32 and Win64 applications that is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.// Used as stock memory manager since 2006 but in simplified version. Provides powerful memory leak/corruption detection instruments.

  • ScaleMM. Fast scaling memory manager for Delphi

  • BrainMM. Extremely fast memory manager for Delphi.// Advanced memory allocation functions for faster aligned operations.

System

Low-level helper stuff: memory, threading etc

  • OmniThreadLibrary. Simple to use threading library for Delphi.// Easy integration of async processes in your app

  • Delphi Detours Library. Library allowing you to hook Delphi functions and object methods and Windows API functions. It provides an easy way to insert and remove hook.// Supports x64, calling original functions, multi hooks, COM/Interfaces/win32api, object methods hooking, fully thread-safe, Delphi 7/2005-2010/XE-XE7 & Lazarus/FPC, 64 bit address is supported.

  • MemoryModule. With the MemoryModule engine you can store all required DLLs inside your binary to keep it standalone. Additional hook units allow transparent using of MM engine thus allowing switching MM/WinAPI loading as well as enabling 3rd party dynamic-load DLL interfaces that are unaware of MM (tested with Interbase Express components and Firebird client library). MemoryModule is a Pascal port of Joachim Bauch's C MemoryModule.

  • DirectoryWatcher. Watch changes in directories on different platforms (Windows/Linux/Mac OS).

Template

Engines to generate text output based on templates

  • SynMustache. Delphi implementation of the Mustache template language, supporting Delphi 6 up to Delphi 10 Seattle (and FPC/Lazarus compilation).

  • Delphi Template Engine. Template engine designed to be used as a library in Delphi (mainly Delphi 7) applications, allowing developers to use templating on their software with no worry about implementing it.

Logging

  • Log4d. Implementation of logging system for Delphi, based on Log4j.

  • TraceTool. C#, C++, Delphi, ActiveX and Java trace framework and a trace viewer.

  • LoggerPro. A modern and pluggable logging framework for Delphi.

  • SynLog. Logging functions used by Synopse projects.

  • slf4p. A simple logging facade with support for LazLogger, Log4D, and other logging frameworks.

  • GrijjyCloudLogger. Remote logging tool that allows you to send log messages over the Intranet or Internet from Windows, Linux, iOS, Android and macOS devices to a viewer running on Windows. Besides sending messages along with any data, it has numerous features including custom live watches, remote live views of objects, tracking live memory usage, object allocations, growth leaks and more.

  • QuickLogger. Delphi/freepascal/.NET (Windows/Linux) library for logging on files, console, memory, email, rest, telegram, slack, eventlog, redis, ide debug messages and throw events.

Math

  • Big Decimal Math. This unit provides a arbitrary precision BCD float number type. It can be used like any numeric type and supports: At least numbers between 10-2147483647 to 102147483647 with 2147483647 decimal digit precision; All standard arithmetic and comparison operators; Rounding functions (floor, ceil, to-even, .); Some more advanced operations, e.g. power and sqrt.

  • TIntX. Pascal port of IntX arbitrary precision Integer library with fast, about O(N * log N) multiplication/division algorithms implementation. It provides all the basic arithmetic operations on Integers, comparing, bitwise shifting etc. It also allows parsing numbers in different bases and converting them to string, also in any base. The advantage of this library is its fast multiplication, division and from base/to base conversion algorithms. all the fast versions of the algorithms are based on fast multiplication of big Integers using Fast Hartley Transform which runs for O(N * log N * log log N) time instead of classic O(N^2).

  • DelphiBigNumberXLib. Arbitrary Precision Library for Delphi with Support for Integer and Floating Point Computations.

  • FastMath. Delphi math library that is optimized for fast performance (sometimes at the cost of not performing error checking or losing a little accuracy). It uses hand-optimized assembly code to achieve much better performance then the equivalent functions provided by the Delphi RTL.// Floating-point, vector, matrix operations.

  • MPArith. Multi precision integer, rational, real, and complex arithmetic.

  • AMath and DAMath. Accurate mathematical methods without using multi precision arithmetic and double precision accurate mathematical methods without using multi precision arithmetic or assembler respectively.

Other non-visual

Delphi Components Free

  • TRegExpr. Easy to use and powerful tool for sophisticated search and substitutioning and for template-based text input check.// Abandoned since 2004 but unlike stock RAD Studio implementation doesn't use PCRE obj files that add dependency on msvcrt.dll

  • FLRE. FLRE ( F ast L ight R egular E xpressions) is a fast, safe and efficient regular expression library, which is implemented in Object Pascal (Delphi and Free Pascal) but which is even usable from other languages like C/C++ and so on.

  • OnGuard (Alternate and maintained version for recent compiler version only). Library to create demo versions of your Borland Delphi & C++Builder applications. Create demo versions that are time-limited, feature-limited, limited to a certain number of uses, or limited to a certain # of concurrent network users.// Second link points to an adapted version for newest compiler versions.

  • StringSimilarity. Package designed for some fuzzy and phonetic string comparison algorithms. So far implemented are the following algorithms: DamerauLevenshtein, Koelner Phonetik, SoundEx, Metaphone, DoubleMetaphone, NGram, Dice, JaroWinkler, NeedlemanWunch, SmithWatermanGotoh, MongeElkan.

  • PubSub Chimera. Open Source (MIT License) library for Delphi which provides a fast and cross platform PubSub and Message Queue implementation under a license that doesn't suck.

  • DuckDuckDelphi. Adds simple duck typing to Delphi Objects and provides an RTTI helper class to simplify many common RTTI tasks.

  • byterage. Object pascal class library designed to remove some of the limitations of streams. The framework is very simple to use, with only one common ancestor class (TBRBuffer) which defines a set of storage agnostic mechanisms for allocating, scaling, inserting, deleting and otherwise manipulating a segment of raw binary data.

  • stateless. Simple library for creating state machines in Delphi code.

  • GenericTree. Delphi implementation of a generic Tree structure.

  • Delphi Event Bus (for short DEB). Event Bus framework for Delphi.

  • DelphiEventBus. Yet another Event Bus framework for Delphi, with annotations and rich event filtering.

  • DHibernate. Object Persistent Framework based on Hibernate and NHibernate for Delphi.// Abandoned since 2012

  • UniConv. Universal text conversion library is a universal quick and compact library intended for conversion, comparison and change of the register of text in concordance with the latest standards of the Unicode Consortium. The librarys function greatly resembles ICU, libiconv and Windows.kernel which are de facto standard for popular operating systems.

  • CachedBuffers. The library is irreplaceable for the tasks of sequential data reading or writing, especially if the requirements for the performance are increased and there are much data.

  • CachedTexts. Powerful and compact cross-platform library aimed at parsing and generating of text data with the maximum possible performance. Depends on the two other libraries: CachedBuffers and UniConv.

  • ZEXMLSS. Lazarus/Delphi component for read/write ods, excel xml, xlsx.

  • PasMP. Parallel-processing/multi-processing library for Object Pascal.

  • TCommandLineReader. This unit provides an advanced, platform-independent command line parser for Lazarus and Delphi. It checks for allowed options, automatically prints a help with a list of all of them, and - contrary to the parser in the rtl - behaves the same on Windows and Linux.

  • ICU4PAS. Object Pascal, cross platform, Direct Class Wrapper over the mature and widely used set of C/C++ ICU libraries providing Unicode support, software internationalization (i18n) and globalization (g11n), giving applications the same results on all platforms. You can use it on Windows with Delphi and FreePascal and on Linux with Kylix and FreePascal.// Hadn't been updated since 2007 but ICU interface probably remains the same..

  • CommandLineParser. Simple Command Line Options Parser - spawned from the DUnitX Project.

  • GpCommandLineParser. Attribute based command line parser.

  • GpDelphiUnits. Collection of useful Delphi units. Various TList descendants, TList-compatible, and TList-similar classes. Dynamically allocated, O(1) enqueue and dequeue, threadsafe, microlocking queue. Interface to 64-bit file functions with some added functionality. String hash, table and dictionary. Collection of Win32/Win64 wrappers and helper functions. Time Zone Routines. Embedded file system.

  • BaseNcodingPascal. Library for encoding of binary data into strings using base32, base85, base128 and other algorithms for FPC and Delphi.

  • ByteSizeLibPascal. TByteSize is a utility 'record' that makes byte size representation in code easier by removing ambiguity of the value being represented.

  • EmailValidationPascal. Simple Class for Validating Email Address Syntax in Pascal/Delphi.

  • PRNG. Seven fast pseudo random number generators with period lengths much greater than Pascal's random function. All are implemented with context records, therefore several independent generators can be used simultaneously, they are not cryptographically secure. In addition there are three cryptographic generators.

  • CSV File and String Reader. TnvvCSVFileReader and TnvvCSVStringReader are light weighted and fast classes that resemble unidirectional data set.

  • HTMLBuilder. Build simplified html with pascal code.

  • Marvin.IA. Machine learning collection of object-oriented Pascal primitives (only interfaces and classes).

OS

Delphi Xe5 Keygen

Tools that help dealing with OS-specific internals

  • GLibWMI. Component Library for Delphi that encapsulate the classes for access to WMI of Windows in a set of VCL. BiosInfo, PrinterInfo, DiskInfo,.. Allow access WMI Classes: WIN32_Bios, WIN32_Printers, WIN32_DiskDrive.

  • MemoryMap. Set of classes to get all the info about a memory of a running process.

  • The new Drag and Drop Component Suite. VCL component library that enables your Delphi and C++Builder applications to support COM based drag and drop and integrate with the Windows clipboard.

  • TSMBIOS. Allows access the System Management BIOS (SMBIOS) using the Object Pascal language (Delphi or Free Pascal). The SMBIOS (System Management BIOS) is a standard developed by the DMTF. The information stored in the SMBIOS includes devices manufacturer, model name, serial number, BIOS version, asset tag, processors, ports and device memory installed.

  • VersionInfo for Delphi. The library makes it very easy to read values from the Version Info resource of Windows executables and DLLs. Optionally extends the TApplication class with a version info property via class helper.

  • Magenta Systems WMI and SMART Component. Contains WMI, SMART and SCSI PassThrough functions, of particular use for getting hard disk information and configuring network adaptors, but also for many other general uses. MagWMI provides general view access to any WMI information using SQL like commands, and also a number of dedicated function relating to TCP/IP configuration, such as setting the adaptor IP addresses, the computer name, domain/workgroup, BIOS and disk drive information.

  • madKernel. The package is about Kernel Objects for the biggest part. The most important object types are wrapped up in interfaces, utilizing all the specific kernel32 APIs. Has interface wrappers for: Events, Mutexes, Threads, Processes, Windows, Modules, Tray Icons, shared memory buffers.// Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package.

  • madSecurity. The package makes it easily possible to handle Shares and other Security Objects like file security or registry security. To be able to do so, this package also features functionality around Accounts and ACEs and ACLs.// Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package.

  • madShell. The package implements often needed shell functionality, beginning with Special Folders like the 'Windows' folder or the 'Program Files' folder, continuing with Shell ID Lists, Shell Objects and Shell Events. Then you'll find functionality around ShortCuts/ShellLinks and finally everything about Display Modes.// Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package.

Report generating

  • Report Manager. Report manager is a reporting application (Report Manager Designer) and a set of libraries and utilities to preview, export or print reports. Include native .Net and Delphi/C++Builder libraries, ActiveX component and also standard dynamic link library for use in any language like GNU C.

  • FortesReport. The FortesReport is a powerful report generator available as a package of components for Delphi.

Unit Testing

  • DUnitX. New test framework, taking ideas from DUnit, NUnit and other test frameworks. It is designed to work with Delphi 2010 or later, it makes use of language/RTL features that are not available in older versions of Delphi.

  • DUnit. Unit Testing Framework, that has been the standard testing framework for years, the Delphi IDE now ships with this library.// Included since XE, deprecated since XE8 in favor of DUnitX; seems abandoned.

  • DUnit2. Fork of the DUnit Project that adds several new features.// Seems abandoned, lacks some features from last DUnit version.

  • DelphiSpec. Library for running automated tests written in plain language. Because they're written in plain language, they can be read by anyone on your team. Because they can be read by anyone, you can use them to help improve communication, collaboration and trust on your team.

  • Delphi-Mocks. Simple mocking framework for Delphi XE2 or later. Allow you to mock both classes and interfaces for testing.

  • DUnit-XML. Test runner that allows DUnit Tests to output NUnit compatible XML.

  • Smoketest. Framework for writing tests and performance benchmarks using the Delphi language for Microsoft Windows. It has been tested on all versions of Delphi from 7 thru to 2010.

  • SynTests. Unit test functions including mocks and stubs.

  • OpenCTF. Test framework add-on for Embarcadero Delphi which performs automatic checks of all components in Forms (or DataModules). It provides an easy way to build automatic quality checks for large projects where many components have to pass repeated tests. OpenCTF is based on the DUnit open source test framework and extends it by specialized test classes and helper functions.

  • DelphiUIAutomation. Delphi classes that wrap the MS UIAutomation library. DelphiUIAutomation is a framework for automating rich client applications based on Win32 (and specifically tested with Delphi XE5). It is written in Delphi XE5 and it requires no use of scripting languages. It provides a consistent object-oriented API, hiding the complexity of Microsoft's UIAutomation library and windows messages.

Debugging / error handling

  • Delphi LeakCheck is a free code library to check the memory leaks in the DUnit and DUnit2 tests. Supports Delphi XE-XE7.

  • FastMM. Provides powerful memory leak/corruption detection instruments.

  • JclDebug (part of Project JEDI). Tracing, MAP file parser, exception report generation, exception stack traces.

Utilities

Free non-opensource products allowed here.

IDE plugins/wizards

  • Delphi IDE theme editor / Delphi IDE Colorizer. Tool to change the IDE color highlighting of several Object Pascal IDE's like Delphi (RAD Studio), Appmethod, Lazarus and Smart Mobile Studio. DITE supports Delphi 5-7, 2005-2010, XE-XE8, Appmethod 1.13-1.14, Lazarus v1.0.1.3 and Smart Mobile Studio IDE v1.1.2.17. The Delphi IDE Colorizer (DIC) is a plugin which allows to customize the look and feel of the workspace of the RAD Studio IDE and Appmethod.

  • DDevExtensions. Extends the Delphi/C++Builder IDE by adding some new productivity features// Many useful IDE tweaks, must have.

  • VCL Fix Pack. Delphi unit that fixes VCL and RTL bugs at runtime by patching the original functions. If you want all IDE Fix Pack fixes in your application this unit is what you are looking for. Adding the unit to your project (Delphi and C++Builder) automatically installs the patches that are available for your Delphi/C++Builder version.// Actual for Delphi/C++ 6.2009

  • IDE Fix Pack. Collection of unofficial bug fixes and performance optimizations for the RAD Studio IDE, Win32/Win64 compiler and Win32 debugger. IDE Fix Pack is an IDE plugin for RAD Studio 2009-XE6 that fixes IDE bugs at runtime. All changes are done in memory. No files on disk are modified. None of your projects are modified or benefit from the IDE Fix Pack other than being compiled faster. Only the IDE gets the fixes and optimizations.// Supports all RAD Studio versions since 2007. Removes lots of annoying bugs that EMBT haven't fixed for years. Yay!

  • GExperts. Free set of tools built to increase the productivity of Delphi and C++Builder programmers by adding several features to the IDE. GExperts is developed as Open Source software and we encourage user contributions to the project. Grep search and replace supporting unicode files, DFMs, etc; Automatically rename components, insert text macros, open recent files; Easily backup your projects, with custom additional file lists; Keep nested lists of favorite files for quick access; Track dependencies between units in your project; Quickly jump to any procedure in the current unit; And much, much more..

  • CnWizards. Free Plug-in Tool Set for Delphi/C++ Builder/CodeGear RAD Studio to Improve Development Efficiency.

  • Delphi Package Installer (DelphiPI). Tool which aids you installing components to your Delphi IDE. DelphiPI automatically resolves dependencies between packages, compiles, installs and adds source paths to your IDE.

  • ResEd. Expert for Delphi 2005, 2006, 2007, 2009, 2010 and XE. This expert is designed for editing the resource files (.res; .resx) that are linked to the active project. It will automatically search for all occurrences of {$R xyz.res} lines and will open/create resourcefiles for them. The expert registers itself in the menubar of Delphi under View.

  • Parnassus Bookmarks. IDE plugin that extends bookmark functionality.

  • DelphiSettingManager. Multiple IDE profiles for Delphi (up to XE6). Allows to install multiple versions of the same component or different component sets for different projects.

  • Delphinus. New Packagemanager which runs on Delphi XE and newer and uses Github as a Backend to Provide the packages.

  • Parnassus Bookmarks. IDE plugin that extends bookmark functionality.

  • TestInsight. Unit testing IDE Plugin for Delphi. It supports all versions from XE to 10 Seattle. Supports DUnit, DUnit2, DUnitX frameworks.

  • Delphi IDE Explorer. Wizard / expert / plugin that allows you to browser the internal fields, methods, properties and events of the IDE.// Mainly useful for developers of IDE experts

  • Multi-RAD Studio IDE Expert Manager. Application is for editing the installed experts in all versions of RAD Studio (and older Delphi and C++ Builder) on a machine.

  • OTA Interface Search. Application helps to find Open Tools API (OTA) interfaces, methods and properties and understand how to get to those interfaces or methods / properties of the interfaces.

  • AutoSave. Expert that periodically auto saves all the open modified IDE files.

  • Browse and Doc It. Plug-in allows you to document and browse your code from within the IDE.

  • Integrated Testing Helper. Plugin for Delphi and RAD Studio that allows you to run command-line application before and after the compilation of you projects. It also provides the ability to zip you projects files into an archive on each compile/build and manage the application's version information.

  • Project Magician. Wizard for advanced project options manipulation.

  • Selective Debugging. Wizard that allows to tune for which units their debug version will be used.

  • MMX Code Explorer. Feature-rich productivity enhancing plugin. Includes refactoring, class browser, advanced editing, metrict and many more.

  • FormResource. Wizard that helps storing various data as form resources.

  • Delphi Library Helper Tool to assist Delphi developers configuring library folders.

  • Mobile Image Creator Creating Icons and Launcher Images for Delphi Mobile Applications (Firemonkey). This is a fork of Mobile Gfx created by Thomas Grubb of RiverSoftAVG.

Documentation

  • SynProject (docs). Tool for code source versioning and automated documentation of Delphi projects.

  • PasDoc. Documentation tool for ObjectPascal (FreePascal and Delphi) source code. Documentation is generated from comments found in source code. Available output formats are HTML, HtmlHelp, LaTeX, latex2rtf, simplexml. More output formats may be added in the future.

  • DIPasDoc. Generates HTML documentation from comments in Pascal source code files. It outputs browsable help as standard HTML files or customizable MS HTML Help projects.

Code check/review, debug

  • GpProfiler2017. Source code instrumenting profiler for Delphi XE and higher. Other forks support older versions.

  • SamplingProfiler. Performance profiling tool for Delphi 5 to 32bits Delphi XE4. Its purpose is to help locate bottlenecks, even in final, optimized code running at full-speed.

  • Delphi Code Coverage. Simple Code Coverage tool for Delphi that creates code coverage reports based on detailed MAP files.

  • Pascal Analyzer (free Lite version available). Pascal Analyzer, or PAL for short, parses Delphi or Borland Pascal source code. It builds large internal tables of identifiers, and collects other information such as calls between subprograms. When the parsing is completed, extensive reports are produced. These reports contain a great deal of important information about the source code. This information will help you understand your source code better, and assist you in producing code of higher quality and reliability.

  • madExcept. madExcept was built to help you locate bugs in your software. Whenever there's a crash/exception in your program, madExcept will automatically catch it, analyze it, collect lots of useful information, and give the end user the possibility to send you a full bug report. madExcept is also able to find memory leaks, resource leaks and buffer overruns for you.// *Free without source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer (you'll need to install madExcept item). Pretty well documented.

Setup

  • Lazy Delphi Builder. Build tool for Delphi. Recompile projects/packages from sources with all dependencies, without need to mess around with configs. Quickly (re-)install components from sources into IDE, with no need to change your Library Path.// Powerful automating tool. Freeware but not open source

  • Inno Setup. Free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.

  • WinSparkle and its Delphi wrapper. WinSparkle is an easy-to-use software update library for Windows developers. WinSparkle is a heavily (to the point of being its almost-port) inspired by the Sparkle framework originally by Andy Matuschak that became the de facto standard for software updates on macOS.

  • Silverpoint MultiInstaller. Multi component package installer for Embarcadero Delphi and C++Builder, it was created to ease the components installation on the IDE.

Delphi Xe Serial Port Component

Other

Delphi Xe5 Download

  • WMI Delphi Code Creator. Allows you to generate Object Pascal, Oxygene, C++ and C# code to access the WMI (Windows Management Instrumentation) classes, events and methods. Also includes a set of tools to explorer and Query the content of the WMI.

  • Delphi Preview Handler. Preview handler for Windows Vista, 7 and 8 which allow you read your object pascal, C++ and Assembly code with Syntax highlighting without open in a editor

  • Delphi Dev. Shell Tools. Windows shell extension with useful tasks for Object Pascal Developers (Delphi, Free Pascal).

  • Delphi.gitignore. .gitignore templates for Delphi. There is also one for Lazarus.

  • OmniPascal. Project that enables Delphi and Free Pascal developers to write and maintain code using the modern editor Visual Studio Code.

  • Delphi Unit Tests. Set of unit tests for Delphi's libraries. Delphi community members are encouraged to fork the repository, add tests, and create a pull request. Embarcadero employees are particularly encouraged to add tests from the internal tests that are run with official Delphi builds.

  • madDisAsm. The package features a full x86 disassembler including MMX, 3dNow enhanced, SSE and SSE2 support. The disassembler can examine a single x86 instruction (see ParseCode) or a full function (see ParseFunction) and either return a short analysis or a full text disassembly. Register contents are watched/followed if possible, this improves the analyses for jump/call targets. Case/switch jump tables are automatically detected and handled correctly.// Free without source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer (you'll need to install madExcept item). Pretty well documented.

  • Chet - C Header Translator for Delphi. Chet is a .h-to-.pas translator powered by libclang for Delphi. Uses the Clang compiler to parse header files, resulting in more accurate translations that require fewer manual adjustments.

Delphi Xe5 Serial

License