Delphi

May 14th, 2012

Certification

Official Embarcadero Documentation

Documentation

Documentation – Firemonkey

Documentation – Reference guide

Documentation – Learning

My Tags

News

IDE

  • Free Pascal- информационный портал для разработчиков. Free Pascal Compiler (FPC) – это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. Он совместим с Borland Pascal 7 и Object Pascal – Delphi, но при этом обладает рядом дополнительных возможностей.
  • Lazarus (SourceForge)
  • Oxygene is a Next Generation Object Pascal language development environment for creating managed applications for the Common Language Runtime – including Microsoft .NET and Novell’s open source Mono framework – and the Java Runtime Environment – including regular Java and Android.

IDE – Extensions

  • Delphi Package Tool 1.9.0.140 – tool to compile Package Group files(.bpg/.bdsproj/.groupproj) and automatically install the components into IDE. For D5 to 2010.
  • Castalia transforms the Delphi programming environment into an amazing development platform. Castalia lives on the bleeding edge of IDE technology, giving you cutting edge tools to write better code faster, understand code more accurately, and improve code you’ve already written.
  • DDevExtensions extends the Delphi/C++Builder IDE by adding some new productivity features.
  • The IDE Fix Pack 2009/2010/XE installs is a DLL-Expert that fixes the following RAD Studio 2009/2010/XE bugs at runtime.
  • DelphiSpeedUp is an IDE plugin for Delphi and C++Builder. It improves the IDE’s startup speed and increases the general speed of the whole IDE.
  • The VCL Fix Pack is a Delphi unit that fixes VCL and RTL bugs at runtime by patching the original functions.
  • GExperts is a 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.
  • CnPack IDE Wizards (CnWizards) is a Free Plug-in Tool Set for Delphi/C++ Builder/CodeGear RAD Studio to Improve Development Efficiency.
  • XE Distiller – Embarcadero RAD Studio XE packages/experts manager, tweaker.
  • Documentation Insight – help you visually read and write documentation in the Delphi or RAD Studio IDE.  Customize the built-in Help Insight.
  • Object Inspector filter (beta)

Source

  • DelphiDabbler.com is home to a library of Delphi source code, a database of code snippets, various programming articles and hints & tips. There are also several programs.  (DelphiDabbler CodeSnip is a Delphi code snippets repository)

Libraries

  • Joint Endeavour of Delphi Innovators (Project JEDI, see JCL (JEDI Code Library) ) – is a open source project consisted of a worldwide community of developers sharing their efforts and resources to improve Delphi.
  • JSON – SuperObject - JSON toolkit is compatible with Delphi and Freepascal (win32/64 linux32/64).
  • OmniThreadLibrary is simple to use threading library for Delphi. Currently, versions 2007, 2009, and 2010 are supported. OmniThreadLibrary is an open source project. It lives in the Google Code and is licensed under the BSD license. (OmniThreadLibrary book)
  • AsyncCalls – Asynchronous function calls. With AsyncCalls you can execute multiple functions at the same time and synchronize them at every point in the function or method that started them. This allows you to execute time consuming code whos result is needed at a later time in a different thread. While the asynchronous function is executed the caller function can do other tasks.
  • Spring Framework for Delphi (Spring4D) is an open-source code library for Embarcadero Delphi 2010+ platforms. It consists of a number of different modules, including a Dependency Injection Framework and a Base Class Library (Common Types, Collections Framework, Reflection, Logging). Spring Framework (google code web-site) for Delphi is an international open source project, whose mission is to provide a robust infrastructure framework that will help Delphi developers build solid, flexible and extensible enterprise applications and class libraries based on the Embarcadero® Delphi® 2010 for Win32 platform. Dependency Injection Series (rus).
  • TKBDynamic allows to save/load/get(binary)size/compare any dynamic type with only one line of code. This can be used for example to share data by any IPC mechanism.
  • Fundamentals Code Library – code libraries for Delphi and FreePascal: Unicode, XML, Hash, Huge Integer, Cipher
  • Jaro Benes’s components – library for individual string formatting – jbStr, Components for edit input data, Component TDBF to access DBF table without BDE, Component TLabel3D, Compact, one file oriented database framework TinyDB
  • DUCK DUCK DELPHI – This unit adds simple duck typing to Delphi Objects and provides an RTTI helper class to simplify many common RTTI tasks. Requires Delphi XE2.

