Components and Code examples

From Lazarus wiki
Revision as of 11:42, 4 November 2014 by BigChimp (talk | contribs) (→‎System: python4delphi converted)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Default components provided by Lazarus

The rest of this page covers components not delivered with Lazarus. For the default components provided with Lazarus, please see Lazarus Components Directory.

As Lazarus uses the FPC compiler, you can also use packages provided by FPC. See Package List.

Lazarus-CCR Released Components

Light bulb  Note: This list is not complete. A lot of components in Lazarus-CCR are mentioned under the not hosted here section
Light bulb  Note: Please move ONLY the components/applications/programs in the Lazarus CCR repository from the list below into this list

Archiving

File formats

  • CsvDocument - CSV files handling using parser or cell-based API similar to one of StringGrid component.
  • FPSpreadsheet - A library for handling spreadsheet files. Supports the formats from MS Excel and OpenOffice.
  • fpvectorial - Text Document Support - A library for handling text document files. Currently supports exporting to .docx and .odt file formats only.

Tools

  • LazBarcodes - Generate barcodes (QRCode, Aztec, DataMatrix, ...)

Visual components

  • Fshcomp - Edit components.
  • HistoryFiles - A component for store the recent files list into an .ini file and show the result into a menu.
  • LongTimer - Visual component based on TIdleTimer working with long intervals (Daily, Weekly or Monthly)
  • Poweredby - Visual drop-in component to show a 'Powered by Lazarus' splash screen for 1 second on form.create() Promote Lazarus/FPC!
  • ScrollText - Visual component that displays up-scrolling text (like a Credits screen)
  • playsound - Visual component to play WAV files in Windows and Linux

Packages/Programs for FPC/Lazarus (not hosted here)