Library – XML

Library – Algorithms

  • delphi matrix library (Google code) –   this library contains numerous assembler hand optimized base matrix functions as well as many higher order functions like singular value decomposition, matrix inversion, pseudo inversion, LU decomposition and many others. Note the even x64 assembler code is available to grant maximum compatibility.

Libraries – Web/Network

  •  Synapse TCP/IP library – this project 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 and etc.  The SYNAPSE library aims to create a complete library of classes and functions that would markedly simplify application programming of network communication using Winsock.
  • OpenSSL for Indy
  • RemObjects SDK is the award-winning cross-platform remoting framework that makes it easy to build modern applications that communicate and exchange data across the network.

Libraries – Script

  • DelphiWebScript (see DWS) - DWScript is an object-oriented scripting language for Delphi, despite its name, it is general purpose and not limited to websites. DWS allows using as well as defining whole new classes (with polymorphism, meta-class support, etc.) using a, object-oriented Pascal syntax. The language is based on Delphi, but also supports syntax and features similar to Prism and FreePascal, as well as various language extensions.
  • Pascal Script is a free scripting engine that allows you to use most of the Object Pascal language within your Delphi or Free Pascal projects at runtime. Written completely in Delphi, it is composed of a set of units that can be compiled into your executable, eliminating the need to distribute any external files. Pascal Script started out as a need for a good working script, when there were none available at the time.
  • FastScript – скриптовая библиотека, содержащая 4 языка программирования (в настоящее время – PascalScript, C++Script, JScript и BasicScript).
  • OP4JS – Object Pascal for JavaScript

Libraries – Graphics

  • ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

Libraries – Crypt

  • Delphi Cryptography Package. The idea behind DCPcrypt is that it should be possible to “drop in” any algorithm implementation to replace another with minimum or no code changes. To aid in this goal all cryptographic components are descended from one of several base classes, TDCP_cipher for encryption algorithms and TDCP_hash for message digest algorithms.
  • Cryptlib (AddOn’s for Delphi programmers) – is a powerful security toolkit which allows even inexperienced crypto programmers to easily add encryption and authentication services to their software. The high-level interface provides anyone with the ability to add strong security capabilities to an application in as little as half an hour, without needing to know any of the low-level details which make the encryption or authentication work.
  • TurboPower LockBox 3 is a Delphi library for cryptography. Currently supported compilers include Delphi 2007 and Delphi 2010. It provides support for AES, DES, 3DES, Blowfish, Twofish, SHA1, MD5, a variety of chaining modes, RSA digital signature.
  • AES implementations – list of wiki.
  • Fundamentals Code Library – fundamentals Cipher Library allows encryption, decryption using the following ciphers: AES, DES, RC2, RC4, RSA.

Libraries – PDF

Libraries – Messaging

  • Habari Client libraries provide access to standards-based, enterprise quality solutions for distributed messaging. Delphi applications now can take advantage of open source message broker technology, which is: Distributed, Loosely coupled, Reliable, Asynchronous and build integrated systems, connecting clients using the peer-to-peer or the publish and subscribe communication model. They support the open source JMS message brokers ActiveMQ, HornetQ and OpenMQ, and the open source AMQP message broker RabbitMQ. Available for Embarcadero Delphi 2009 to XE2 (32 and 64 Bit + Mac OS X) and Free Pascal.

Components

  • tiOPF is an Open Source framework for Delphi & Free Pascal that simplifies the mapping of an object oriented business model into a relational database. The framework is mature and robust having been in use on production sites since 1999. It is free, open source, and available for immediate download with full source code.
  • InstantObjects™ is an integrated framework for developing object-oriented business solutions in Borland Delphi™. The framework provides the foundation for the development process as well as the engine that powers the final application.
  • THDDInfo – невизуальная компонента Delphi, позволяющая получить системную информацию об IDE, SCSI и ATAPI устройствах.
  • Graphics32 is a library designed for fast 32-bit graphics handling on Delphi and Kylix. 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.

Components – VCL

  • PlusMemo – the coolest enhanced memo editor control with syntax highlighting functionality. Native VCL component, in standard and data aware versions, Ansi and Unicode versions.
  • TRichView is a suite of native Delphi/C++Builder components for displaying, editing and printing hypertext documents.ScaleRichView is a TRichView addon providing WYSIWYG editing. Components support various character attributes (fonts, subscripts/superscripts, colored text background, custom drawn). Documents can contain tables, pictures, images from imagelists, arbitrary Delphi controls. Left, right, center or justify alignments of paragraphs, multilevel bullets and numbering, custom margins and indents, Unicode, background images, print preview, RTF import and export, HTML export, data-aware versions.
  • Components for automating Microsoft Office. Supports Microsoft Office 97 – 2010. Contains Excel and Word components.
  • SynEdit is an advanced multi-line edit control, for Borland Delphi and Kylix (C++Builder mostly works, but is unsupported). It supports syntax highlighting, word-wrapping, code completion, template components, and exporters for HTML, TeX and RTF. It is a pure-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls and so no run-time library is required.
  • The JSDialog Pack consists of a number of components that not only emulate the Windows Vista TaskDialog and TaskDialogIndirect API functions on other operating systems but also provices enhancements over those APIs. There are components for enhancing the dialogs with edit controls and also replacing the Radio Button functionality with Check Boxes. Also included are three Password specific dialogs, that allow you to capture password information by dropping a component on your form and writing a line or two of validation code.
  • DecoCharts – a set of interactive charting components for specialized purposes. By using these components, your application can be extended with decomposition bar charts, budget status indicators, KPI status tables, and similar presentations. Components are designed as a lightweight alternative to the universal grids and charting components. Every component from the DecoCharts package can be used separately for its concrete purposes, without some resource-heavy universal component class in the background.

Components – Settings

  • Storage Library – new way for application settings management. Storage library is a collection of components allowing to work with application settings. Using this library you can gradually add functionality of application settings management in you application. Shareware ($59)

Components – UI

  • AlmediaDev – DynamicSkinForm, BusinessSkinForm, SkinAdapter, SmartFlash, SmartEffects.
  • KSDev has been creating high-quality, innovative tools - VGScene, DXScene, FlashEngine, SkinEngine, BlockEngine, FXLib and ThemeEngine.
  • vcl-styles-utils – extend the Delphi VCL Styles, Adding new features and new classes. (web-blog: “The Road to Delphi – a Blog about programming“)
  • Asphyre Sphinx is the latest framework for developing 2D/3D video games and interactive business applications. It aids the developer with resource management, displaying 2D and 3D graphics in real-time, receive keyboard, mouse and joystick input, and multiplayer capabilities.
  • TMSsoftware.com –  (TMS Component Pack) –  Create modern-looking & feature-rich Windows applications faster with well over 300 components in one money and time saving bundle for Delphi 5,6,7,2005,2006,2007,2009,2010 & C++Builder 5,6,2006,2007,2009,2010.
  • AlphaControls is a collection of standard and original skinned controls with new properties added in order to enhanced program interface and add behaviors to common controls and with some new technologies using.
  • ImageEn is a component suite for image processing, viewing and analysis. It can load and save from several image file formats, acquire from TWain/WIA scanners (single and multi pages), capture video, apply filters and enhance images quality, merge images, select image regions (Magic Wand supported) and other. It supports also multiple layers and transparency. ImageEn allow you to include professional graphics software features in your applications.
  • The Drag and Drop Component Suite is a freeware VCL component library that enables your Delphi and C++Builder applications to support COM based drag and drop and integrate with the Windows clipboard.
  • The Apprehend screen capture component for Embarcadero ™ Delphi captures images of the desktop or full screen, a selected area of the screen, the active window, a selected object or window, a freehand (polygon) area of the screen, pre-selected icon sized (16×16, 32×32 or 48×48) area, and user specified area of the screen. Apprehend demos for TImage or ImageEN are provided.