Uncategorized

  • 5dpo (5dpo Component Library - Sdpo) is a set of components released by the 5dpo Robotic Soccer Team.
  • Audorra is a digital audio library for Delphi and Free pascal.
  • Brain Patchwork DX, LLC. has ported their TCP/UDP Client and Server Components to Lazarus 0.9.22/FPC 2.0.4 - visual and non-visual implementation are supported (www.bpdx.com)
  • Brook framework is the perfect Free Pascal framework for your web applications.
  • Castle Game Engine, a 3D game engine especially focused on VRML/X3D formats.
  • CUPS for Lazarus project Common UNIX Printing System for FPC/Lazarus. NOTE: Obsolete. Replaced by Printing4Lazarus package included in current Lazarus versions.
  • Diagram a unit to draw a diagram using a model/view system
  • DelphiWebScript Object-oriented scripting engine based on Object pascal language.
  • dfsSplitter: a Netscape look alike splitter. See forum thread.
  • DrawObjectsExtended a graphical component ported from Delphi to draw structured diagrams.
  • ExcelInterfaces, a component to interface FPC and Lazarus programs with the Excel spreadsheet tool. It also demonstrates the use of COM interfaces on the Windows platform
  • FIBL FreeIBComponents package porting for Lazarus.
  • FreeImage is an Open Source library project which supports popular graphics image formats like PNG, BMP, JPEG, TIFF and others (works with Windows, Linux and Mac OS X). PicViewer is a Example Application (Windows only) and shows basic usage of this DLL.
  • Fundamentals Code Library includes libraries for Unicode, Strings, Data Structures, Sockets and Mathematics.
  • GolfmlClass A Lazarus/Free Pascal class to accept data via properties and write a well-formed golfml XML golf information exchange file
  • Greyhound Project is a tiny ORM-ish for Free Pascal. You can use SQLdb, Zeos or whatever you want to connect to a DBMS.
  • ICU4PAS is an Object Pascal, cross platform, Direct Class Wrapper over the ICU libraries. ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications.
  • Indy
  • Internet Tools are a set of units for webpage processing: There is a html/xml parser with sax/dom-like interface, XPath 2 / XQuery expressions engine, CSS 3 selectors, templates with xml pattern-matching and a http/s connection wrapper (around synapse and wininet)
  • http://ioda.sourceforge.net/index.html ioda is a fulltext search database: a word indexing and retrieving engine. It stores unique words from a file or database source in a btree and their repeaters in an flexible and highly space optimized list structure. Each stored word "knows" its source, position in the source and some (optional) info bytes. Written in FPC.
  • JEDI-SDL : Pascal headers for SDL
  • lazarus-zlib - library, contains simple functions for work with zlib-archives (it uses the original zlib source, compiled in obj-files).
  • LibSndFile.dll is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. The download also contains a GUI demo application written under Windows.
  • mpg123.dll is a MPEG 1.0/2.0/2.5 decoder DLL for layers 1,2 and 3. The MPEG 1.0 layer 3 aka MP3 is most commonly tested. The Library itself is available for Linux, MacOSX, FreeBSD, SunOS4.1.3, Solaris 2.5, HPUX 9.x, SGI Irix and Cygwin or plain MS Windows. Cross-platform compatible source code should be possible in LAZARUS as soon as the wrapper file for portaudio.DLL is tested by Linux and Mac owners. The example code contains two wrapper files, tested under Windows 32bit only.
  • Pascal LZMA SDK
  • Notepad++ plugin template for Lazarus: a demo template that should get you started quickly with writing your own plugin for the free (Windows only) Notepad++ text editor. Ported from the existing Delphi template.
  • PascalSCADA is a set of components to make easy the development of HMI/SCADA applications (applications that needs interact with PLC's and others industrial devices).
  • Pascal Script Pascal Script is a REMObjects Pascal Script interpreter. See Pascal Script. PascalScript is also used in the Lazarus IDE to provide scripting functionality.
  • PortAudio project is a portable cross-platform Audio API currently available for Windows, Macintosh OS X, Unix (OSS/ALSA), SGI, and BeOS. It allows cross-platform compatible source code also in LAZARUS. The download contains the wrapper file that makes the C Library available and also example applications showing how to use the PortAudio DLL under Lazarus LCL / Windows. The wrapper file for portaudio.DLL is from the UltraStar Sourceforge project.
  • PUMA Repository, a collection of Pascal units that support development of medical software with Lazarus and Free Pascal.
  • QRcode : QRcode generator (bitwise and png)
  • qxotica - tools for creating qooxdoo Web apps. Develop both the JavaScript qooxdoo-based client and the Pascal server app in Lazarus.
  • RackCtls a collection of components with an "Hi-fi system" appearance.
  • RealThinClient SDK - components for building stable HTTP(S) Clients, Servers, Routers, Proxies, Load Balancers and ISAPIs with Delphi/Lazarus.
  • Runge-Kutta a scientific component to integrate partial differential equations, using events.
  • SplashAbout (non-visual) is a simple object to drop in your app that creates a Splash screen and About dialog with the minimum of effort. (non-visual version)
    • Note: Use SplashAbout for a visual drop-in component version
  • Starting with version 32, Lucas Gebauer's outstanding Synapse TCP/IP library is now compatible with Free Pascal and Lazarus. Lucas has also just released version 12 of his Synaser serial port communications suite that also runs under Free Pascal.
  • Synedit-Port Synedit 2.0.5 port - SynEdit is an advanced multi-line edit control.
  • TTreeListView is the combination of a TTreeView with a TListView, showing items in a tree with columns
  • UltraStar Deluxe has headers for the following libraries for Windows, Linux and Mac OS X (with a few exceptions):
    • portaudio
    • bass
    • ffmpeg
    • SDL
    • libpng
    • FreeImage
    • freetype
    • JEDI-SDL
    • Lua
    • midi
    • pcre
    • portmixer
    • projectM
    • samplerate
    • SQLite
    • zlib
    • fft

Archiving

  • bzip2lib - Stream classes for bzip2 compression and decompression.
  • libtar - Classes for .TAR archives by Stefan Heymann, who kindly relicensed so that they are now in the FPC 2.1.1 and later distributions. Can be combined by zstream to create .tar.gz files.
  • PeaZip - Cross-platform archive/zip/7z/etc manager similar to WinZip or 7zip Explorer. Written in Lazarus.
  • ZipFile - Component that encapsulates a zipfile, you can read and write from it as if it's a filesystem
  • Zlibar - Objects to create and extract a zlib compressed archive containing multiple files

Database

  • fb embedded2 Laz - Using a FireBird 2.0.3 server included in your executable with Lazarus by including the Firebird DLLs as a resource. Note: the word "embedded" does not mean regular embedded Firebird here
  • IBX - Component for direct connecting to FirebirdSQL
  • tiOPF - TechInsite Object Persistent Framework (Ver. 2)
  • TParadoxDataSet - A TDataSet implementation that can read Paradox files up to Version 7 (and up ??)
  • TPSQL - Components for connecting to PostgreSQL database servers
  • SQLitePass - Components for connecting to SQLite database
  • ZeosDBO - Component for connecting to multiple database (Firebird, PostgreSQL, MySQL, Oracle)
  • ZMSQL - TBufDataset SQL enhanced in-memory database, storing data as delimited text files

Graphics

  • DelphiTwain - Library that lets you scan documents using the TWAIN interface on Windows
  • Graphics libraries - here you can see the main graphic libraries you can use to develop.
  • pyramidtiff - a command line tool to create from an image file a tiff file with multiple resolutions usable with iipimage and other high resolution image viewers.

2D Drawing

  • ZenGL - cross-platform game development library using OpenGL.
  • BGRABitmap - Drawing shapes and bitmaps with transparency, direct access to pixels, etc.
  • LazRGBGraphics - A package for fast in memory image processing and pixel manipulations (like scan line).
  • fpvectorial - Offers support to read, modify and write vectorial images.
  • Double Gradient - Draw 'double gradient' & 'n gradient' bitmaps easy.
  • Gradient Filler - TGradientFiller is the best way to create custom n gradients in Lazarus.
  • PascalMagick - an easy to use API for interfacing with ImageMagick, a multiplatform free software suite to create, edit, and compose bitmap images.
  • Sample Graphics - graphics gallery created with Lazarus and drawing tools
  • Fast direct pixel access - speed comparison of some methods for direct bitmap pixel access
  • SMNetGradient - A Gradient Fill component for Lazarus.
  • TMetafile/TMetafileCanvas - EnhMetafile API implementation for Windows.

3D Drawing

  • GLScene - A port of the 3D visual OpenGL graphics Library GLScene
  • TOpenGLBox - A barebones OpenGL component for Lazarus that provides an OpenGL rendering area.

Charts

  • TAChart - Charting component for Lazarus
  • PlotPanel - A plotting and charting component for animated graphs
  • Perlin Noise - An article about using Perlin Noise on LCL applications.

Multimedia

  • ACS - Audio Component Suite, a collection of components to develop applications for audio playing/recording/processing. Can play wav,ogg,mp3,mp2,wma ... record from any recordable source, do everything simultan, ripping and more. See ACS
  • Bluetooth - Accessing Bluetooth devices. For example the Wiimote.

Tools

  • FpSystools - Conversion of TurboPower's Systools for Kylix package to Lazarus/FPC
  • DCPcrypt - DCPcrypt Cryptographic Component Library
  • RXfpc - Some of the well known RXlib components components converted to Lazarus
  • MultiLog - A Log system designed for FPC-Lazarus
  • OnGuard - A port of Turbo Power OnGuard
  • UniqueInstance - A component to force only one instance running at same time
  • XDev Toolkit - Cross-platform development tools.
  • MouseAndKeyInput - Tool for cross-platform manipulation with mouse and key input.
  • PascalSane - bindings for the libsane scanner API, with demo application.
  • log4delphi - A Log system based on log4j
  • fppkggui - A simple frontend gui for fppkg
  • SymScan - Barcode Scanner interface for Symbol/Motorolla MC series handhelds.
  • Theodp - UTF-8 Tools
  • DELPHI FORM TO HTML CONVERTER - Delphi Form to HTML Converter - new by PEW
  • InstantFPC - run pascal programs as normal unix scripts


Edit controls and viewers

  • PowerPDF - Port of the PowerPDF (visual) components for Lazarus
  • RichView - Port of the TRichView Freeware Edition Components to Lazarus
  • SynEdit - Source Editor component (used by the IDE)
  • Synedit 2.0.5 port
  • RichMemo - A cross-platform component designed as rich text editor and viewer.

Networking

  • BeepFp - BEEP Protocol framework
  • FPC and Apache Modules - Headers for creating Apache modules with fpc
  • fpctwit FreePascal OAuth v1 library using Synapse. Sample FPC plurk, twitter clients. Sample Lazarus twitter client.
  • lNet - Networking components which provides simple, single-threaded event-driven networking suite with protocols from TCP and UDP to SMTP and HTTP. lNet was designed to not depend on any external libraries and is extremely portable.
  • Sockets - TCP/IP Sockets components
  • Web Services Toolkit - Web Services authoring and consumption

File formats

  • Xml/CSV/TxtSYMFONIA Parsers - Parsers components for XML/CSV/TXT(symfonia). Parser's is very quick for reading XML/CSV/TXTsymfonia Files.

Containers

  • StringHashMap - String -> Pointer associative map container. Fast and memory efficient.

System

  • Bluetooth - Accessing Bluetooth devices.
  • EpikTimer - Precision timer component written specifically for Lazarus.
  • FileAssociation - Register file associations for all Windows versions. This includes Default Programs feature for Vista+.
  • Manager Worker Threads System - Manager Worker Thread system to process simultaneous data objects in real-time.
  • MDButtonsBar - ButtonsBar to MultiDoc Component.
  • MPICH - Bindings for the MPI - Message Passing Interface. Distributed computing.
  • MultiDoc - A component to write pseudo-MDI application with Lazarus.
  • Python4Delphi - A port of Python4Delphi that allows you to use Python scripts with Lazarus/FPC.
  • TrayIcon - A multiplatform System Tray component
  • TPopupNotifier - How to use TPopupNotifier to show "balloon help".
  • Yet another Running Timer - A thread safe timer

Visual components

  • VirtualTreeview - A port of the fast virtual treeview from SoftGems
  • VirtualDBTreeEx - Checking interface built with data with checking rules, inherits VirtualTreeview
  • Turbopower Visual PlanIt - A port of the Planner Components
  • RingChart and AnalogWatch - Another Elliptical Chart and an Analogic Watch for Lazarus and FPC
  • ColorBox - Color picker with preview
  • Spook's Panel Components - A collection of panel components
  • ColorPalette - A color palette grid with ability to use custom palette.
  • OrphPort - Subset of TurboPower's Orpheus controls.
  • TSubForm - A Data-Aware SubForm that replicates controls based on records in a dataset.
  • Lui Controls - A set of visual controls (TToggleLabel, TMenuButton)
  • uE Controls - A open source set of instrumentation controls for Lazarus and Free Pascal, compilable under Windows and Linux.
  • JvXPBar - A port of JVCL's TJvXPBar control that can display an icon, a header and zero or more clickable items in its client area.
  • Extended - A last level visual components package, which can manage a management software linked to data.
  • CmdLine - A Prompt as VCL Control.
  • Wile64 - Components for Lazarus (TGifAnim, TColorProgress, TLabelCut...)
  • TGradButton - A new good looking Button Component
  • BGRAControls - Components which are using the power of the BGRABitmap package. BGRAImageList, BGRASpeedButton, BGRAButton, BGRAPanel.
  • TMyRollOut and ExpandPanel - A collapsable panel with a button (like TJvRollOut); these panels can be arranged with "Expandpanel"
  • FileMenuHandler - Handles Recent files list and Open, Save, Save As, Exit Commands.
  • THtmlPort - Lazarus port of Dave Baldwin's HTML Components (THtmlViewer, TFrameViewer, TFrameBrowser).
  • GeckoPort - Lazarus port of Takanori Ito's Gecko SDK for Delphi, including TGeckoBrowser.
  • ZVDateTimeControls Package - This package contains TZVDateTimePicker (the clone of Delphi's TDateTimePicker) and TDBZVDatePicker (a data aware version of TZVDateTimePicker).
  • jujiboutils - Set of components to input and validate different kinds of data, floats, dates, etc.
  • SplashAbout - Splash and About dialogs from a visual drop-in component.
  • ATTabs - Tab-control, not OS-themed, owner-drawn.
  • ATStatusBar - Statusbar, not OS-themed, owner-drawn.
  • ATScrollBar - Scrollbar, not OS-themed, owner-drawn.

Lazarus IDE Extensions

  • Manual Docker - The extension allows Messages window to dock to the source editor.

Hardware Access

  • NIDAQmxBase - Unit for using National Instruments data acquisition devices through the NI DAQmx Base library (not the bigger NI DAQmx library).

Commercial Packages for FPC/Lazarus

  • AnyDAC AnyDAC is a commercial data access library. It has been ported to Lazarus. AnyDAC supports Firebird, MySQL, Oracle, PostgreSQL, SQLite, Interbase, SQL Server, IBM DB2, SQL Anywhere and ODBC on Windows and Linux 32bit platforms. The MS Access and dbExpress are supported on Win32 platform only. In plans to add all drivers support on Win x64, Linux x64, MacOS 32bit and x64 platforms.
  • Devart PostgreSQL Data Access Components (PgDAC) - http://www.devart.com/pgdac/ - PostgreSQL Components that use native wire protocol no libpq needed.
  • Devart SecureBridge Components - http://www.devart.com/sbridge/ - SSH/SFTP/SSL components Easily create SSH tunnels and SFTP clients and much more.
  • TML/SIDEX BEEP based high level networking components - https://www.tml-software.com - peer to peer, rpc, stream, events, single call multiple answer and more.
  • TMS FlexCel Studio for VCL/LCL - http://www.tmssoftware.com/site/flexcel.asp - A Spreadsheet component

Example programs

There are a LOT of example programs in the examples directory of your Lazarus installation.

See also:

Example programs not supplied with Lazarus:

  • Contacts Database - An expanded version of the address book example with reports.
  • Creating LCL Control From Libraries - Shows you how to create and manage LCL UI controls in an application from plug-ins (dll/so/dynlib).
  • Dependency Calculator Dependency Calculator: demonstrates topological sort algorithm to sort dependencies (directory dependencycalculator)
  • JCSV (Jans CSV Components) - Working Example of TJansCSV Component Set
  • IniEdit - Iniedit: a small application/form that shows how to use Synmemo to show syntax-highlighted ini file editing, as well as using a timer and controls to simultaneously edit another part of the ini (directory iniedit)
  • How To Use Interfaces to write less code - Working Example of Interfaces and generics.
  • Kaldemonia - Google Searcher shows simple threading, using Synapse networking library.
  • Libview - Views all exported function names of a given library.
  • LRS_Explorer - A little software to add some pictures, music, etc.. into a Lazarus resource (lrs) file.
  • Micro-mainframe Transmission Command Generator for IBM Mainframes
  • OpenGL Tutorial - Example code for the OpenGL tutorial
  • Robot - The Game - Very easy written sample for beginners
  • SSHClient - SSHClient: complete Windows demo of Synapse+encryption units that implement an SSH terminal. Includes required DLLs. (directory SSHClient)
  • Sudoku - A Sudoku solver.
  • SysRec - Video Capturing and Recording application, you can download it here.
  • Synapse - The Synapse page has an SSH/Telnet client unit and example program that demonstrates running commands on servers. See also SSHClient above.
  • TSqlite3 Master Detail Example - Working Master Detail Example using 3 small tables and sqlite components.

RTL, FCL and LCL Usage examples

See Also