Components – Multimedia

  • FFMPEG – FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec – the leading audio/video codec library. FFMPEG For Firemonkey is a wrapper of cross platform FFMPEG APIs for Delphi and C++Builder Firemonkey on both Windows and Mac OSX.

Components – Network

  • TSipClient component with the full source code allows you to create your own SIP softphone, call center application or IVR system (300$).

Components – Mobile

  • Smart Mobile Studio, a very exciting project that allows you to write ordinary pascal in the flavour made famous by Delphi and Free pascal, but generate feature rich, cutting edge HTML5 web applications ready for the mobile market.
  • Oxygene for Java is a new edition of our Oxygene product that brings the next generation Object Pascal language to the Java and Android platforms. Just like the original Oxygene for .NET set out to bring modern Pascal development to the .NET world, Oxygene for Java is taking this same design philosophy to next level by expanding the reach of Oxygene to the second big managed platform of today.
  • JQueryMobile – JQuery Mobile is an easy way to build sites and apps that are accessible on all popular smartphone, tablet and desktop devices. The framework includes an Ajax navigation system that brings animated page transitions and a core set of UI widgets: pages, dialogs, toolbars, listviews, buttons with icons, form elements, accordions, collapsibles, and more. jQuery Mobile has broad support for the vast majority of all modern desktop, smartphone, tablet, and e-reader platforms.

Components – Web

  • THTMLWriter is a class for creating HTML and HTML Documents. THTMLWriter uses the fluent interface. It can be used to create either complete HTML documents or chunks of HTML. By using the fluent interface, you can link together number of methods to create a complete document.
  • delphi chromium embedded (developer blog)
  • Raudus – is a Web-based, Ajax-driven framework and component set for Delphi, that allow create Rich Internet Applications (RIA). Raudus uses ExtJS GUI library in web-applications for PC browsers and SencaTouch library in web-applications for mobile devices. The development process is very similar to desktop applications development.
  • Morfik provides a complete and integrated visual design environment for building and deploying Ajax-based Rich Internet Applications.
  • ExtPascal is an Object Pascal (Delphi, FreePascal/Lazarus) wrapper/binding for Ext JS, a complete GUI Ajax framework, made in JavaScript, for Rich Internet Application (RIA) development. ExtPascal lets you use Ext JS from Object Pascal commands issued by the server. It brings the structure and strict syntax of the Object Pascal for programming the web browser.
  • ICS – The Internet Component Suite is composed of various Internet components and applications. It is distributed as freeware with full source code for all Delphi and C++Builder versions. The sample applications exists in two forms: Object Pascal for Delphi and C++ for C++Builder. The components are written in Object Pascal native VCL which can be compiled by Delphi as well as C++Builder.
  • uniGUI framework extends Web application development experience to a new dimension. Each uniGUI application can be considered both as a desktop and a Web application at the same time. This unique feature enables  developers to create, design and debug their Delphi projects as a regular desktop application and then choose one of the available options for Web deployment. Of course, with uniGUI it is possible to create, design and debug applications which target only the Web.
  • The Habari Web Components web application framework allows to build web applications from simple building blocks. It is designed for small and medium sized web applications, and supports multiple application contexts with separated resource folders, dynamic and static web resources, configurable logging, IPv4 and IPv6 connectors, resource path mapping, static resource caching and MIME type detection and on-demand HTTP session creation. Its core HTTP server infrastructure leverages the Internet Direct (Indy) library.

Components – DB

  • EhLib contains components and classes for Embarcadero RAD Studio XE, intended to increase capacity of the client part of database application in part of interaction with applications user. (rus)

Components – SQL

Debug Memory Manager

  • EurekaLog – is a complete bug resolution tool for Delphi and C++Builder developers that gives your application the power to catch every exception and memory leak, directly on the end user PC, generating a detailed log of the call stack (with file, class, method and line number), optionally sending you a copy of each log entry via email or to a web bug-tracker.
  • SafeMM Debug Memory Manager for Delphi/C++. This memory manager will raise an AV when an improper attempt is made to read or write memory.
  • FastMM is a lightning fast replacement memory manager for Embarcadero Delphi Win32 applications that scales well in multi-threaded applications, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.
  • madExcept was built to help you locating crashes 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.

Test automation

  • OpenCTF is a 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. Adding OpenCTF tests to a DUnit test suite requires only a few lines of code. Writing your own custom component tests needs only a few seconds. OpenCTF is based on the DUnit open source test framework and extends it by specialized test classes and helper functions. (download)
  • DUnit - an Xtreme testing framework for Borland Delphi programs
  • CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process
  • Delphi Mocks – a Open Source Mocking framework for Delphi XE2 or later.

Code Profilers

  • SamplingProfiler is a sampling profiler for Delphi 5 to Delphi XE. Its purpose is to help locate bottlenecks, even in final, optimized code running at full-speed.
  • GpProfile allows easily find bottlenecks and significantly improve perfomance of your Delphi applications. It is a must-have tool for any Delphi developer.
  • AsmProfiler can profile your application to find bottlenecks in your code (for optimizations). It is a Windows profiler (Windows NT, 2000, XP and x86) and can profile any function (dll, c++, delphi, ?) without changing the original code or even the need of the original code.
  • ProDelphi is a tool to measure the runtime of programs written in Delphi Object Pascal.
  • QRQ Profiler - is a sampling profiler for Windows 2000/XP. This tool is designed for Delphi programmers but can be used with other programming languages as well.
  • AQtime is a performance profiler and memory allocation debugger for 32-bit and 64-bit Windows and .NET-connected applications. AQtime can be integrated into Microsoft Visual Studio, Borland Developer Studio or CodeGear RAD Studio or it can run as a stand-alone application. With AQtime, you can not only find a bottleneck, but also determine what caused that bottleneck.

Tools

  • C to Pascal Converter
  • WMI Delphi Code Creator – the WMI Delphi Code Creator tool, allows you to generate Object Pascal and C++ code to access the WMI (Windows Management Instrumentation) classes, events and methods. this freeware tool is inspired by the  WMI Code Creator. (google code project: wmi-delphi-code-creator)
  • maXbox – is a scripter tool and inbuilt delphi engine in one exe! It is designed for teaching and developing, runs under Windows and Linux (CLX) to set Delphi in a box without installation. maXbox is built on RemObjects Pascal Script, the smart evolution of programming. With include, eventsprinting, drag n’drop, syntax check, code templates, VM-, and DLL support. Plus Indy, Jedi, Sysutils, Graphics & Unit. In 3.8 with CryptoBox and GRID!, OS Lib – Current Version mX3.8.2 with mX4 compiler.
  • Good Tools for Delphi Developers

Tools – Build

  • Lazy Delphi Builder- the best build tool for Codegear Delphi. Automates following tasks:
    • 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.
  • WAnt is a Pascal-friendly build automation tool. It automates the process of building, testing, and packaging applications and libraries much like Apache (ex Jakarta) Ant does. WAnt is kind of like Ant, without being Java-dependent, whereas Ant was “kind of like Make, but without Make’s wrinkles.”
  • Thundax Delphi Builder – a custom application to provide automated Builds for Delphi using MSBuild. This little tool generates a batch file to call the list of projects and it displays the information using a TMemo getting the info from the console window using a pipe with the capture.

Tools – Crypt

  • Citadel compresses and encrypts the DFMs in your executables. This reduces the size of the application and protects your forms from hackers. You can apply Citadel to your applications in just 1 minute.

Tools – Install

Utilities – Web

Tips

Articles

Articles – TDD (Unit Testing)

Articles – Debug

Articles – Optimization

Articles – Other

Articles – Web

Articles – Localization

Delphi Labs

Code Snippets

Comments are closed.