Introduction

Below is a list of publications that were made in Toolbox, a german magazine for programmers (it no longer exists). Some articles were published in FreeX, some also in Blaise Pascal magazine. The editors of these have kindly allowed me to make these texts public.

These articles span a time range of more than 14 years, so some of them will no longer be accurate or valid. As far as possible I have tried to put a date next to the summary. The date is not necessarily accurate. If anything, it represents the date I checked in the text in my version control system. The version control system changed in 2008, so lots of articles will appear from that year when in fact they are older. The actual date will be well before that.

For similar reasons, the date in the article itself is mostly inaccurate, and reflects more often the date when I last regenerated the article PDF from the LaTeX sources.

Many articles came with code. If you want to receive the code, send me an email (michael at freepascal org ) and let me know for which article. If it is still available, I will send it to you.

Michael.

Table of Contents

You can click on the link at the start of a row to jump to the abstract (summary) of the article.
Jump to Abstract Title Download
aceUsing the Advantage Database Client EnginePDF
agendaDeveloping for the Agenda: A case studyPDF
android1Using Free Pascal to create Android applicationsPDFSources
android2Accessing Preferences and Databases in AndroidPDF
android3Android programming in Free Pascal: Networking, external code and threadsPDFSources
anydacUsing AnyDac in DelphiPDF
anydac (Dutch)AnyDac gebruiken in Delphi (Dutch)PDF
anydac2AnyDAC macros and scriptingPDF
anydac2 (Dutch)AnyDAC macros en scripting (Dutch)PDF
apacheWriting Apache modules in Free PascalPDFSources
archivesReading and writing archives in Free PascalPDFSources
atomvscodeCreating Atom and VS Code plugins in PascalPDF
bold1Object Persistence in Object PascalPDF
canvasStretching a Canvas: Image support for Free PascalPDFSources
cdcover1Creating a CD-Cover programPDFSources
cdcover2The memento pattern in practicePDFSources
cdcover3Handling graphical objects with the mousePDFSources
cdcover5Copy and paste of objects in LazarusPDFSources
cdcover6The undo stack and reusing the memento patternPDFSources
cddbQuerying CDDB in LazarusPDFSources
cef1Embedding the browser in Lazarus PDF
cef2Implementing APIs for Chromium PDF
clamavClam Antivirus: Open-Source Virus protectionPDF
crossfpcCrossKylix & CrossFPCPDF
crossfpc2CrossFPC on the movePDF
customformCustom forms in DelphiPDF
cuttingedgelazarusUsing a development version of LazarusPDF
daemonsTaming the daemon: Writing cross-platform service applications in FPC/LazarusPDF
datetimeDate and time handling in Object PascalPDF
dbus1Hop on the D-BusPDFSources
dbus2Programming the D-BusPDFSources
delphitoolUsing the delphi compiler in the Lazarus IDEPDF
dirwatchDisplaying and Watching directories using LazarusPDFSources
dragdropStarting with Drag & Drop in Lazarus and DelphiPDF
dockingDocking in LazarusPDFSources
dragdrop2Advanced Drag & DropPDF
dragdrop3Drag and drop Part 3PDF
embedded1Embedded databases 1PDF
embedded2Embedded databases 2: SQLitePDF
embedded3Embedded databases 3: Embedded FirebirdPDF
embedded4Embedded databases 4: MySQLPDF
embedded5Embedded databases 5: Advantage Database ServerPDF
embedded7Embedded Databases: NexusDBPDF
eventlogCross-platform event logging in Object PascalPDF
extjs1Practical GUI construction in ExtJSPDF
extpascalMixing ExtJS webapplications and Pascal: ExtPascalPDF
fastreportserverReview: Fastreport Server 2.0PDF
fbserver1Managing a firebird server: Daily backupsPDF
fbserver2Maintaining a Firebird Server - part 2PDF
fileinfoDisplaying associated file icons in DelphiPDF
firebird1Getting started with FirebirdPDF
firebird2Getting started with Firebird: part IIPDF
firebird4Book review: Migration guide to Firebird 4.0 PDF
fpc20FPC Hackathon 2013PDF
fpc20 (Dutch)FPC Hackathon 2013 (Dutch)PDF
fpcandroid1Using the Android SDK in FPCPDFSources
fpcjvmJava Virtual Machine support in FPCPDF
fpcrpcRPC and SOAP with FPC and LazarusPDF
fpcunitTest your Lazarus/FPC code with FPCUnitPDFsources
fpcwasm1Getting started with FPC and WebAssemblyPDF
fpdocDocumenting unit interfaces using fpdocPDF
fpguiThe fpGUI widget set for Free PascalPDF
fpreportFPReport - a new reporting enginePDF
fpreport2FPReport - continuedPDF
geckosdkEmbedding Gecko in a Delphi applicationPDF
generics1An introduction to genericsPDF
generics2An introduction to Generics: containersPDF
gitGetting started with gitPDF
git2Git continued: contributingPDF
git3Git part 3: Branching and partial commitsPDF
googleapiREST clients: Using the Google APIs in Free PascalPDF
gridsUsing the lazarus gridsPDF
gtk1Programming GTK in Free Pascal (With Florian Klaempfl)PDF
gtk2Programming GTK in Free Pascal PDF
gtk3Programming GTK in Free Pascal: MenusPDF
gtk4Programming GTK in Free Pascal: Making a real-world application.PDF
gtk5Programming GTK in Free Pascal: Using GDKPDF
gtk6Programming GTK in Free Pascal: GTK RevisitedPDF
instantfpcPascal scriptingPDF
intrawebIntraweb versus MorfikPDF
kinectProgramming the Microsoft Kinect in PascalPDF
kylix1Kylix: The waiting is overPDF
large1Large Database applications in DelphiPDF
large2Large Database applications in Delphi: Part 2PDF
large3Large Database applications in Delphi: Part 3: Extending TFormPDF
large4Large Database applications in Delphi Part 4: Extending TDatasetPDF
lazarusLazarus: Open source Delphi or KylixPDF
lazdbdesktopThe Lazarus Data DesktopPDF
lazide1Extending the Lazarus IDE: Custom forms and unitsPDFSources
lazide2Extending the Lazarus IDE: Custom forms and unitsPDFSources
lazide3Extending the Lazarus IDE: Menus and the Source editor.PDFSources
lazide4Extending the Lazarus IDE: The code toolsPDF
lazmail-enSending mails using LazarusPDF
lazmailMails zenden met LazarusPDF
lazmintInstalling Lazarus on Linux mint 17.3PDF
lazonmacInstalling Lazarus on Mac OS XPDF
lazpdfCreating PDF files in Lazarus and Free PascalPDF
lazport1Porting Delphi components to LazarusPDF
lazport2Porting to Lazarus 2: ApplicationsPDF
lazprintPrinting in LazarusPDF
lazthreadIntroduction to thread programming in LazarusPDFSources
lazthread (Dutch)Threads programmeren in Lazarus: een inleiding (Dutch)PDF
lazviddblazarus and dabatasesPDF
lazviddb (Dutch)lazarus en databanken (Dutch)PDF
lazvideoBreak-in detection using LazarusPDF
lazvideo (Dutch)Inbraakdetectie met Lazarus (Dutch)PDF
lazvlcDisplaying video files using Free Pascal and LazarusPDF
lazvlc (Dutch)Video bestanden afspelen met Free Pascal en Lazarus (Dutch)PDF
lazinvscodeLazarus to the aid of Visual Studio CodePDF
leap1Programming with the leap motionPDF
leapmacUsing the Leap Motion on Mac OS with LazarusPDF
leapmac (Dutch)De Leap Motion op Mac OS met Lazarus (Dutch)PDF
leapv2Leap Motion Version 2PDF
libseeEmbedding JavaScript in an Object Pascal applicationPDF
morfikMorfik: A new approach to web applicationsPDF
morfik2The new morfik has arrivedPDF
mustacheMustache templates in PascalPDF
nonlclDesigning non-visual objectsPDFSources
openofficeOpening OpenOffice in DelphiPDF
paradoxLazarus Fishfacts: Paradox support for Lazarus/Free PascalPDF
pas2js1Real-world applications with Pas2JSPDF
pas2js2Pas2JS: Communicating with the webserverPDF
pas2js3Handling multiple forms or pages in Pas2JSPDF
pas2js4Connecting to a database with pas2js.PDF
pas2js5Design-time components for pas2js.PDF
pas2js6Translating your Pas2JS application.PDF
pas2js7Executing programs on the server in Pas2JSPDF
pas2jslibsLibrary support in Pas2JSPDF
pas2jspdfViewing PDF files in the browser using Pas2JS PDF
pdfindex2Indexing PDFs - searching the indexPDF
pdfindex3Blaise Pascal Magazine Library: server PDF Index searchPDF
persistence1Object Persistence in Object PascalPDF
persistence2Object Persistence: Using InstantObjectsPDF
persistence3Persistence Frameworks: introducing tiOPFPDF
persistence4Persistence frameworks: writing GUIs in tiOPFPDF
proc2A closer look at process controlPDF
regexUsing regular expressionsPDF
remobjects2Protocol testing with RemObjects SDKPDF
remobjectsRemobjects for WebservicesPDF
rttiRTTI controls in LazarusPDFSources
rtti1RTTI for beginnersPDF
servicesManaging and Writing Windows services with DelphiPDFSources
soapWriting SOAP applications in DelphiPDF
startlaz1Getting started with LazarusPDFSources
startlaz2Getting started with Lazarus: Forms and ControlsPDFSources
startlaz3Getting started with Lazarus: Control BasicsPDF
startlaz4Getting started with Lazarus: Programming actionsPDFSources
startlaz5Getting started with Lazarus: Basic componentsPDFSources
startlaz6Getting started with Lazarus: Common controlsPDFSources
startlaz7Getting started with Lazarus: Database accessPDF
startmorfik1Getting started with Morfik: Creating a GUIPDF
startmorfik2Getting started with Morfik: Database programmingPDF
startmorfik3Webservices in MorfikPDF
stringroutinesString handling routinesPDF
typescriptLeveraging TypeScript declarations in Pas2JSPDF
unittestingUnit testing - test driven development.PDF
web1Lazarus for the webPDFSources
web2Lazarus for the web: Sessions and TemplatesPDFSources
webdataWeb data formats in Lazarus/FPCPDFSources
webserver (Dutch)Een eenvoudige webserver maken in Lazarus (Dutch)PDF
webserverCreating a simple webserver in LazarusPDFSources
wordUsing MS Word in a Delphi applicationPDF
word2Worddriver updatedPDF
zaurusA small zaurus application in Free PascalPDF

Using the Advantage Database Client Engine

Year:2011
Summary: Advantage Database server has an embedded client engine (Advantage Client Engine) which can be used royalty free for desktop applications. This article shows how it can be used to quickly build an application that needs an SQL database.

Download this article in PDF: ace
Table of contents

Developing for the Agenda: A case study

Year:2008
Summary: In this article, we show how to develop applications for the Agenda VR3 from Agenda Computing. This is done by presenting a case study for a small application which was developed as a test for the usability of the Agenda in a school environment.

Download this article in PDF: agenda
Table of contents

Using Free Pascal to create Android applications

Year:2015
Summary: Since several years, Free pascal can be used to create Android applications. There are a number of ways to do this, each with it's advantages and disadvantages. In this article, one of the ways to program for Android is explored.

Download this article in PDF: android1
Download sources for this article: sources
Table of contents

Accessing Preferences and Databases in Android

Year:2015
Summary: A previous article we've shown how to construct a basic Android application using Free Pascal and the Java API. In this article, we'll show how to access the Preferences API and how to create and access a database under Android, as well as showing how data-bound controls work in the Android API.

Download this article in PDF: android2
Table of contents

Android programming in Free Pascal: Networking, external code and threads

Year:2015
Summary: This article will explain how to access the network (internet) from an Android application, to fetch some external data. Accessing the network in Android is best done in a separate thread, so the concept of async tasks is also explained. Lastly, the external data comes in JSON format.To parse this JSON, some native Java code will be incorporated in the application: the article will show how to do this as well.

Download this article in PDF: android3
Download sources for this article: sources
Table of contents

AnyDAC macros en scripting (Dutch)

Year:2012
Summary: AnyDAC werd in een vorig artikel geintroduceerd. Een van de onderwerpen was de ondersteuning voor macros. In dit artikel wordt dit brede onderwerp verder onderzocht: er zijn vele mogelijkheden, en in het bijzonder: SQL scripts. AnyDAC biedt een SQL script component aan die bijna alle macros van de AnyDAC engine ondersteunt.

Download this article in PDF: anydac2-nl
Table of contents

AnyDAC macros and scripting

Year:2012
Summary: In a previous article, AnyDAC was presented. One of the topics was the support for macros. In this article, this broad topic is further investigated: it has many applications, in particular, in SQL scripts. AnyDAC offers an SQL script component which can also handle all the macros that the engine supports.

Download this article in PDF: anydac2
Table of contents

AnyDac gebruiken in Delphi (Dutch)

Year:2012
Summary: Anydac is een verzameling data componenten voor Delphi. De componenten staan toe verbinding te maken met een databank zonder dat daar externe DLLs voor nodig zijn. Alle benodigde code wordt in de applicatie gelinkt. Buiten een TDataset gebaseerd model om data op te halen en te bewerken, zijn er flink wat extra componenten beschikbaar.

Download this article in PDF: anydac-nl
Table of contents

Using AnyDac in Delphi

Year:2012
Summary: Anydac is a data access layer for Delphi. It can be used to connect to many RDBMSes without the need for driver DLLs, all code is compiled-in to the application. Besides providing TDataset-based access to data, it also offers lots of other tools. A closer look.

Download this article in PDF: anydac
Table of contents

Writing Apache modules in Free Pascal

Year:2007
Summary: Apache has support for writing custom modules. It offers an extensive C API which can be used inside these modules. With the support of the translated headers, Free Pascal can be used to write apache modules as well. In this article, it will be demonstrated how this can be done in less than 50 lines of code with the aid of FPC or Lazarus.

Download this article in PDF: apache
Sources for this article Table of contents

Reading and writing archives in Free Pascal

Year:2009
Summary: Often one needs to access or create archives in an application: Creating backups or reading backups is just one of the reasons. Free Pascal by default has native support for several popular archive formats: zip, bzip2, tar and gzip. Often these archives are also encoded or encrypted: support for encryption is also present. This article presents an overview of the possibilities.

Download this article in PDF: archives
Sources for this article
Table of contents

Creating Atom and VS Code plugins in Pascal

Year:2021
Summary: The Atom and VS Code editors are among the most popular programmer editors. These editor are extensible for anyone that can create Javascript. Object Pascal programmers can also create Javascript, so logically they can also create VS Code and Atom extensions. In this article we show how.

Download this article in PDF: atomvscode
Table of contents

Object Persistence in Object Pascal

Year:2008
Summary: Traditional Object Pascal programming focuses on a database-oriented way of One of the most useful extensions of Delphi has been around for some time and allows to use Delphi as a programming tool for implementing UML models. UML (Unified Modelling Language) is a high-level language to describe almost any software process or programming task in an Object Oriented way. Bold for Delphi transforms the model to a working program. In this (and possibly subsequent) articles, the use of Bold will be explored.

Download this article in PDF: bold1
Table of contents

Stretching a Canvas: Image support for Free Pascal

Year:2008
Summary: In this article, the Free Pascal support for images and simple drawing support is presented. The support is split out in 2 parts: support for image loading and support for drawing, which is modelled after the Delphi TCanvas implentation. They are tightly bound together, resulting in easy image manipulation.

Download this article in PDF: canvas
Sources for this article
Table of contents

Creating a CD-Cover program

Year:2008
Summary: In the previous issue of toolbox, a number of techniques available to Lazarus programmers were introduced: fetching data from a CDDB server, printing and the observer pattern, with the related concept of mediators. In this article, the 3 techniques will be combined to create a cd-cover printing program.

Download this article in PDF: cdcover
Sources for this article
Table of contents

The memento pattern in practice

Year:2009
Summary: People used to write database applications will sorely miss the cancel feature which is present in TDataset when they switch to object-oriented programming and use of the mediating views pattern. In this article, a solution to this problem is presented.

Download this article in PDF: cdcover2
Sources for this article
Table of contents

Handling graphical objects with the mouse

Year:2009
Summary: Many applications require some kind of mouse handling to manipulate graphical objects. In vector drawing applications, report designing applications, RAD environments - or even a CD-Cover designing program - moving, resizing, selecting is usually done with the mouse. In this article, the basics of such mouse handling is explained.

Download this article in PDF: cdcover3
Sources for this article
Table of contents

Copy and paste of objects in Lazarus

Year:2009
Summary: Copy and paste is a natural concept when editing text. It is equally natural to be able to copy and paste a set of objects in an application which manipulates and designs a set of objects. This article shows how to do this in Lazarus, using the CD-Cover designing application as a model.

Download this article in PDF: cdcover5
Sources for this article
Table of contents

The undo stack and reusing the memento pattern

Year:2009
Summary: In a previous contribution, the memento pattern was introduced. In this article, the memento pattern is used in an undo stack implementation. The showcase application is once more the CD-Cover designer application.

Download this article in PDF: cdcover6
Sources for this article
Table of contents

Querying CDDB in Lazarus

Year:2008
Summary: FreeCDDB is a database with tracks for audio CD. This database is queried by many popular audio programs that play audio CDs. The CDDB format and protocol are quite simple. This article shows how to query the CDDB

Download this article in PDF: cddb
Sources for this article
Table of contents

Embedding the browser in Lazarus

Year:2021
Summary:

The Chrome browser is by far the most popular browser of the moment. The technology underlying this browser is freely available: the Chromium project distributes the rendering and Javascript engine underlying this browser. In this article we show how to embed the Chromium browser in your Lazarus Application.

Download this article in PDF: cef1
Table of contents

Implementing APIs for Chromium

Year:2021
Summary:

In the previous article about embedding Chromium, we showed how to embed Chromium in your application. In this article, we go a step further, and we show how to add APIs to the Chromium environment, and how these APIs can be used in your Javascript or Pas2JS code.

Download this article in PDF: cef2
Table of contents

Clam Antivirus: Open-Source Virus protection

Year:2004
Summary: Protecting your precious PC against email and other viruses doesn't have to cost a lot of money: \textbf{Clam Antivrus} is an open source virus scanner which can be installed on Unix machines (suitable for integration in mail server's MTAs) but which also has a Windows version for those that are not fortunate enough have a Unix at hand.

Download this article in PDF: clamav
Table of contents

CrossFPC on the move

Year:2008
Summary: Some time ago, a new project was introduced: CrossFPC. CrossFPC is a plugin for Delphi, which allows to cross-compile CLX applications with FPC, to any target supported by FPC and FreeCLX. Meanwhile FPC and CrossFPC have reached a major milestone. A progress report.

Download this article in PDF: crossfpc2
Table of contents

CrossKylix & CrossFPC

Year:2008
Summary: Borland's kylix product seems to have been abandoned. With it could disappear a nice Delphi add on: CrossKylix. But the future may not be so dark, because a successor is being worked on, ready to replace CrossKylix: CrossFPC.

Download this article in PDF: crossfpc
Table of contents

Custom forms in Delphi

Year:2015
Summary: This article describes how to put your own \var{TForm} or \var{TCustomForm} descendant in the ``File - New menu'' of the IDE. For this, the IDE's Open Tools API is used.

Download this article in PDF: customform
Table of contents

Using a development version of Lazarus

Year:2022
Summary:

Lazarus evolves continuously. Because it is an open source project, you don't need to wait for a release to be able to use the latest features. In this article we show how to compile and use the latest development version of the Lazarus IDE.

Download this article in PDF: cuttingedgelazarus
Table of contents

Taming the daemon: Writing cross-platform service applications in FPC/Lazarus

Year:2008
Summary: Programs that do not interact directly with the user and simply run in the background are commonly called services on Windows, or daemons on Unix systems. In this article a set of components is presented which allow to create daemons which work both on Unix and Windows systems. These components can be used in the Visual Designer of Lazarus, but can be used in plain FPC programming just as well.

Download this article in PDF: daemons
Table of contents

Date and time handling in Object Pascal

Year:2009
Summary: Dates and times are encoded in various ways in different libraries and operating systems; The operating system may use different ways to encode a date or time depending on the use-case. An overview of how Object Pascal (as implemented in Delphi and Lazarus) handles dates and times.

Download this article in PDF: datetime
Table of contents

Hop on the D-Bus

Year:2010
Summary: D-BUS is an interprocess communication protocol that has been around for some time, and has gradually replaced the existing IPC mechanisms used by the major packages on the Unix desktop. An introduction.

Download this article in PDF: dbus1
Source code for this article
Table of contents

Programming the D-Bus

Year:2010
Summary: In a previous article, the workings of D-Bus were explained, and it was shown how to use the D-Bus through command-line utilities and scripting. However, D-BUS offers a rich programming interface for a variety of programming languages, which is presented here.

Download this article in PDF: dbus2
Source code for this article
Table of contents

Using the delphi compiler in the Lazarus IDE

Year:2023
Summary:

The Lazarus IDE has some advantages over the Delphi IDE. For one thing, it works cross-platform: you can use Lazarus on your Mac or on Linux. So can you use it to work on your Delphi project and compile the result with the Delphi compiler ? In this article, we show you how.

Download this article in PDF: delphitool
Table of contents

Displaying and Watching directories using Lazarus

Year:2011
Summary: Using Lazarus, getting the contents of a directory can be done in 2 ways: a portable, and a unix-specific way. This article shows how to get the contents of a directory and show it in a window. Additionally, it shows how to get notifications of the Linux kernel if the contents of the directory changes.

Download this article in PDF: dirwatch
Sources for this article
Table of contents

Docking in Lazarus

Year:2010
Summary: Docking is a feature, available in many applications. Basically, this means that parts of the applications (usually toolbars or menus) can be moved to other locations in a window, or even moved to a separate window. This article discusses the mechanisms to provide docking in an LCL application.

Download this article in PDF: docking
Leyba Bronstain has kindly provided a Russian translation: docking (Russian)
Sources for this article
Table of contents

Starting with Drag & Drop in Lazarus and Delphi

Year:2016
Summary: In this article we show how to implement drag and drop operations in your article.

Download this article in PDF: dragdrop
Table of contents

Advanced Drag & Drop

Year:2016
Summary: In a previous contribution, we examined how simple drag and drop can be implemented for Delphi and Lazarus. In this article, we will look at a more complex example: drag and drop from an application to the windows explorer.

Download this article in PDF: dragdrop2
Table of contents

Drag and drop Part 3

Year:2016
Summary:

In two previous articles the principles behind drag and drop in windows were explored, especially drag and drop to the explorer. In this article drag and drop is explored even further: Support for dragging filenames to other applications is added, a set of components to handle drag and drop for a control is introduced, and finally drops in a Delphi application are explored.

Download this article in PDF: dragdrop3
Table of contents

Embedded databases

Year:2008
Summary: There isn't almost any program out there which doesn't use a database, be it implicit or explicit. For those that explicitly need a database, there is always the consideration that the program should distribute easily, which is easiest using an internal database, but that as the program grows, moving to an external database should still be an option. Fortunately, these 2 requirements can be met using a single database engine. An exploration.

Download this article in PDF: embedded1
Table of contents

Embedded databases 2: SQLite

Year:2008
Summary: In this second article about embedded databases, the SQLite database is investigated. This database is one of the easiest to use, and requires very little or no configuration. It's also supported out-of-the box by Lazarus and Delphi.

Download this article in PDF: embedded2
Table of contents

Embedded databases 3: Embedded Firebird

Year:2008
Summary: In this third article about embedded database, the Embedded Firebird is tested. It will be shown how to use set up Embedded firebird, and how to configure some database access layers (for Delphi and Lazarus) to work with Embedded Firebird.

Download this article in PDF: embedded3
Table of contents

Embedded databases 4: MySQL

Year:2008
Summary: In this fourth article about embedded databases, the embedded MySQL server is tested. MySQL is not really meant as an embedded server, and this shows: While possible in theory, in practice, the embedded MySQL server is not easily used for Delphi or Lazarus programs.

Download this article in PDF: embedded4
Table of contents

Embedded databases 5: Advantage Database Server

Year:2008
Summary: The Advantage Database Server engine works client/server and in embedded form. In this article, it's use as an embedded database server is examined, both under Delphi (Windows) and Lazarus (Linux). As in the previous articles in this series, the pupil tracker database will be used to measure it's performance.

Download this article in PDF: embedded5
Table of contents

Embedded Databases: NexusDB

Year:2008
Summary: NexusDB is a database engine from NexusDB, specifically designed for use in Delphi. It runs as an embedded database server, but can also be used as a client/server setup; It supports a variety of client/server protocols, and can be used with or without SQL engine. In this last article about Embedded Databases we compare it with other engines.

Download this article in PDF: embedded7
Table of contents

Cross-platform event logging in Object Pascal

Year:2008
Summary:

Download this article in PDF: eventlog
Table of contents

Practical GUI construction in ExtJS

Year:2009
Summary: In previous Toolbox articles, the ExtJS toolkit was introduced. This article continues the acquaintance with ExtJS and shows how to program simple GUI applications with practical examples.

Download this article in PDF: extjs1
Table of contents

Mixing ExtJS webapplications and Pascal: ExtPascal

Year:2009
Summary: There are many Javascript libraries to create webapplications. ExtJS is such a library. A new and interesting project now allows to create ExtJS webapplications by transforming Pascal code written in Delphi or Lazarus to javascript code: An introduction to Extpascal.

Download this article in PDF: extpascal
Table of contents

Review: Fastreport Server 2.0

Year:2008
Summary: Fastreport server is a Windows service application which serves database reports to clients. Clients can connect using a specialized client application or using a web browser.

Download this article in PDF: fastreportserver
Table of contents

Managing a firebird server: Daily backups

Year:2011
Summary: Firebird is an open source database which is less known than its popular cousin MySQL. It deserves attention, because it has been around for much longer than MySQL and has an extremely rich feature list and is not encumbered by a murky license scheme. Like all databases, firebird databases must be backed up regularly. In this article we take a look at how to organize backups for a firebird server.

Download this article in PDF: fbserver1
Table of contents

Maintaining a Firebird Server - part 2

Year:2011
Summary: In a previous article, a backup schedule script for Firebird servers was presented. In this article, a website designed to accompagny this script is presented.

Download this article in PDF: fbserver2
Table of contents

Displaying associated file icons in Delphi

Year:2017
Summary:

Showing a list of files in some directory is something one often needs to do. Showing the associated file icon and descriptive text next to the filename can be a little harder. In this article we show how to do this.

Download this article in PDF: fileinfo
Table of contents

Getting started with Firebird

Year:2008
Summary: Firebird is a robust open source enterprise-class database which has been existing much longer than most other open source databases. In this article the installation and initial configuration of Firebird on a Linux system will be discussed.

Download this article in PDF: firebird1
Table of contents

Getting started with Firebird: part II

Year:2008
Summary: While firebird can run 24/7 without any administration, some tasks must be performed from time to time, or even periodically: taking a backup, adding a new user to the system. In this article, the needed tools for these tasks are presented. Firebird also comes with support for aliases for databases: the configuration of aliases will also be discussed.

Download this article in PDF: firebird2
Table of contents

Book review: Migration guide to Firebird 4.0

Year:2021
Summary:

Accompagnying the recent release of Firebird 4.0, a book about migrating to 4.0 is a welcome help for Firebird users who wish to use the latest version of the Firebird 4.0 engine. A review of the english translation of the book.

Download this article in PDF: firebird4
Table of contents

FPC Hackathon 2013 (Dutch)

Year:2013
Summary: Free Pascal is 20 jaar oud, en nog steeds springlevend. Dat kan best gevierd worden met een hackathon! Een klein overzicht...

Download this article in PDF: fpc20-nl
Table of contents

FPC Hackathon 2013

Year:2013
Summary: Free Pascal is 20 years old and still alive and kicking. What better way to commemmorate this than a hackathon ? A small recap

Download this article in PDF: fpc20
Table of contents

Using the Android SDK in FPC

Year:2012
Summary: Android has a number of ways to program an android application. One of them is the NDK (Native Development Kit), which allows to create native code for the Android. The traditional way is to use the Java SDK. In this article, using the SDK from a Free Pascal program is explained.

Download this article in PDF: fpcandroid1
Sources for this article
Table of contents

Java Virtual Machine support in FPC

Year:2011
Summary: FPC is a pascal compiler that creates native binaries: it outputs machine instructions for a certain CPU and operating system. Recently, the capability to output Java Bytecode was added to FPC, thus opening a wide rane ofnew possibilities.

Download this article in PDF: fpcjvm
Table of contents

RPC and SOAP with FPC and Lazarus

Year:2006
Summary: Free Pascal has support for RPC (Remote Procedure Call) using XML since a long time, but recently a new toolkit has been developed which allows to do RPC in a variety of ways. It has an extensible interface which allows to extend it in several ways.

Download this article in PDF: fpcrpc
Table of contents

Test your Lazarus/FPC code with FPCUnit

Year:2005
Summary: Testing frameworks for your code are popular: Java has JUnit, Delphi has Dunit and NUnit. Free Pascal and Lazarus could not stay behind, so FPCUnit was implemented. An overview.

Download this article in PDF: fpcunit
Sources for this article
Table of contents

Getting started with FPC and WebAssembly

Year: 2022
Summary:

The Free Pascal and Lazarus foundation sponsored development of a WebAssembly backend for FPC. The backend is now usable in production, and we'll show how to work with it in this article

Download this article in PDF: fpcwasm1
Table of contents

Documenting unit interfaces using fpdoc

Year:2008
Summary:

Download this article in PDF: fpdoc
Table of contents

The fpGUI widget set for Free Pascal

Year:2008
Summary: When designing a GUI application, there is a wealth of GUI toolkits (widget sets) that one can use, with various levels of abstraction. Some are cross-platform, some are not. There are few, however, that are implemented completely in Object Pascal. fpGUI is a relatively new widget set that is implemented 100\% in object pascal, and in this article we'll have a closer look at it.

Download this article in PDF: fpgui
Table of contents

FPReport - a new reporting engine

Year:2017
Summary:

In this article we discuss the new FPReport reporting engine, the design goals that were at the basis of the engine, what can be done with it, and we show how it can be used.

Download this article in PDF: fpreport
Table of contents

FPReport - continued

Year:2017
Summary:

In this second article we delve deeper in the possibilities of FPReport: we show how to save and load a design, make groups in our report, and how to display totals in footers or headers of these groups. We end with the visual report designer

Download this article in PDF: fpreport2
Table of contents

Embedding Gecko in a Delphi application

Year:2008
Summary: Delphi comes standard with a TWebBrowser component that uses Internet Explorer to show webpages. For those that prefer Free software or simply prefer Mozilla and it's derivatives, it is also possible to embed Gecko (the rendering engine of Mozilla) in a Delphi application. This article shows how.

Download this article in PDF: geckosdk
Table of contents

An introduction to generics

Year:2016
Summary:

Generics have been available in Free Pascal and in Delphi for quite some time now, and are increasingly used thoughout the VCL. In this article, we take a closer look at this language construct.

Download this article in PDF: generics1
Table of contents

An introduction to Generics: containers

Year:2016
Summary:

Arguably one of the biggest uses of generics is for container classes: lists, collections, dictionaries. In this article we'll explain how to use generics for such classes.

Download this article in PDF: generics2
Table of contents

Getting started with git

Year:2021
Summary:

Recently, the Free Pascal and Lazarus teams switched from using Subversion to using Git as a source control system: the sources of the projects are now hosted on Gitlab. Time for a gentle introduction to git.

Download this article in PDF: git
Table of contents

Git continued: contributing

Year:2021
Summary:

In a previous article, we introduced the distributed version system \var{Git}, and we showed how to use it to fetch and update sources from a remote repository. In this article, we'll show you how to save changes you made and how to send these changes to the remote repository.

Download this article in PDF: git2
Table of contents

Git part 3: Branching and partial commits

Year:2021
Summary:

Branches are used abundantly in git. In this article we'll explore how to use them and how to deal with a special git feature related to branches: rebase. We'll also see how to split commits in git, in case you did several unrelated things at the same time but wish to commit each thing separately anyway.

Download this article in PDF: git3
Table of contents

REST clients: Using the Google APIs in Free Pascal

Year:2015
Summary: This article demonstrates how to use Free Pascal components that implement the Google APIs, to access Google's services. Using the Google APIs presumes use of OAuth 2, and the use of REST technologies. The article will also show how you can create your own Google API in Pascal using the Google Discovery service.

Download this article in PDF: googleapi
Table of contents

Using the lazarus grids

Year:2008
Summary: The Grid control in Lazarus is to a very large degree compatible to its nephew in Delphi, so the experienced Delphi programmer will not have too much trouble working with it. Nevertheless, there are some nice additions and some marked differences with the Delphi grid. This article explores these, and shows how the grid can be extended.

Download this article in PDF: grids
Table of contents

Programming GTK in Free Pascal

Year:2000
Summary: The GTK library is a popular widget library for the X-Windows system. It is used as the basis for the GIMP graphical manipulation program and for the GNOME application framework. With its ports to Microsoft Windows and BeOS, it allows to program a graphical interface for any application in a platform independent way.

Download this article in PDF: gtk1
Table of contents

Programming GTK in Free Pascal

Year:2000
Summary: In this second article on programming the GTK toolkit, a more advanced use of the GTK library is presented. Techniques to create a new GTK widget are discussed by creating two custom widgets.

The first widget is realized by combining existing GTK widgets to create a new widget, a GTKFileEdit component, modeled after the TFileEdit component found in the RXLib library for Delphi.

Download this article in PDF: gtk2
Table of contents

Programming GTK in Free Pascal: Menus

Year:2000
Summary: In the third article on programming the GTK toolkit, the use of menus in GTK is explored.

Download this article in PDF: gtk3
Table of contents

Programming GTK in Free Pascal: Making a real-world application.

Year:2001
Summary: In the third article on programming the GTK toolkit, the use of several GTK widgets is demonstrated by building a real-world application.

The main widgets to be shown are the Toolbar, CList and Tree widgets. Along the way, some other widgets such as a dialog will be shown as well.

The program to show all this will be a small file explorer. It will not perform all functions that one would expect from a file explorer, but it is not meant to be, either. It just demonstrates how one could go about when making a file explorer.

Download this article in PDF: gtk4
Table of contents

Programming GTK in Free Pascal: Using GDK

Year:2001
Summary: In this article, some of the graphics primitives from the gdk toolkit will be demonstrated in a small game - breakout.

The GTK toolkit widgets are built upon the GDK: Graphics Drawing Kit. The GDK does not know anything about buttons, menus checkboxes and so on. Instead, it knows how to create windows, draw on them, handle mouse clicks and keypresses. This functionality is used by the GTK widget set to create usable widgets.

Download this article in PDF: gtk5
Table of contents

Programming GTK in Free Pascal: GTK Revisited

Year:2003
Summary: To make GTK more accessible for Free Pascal or Delphi programmers, \textbf{FPgtk} was developed by Luk Vandelaer, and is now part of the FPC distribution. It is a very thin object oriented layer around the GTK widgets.

Download this article in PDF: gtk6
Table of contents

Pascal scripting

Year:2011
Summary: System administrators often write small scripts to handle routine tasks. Bash and Perl are often used for this purpose. A small tool included with Free Pascal allows to use pascal for this task. The tool is called \var{instantfpc} and will be discussed here.

Download this article in PDF: instantfpc
Table of contents

Intraweb versus Morfik

Year:2009
Summary: Intraweb - Currently at version 10 - has been around for quite some time. It is a mature technology, and as such can be expected to have a well-established code base and a rich feature set. By contrast, Morfik is a relative young technology, and still has some way to go. In this article, the basics of Intraweb are explained, and at the same time a comparison with Morfik is made.

Download this article in PDF: intraweb
Table of contents

Programming the Microsoft Kinect in Pascal

Year:2013
Summary: The Kinect is a device created by Microsoft to enable NUI (Natural User Interface) for X-Box and Windows. it tracks the movement of the human body, and provides a stereoscopic image of whatever is located in front of the camera. The C++ API for this device can be used in Pascal.

Download this article in PDF: kinect
Table of contents

Kylix: The waiting is over

Year:2008
Summary: alfway 1999 Borland (then called Inprise) announced its plans to port their RAD tool Delphi from Windows to Linux under the new name of Kylix. After one year and a half, the result of their efforts will is available for sale from several websites, and shipping is expected to start in March of this year. For many people this will be the end of a long period of waiting, since Borland has actively tried to keep the developers' interest in Kylix high. Now, finally the time has come. What follows is an overview of what can be expected, based on experiences with some Beta releases (also called Field Tests, in Borland Jargon).

Download this article in PDF: kylix1
Table of contents

Writing large Database applications in Delphi

Year:2005
Summary: In this series of articles, some programming ideas will be discussed that can be applied when making large database applications in Delphi, i.e. database applications that have many screens, which operates on a database with possibly many tables. Many aspects of such programs will be discussed; No code will be presented other than some small code snippets to illustrate the ideas.

Download this article in PDF: large1
Table of contents

Writing large Database applications in Delphi: Part 2

Year:2005
Summary: in this series of articles, some programming ideas will be discussed that can be applied when making large database applications in Delphi, i.e. database applications that have many screens, which operates on a database with possibly many tables. Many aspects of such programs will be discussed; No code will be presented other than some small code snippets to illustrate the ideas.

Download this article in PDF: large2
Table of contents

Large Database applications in Delphi - Part 3: Extending TForm

Year:2005
Summary: In this series of articles, some programming ideas will be discussed that can be applied when making large database applications in Delphi, i.e. database applications that have many screens, which operates on a database with possibly many tables. Many aspects of such programs will be discussed; No code will be presented other than some small code snippets to illustrate the ideas.

Download this article in PDF: large3
Table of contents

Large Database applications in Delphi - Part 4: Extending TDataset

Year:2005
Summary: In this series of articles, some programming ideas will be discussed that can be applied when making large database applications in Delphi, i.e. database applications that have many screens, which operates on a database with possibly many tables.

Download this article in PDF: large4
Table of contents

Lazarus: Open source Delphi or Kylix

Year:2008
Summary: Many windows programmers know Borland Delphi. Some of them even know that Delphi exists on Linux: Kylix. Probably even fewer know that there exists a true open source alternative to these: Lazarus. Maybe this article can change that.

Download this article in PDF: lazarus
Table of contents

The Lazarus Data Desktop

Year:2008
Summary: Lazarus comes with a lot of components to connect to various databases and create data-aware forms. It also comes with a tool which aids in developing database applications: the lazarus data desktop. In this article, the design goals and possibilities of this Lazarus compagnon are explained.

Download this article in PDF: lazdbdesktop
Table of contents

Extending the Lazarus IDE: Custom forms and units

Year:2005
Summary: To extend the Lazarus IDE, it is not necessary to edit the Lazarus sources. The Lazarus IDE is extensible with custom packages, and offers an API to integrate a package in the IDE. In this article, we'll examine one of the ways in which the Lazarus IDE can be extended, namely by adding items to the "New" dialog.

Download this article in PDF: lazide1
Sources for this article Table of contents

Extending the Lazarus IDE: Custom forms and units

Year:2005
Summary: This article explores new ways to extend the 'New' dialog in the Lazarus IDE. It shows how to add custom form classes to the IDE, and how the 'New' dialog can be divided in categories. But it starts by offering a new (and simpler) way to create a project from a template, which was discussed in a previous article.

Download this article in PDF: lazide2
Sources for this article
Table of contents

Extending the Lazarus IDE: Menus and the Source editor.

Year:2005
Summary: In previous articles about the lazarus IDE, it was shown how to implement custom projects and files, using the implementation of project templates. In this article, this functionality is extended by adding the templates directly in the menu, and by moving the configuration dialog also to the menu. Furthermore, the workings of the editor and shortcut-key mechanisms are demonstrated by plugging a code formatter in the IDE source editor.

Download this article in PDF: lazide3
Sources
Table of contents

Extending the Lazarus IDE: The code tools

Year:2008
Summary: In a previous article, the lazarus source editor was explored. In this article, the matter is pushed to the next level by introducing the code tools. The code tools provide methods to handle and manipulate pascal-specific source code. At the same time, it is shown how one can easily modify the source editor window by adding a toolbar to it.

Download this article in PDF: lazide4
Table of contents

Lazarus to the aid of Visual Studio Code

Year: 2022
Summary:

Lazarus has excellent code tools. VS Code has a framework for adding support for new languages. In this article we show how first-class pascal support can be implemented in Visual Studio code using the codetools of the Lazarus IDE.

Download this article in PDF: lazinvscode
Table of contents

Sending mails using Lazarus

Year:2012
Summary: There are various components to handle all kind of TCP/IP protocols in Lazarus. An example is sending E-Mail with the SMTP protocol. The Synapse package offers a particularly easy way to send e-mails in Lazarus.

Download this article in PDF: lazmail-en
Table of contents

Mails zenden met Lazarus

Year:2012
Summary: Er bestaan veschillende componenten om allerlei TCP/IP protocols af te handelen met Lazarus. E-Mail zenden (via het SMTP protocol) is hierop geen uitzondering. Een bijzonder gemakkelijke manier om E-Mails te verzenden is synapse.

Download this article in PDF: lazmail
Table of contents

Installing Lazarus on Linux mint 17.3

Year:2015
Summary: The Lazarus team does not provide packages for all Linux distributions. The distributions themselves distribute very outdated versions of Lazarus. So what to to do if you want to install a new Lazarus on your Linux Mint 17.x distribution ? This article shows how.

Download this article in PDF: lazmint
Table of contents

Installing Lazarus on Mac OS X

Year:2015
Summary: In this article we explain how to install Lazarus on the Mac. These instructions are for Mac OS X Maverick and higher, including 'El Capitan'.

Download this article in PDF: lazonmac
Table of contents

Creating PDF files in Lazarus and Free Pascal

Year:2016
Summary:

In this article we show how to create PDF files in Lazarus and Free Pascal, in particular the \var{TPDFDocument} component that is distributed with Free Pascal.

Download this article in PDF: lazpdf
Table of contents

Porting Delphi components to Lazarus

Year:2008
Summary: Free Pascal supports delphi's version of Object Pascal. That does not mean all delphi code will compile straightforward in Free Pascal, because the LCL - Lazarus version of the VCL is not 100% compatible to Delphi.

Download this article in PDF: lazport1
Table of contents

Porting to Lazarus 2: Applications

Year:2008
Summary: Since the last article, Lazarus has made big leaps of progress. On linux or BSD, it has become a stable development environment. On Windows, the IDE has become fully usable, and the most recent victory is the appearance of Lazarus on Mac OS X. In this second article on porting to Lazarus, 2 small Delphi applications will be ported to Lazarus: one that deals with graphics, the other one deals with Database access.

Download this article in PDF: lazport2
Table of contents

Printing in Lazarus

Year:2008
Summary: Many applications need some form of printed reporting. Lazarus has support for printing, quite similar to what Delphi offers. This article shows how to install and use the various printing capabilities of Lazarus

Download this article in PDF: lazprint
Table of contents

Threads programmeren in Lazarus: een inleiding (Dutch)

Year:2013
Summary: De ondersteuning van Thread programmeren in Free Pascal is grondig onder handen genomen, zodat het compatibel is met threading mogelijkheden in Delphi XE3. Een goede reden om het onderwerp threading nog eens te behandelen, en de mogelijkheden te bekijken, voor zij die niet erg bekend zijn met thread programmatie.

Download this article in PDF: lazthread-nl
Table of contents

Introduction to thread programming in Lazarus

Year:2013
Summary: Thread support in Free Pascal has received an update, so it is compatible to thread support in Delphi XE3. Time to re-visit the subject of threads, and look at the possibilities for those not familiar with thread programming.

Download this article in PDF: lazthread
Sources for this article
Table of contents

lazarus en databanken (Dutch)

Year:2012
Summary: In vorige bijdrages werd een anti-inbraak systeem ontwikkeld dat een beeldje per e-mail verstuurde. In dit artikel wordt getoond hoe het opgenomen beeldje ook in een databank bewaard kan worden. Hiervoor worden standaard Lazarus componenten gebruikt, en met dezelfde componenten wordt een programmaatje gemaakt waarmee de beeldjes bekeken kunnen worden.

Download this article in PDF: lazviddb-nl
Table of contents

lazarus and dabatases

Year:2012
Summary: In previous articles, a motion detection system was created that sends a picture to a mail address. In this article, it will be shown how to store the picture in a database as well. Standard Lazarus components will be used for this. A program to view the stored images will be created as well.

Download this article in PDF: lazviddb
Table of contents

Break-in detection using Lazarus

Year:2012
Summary: A laptop or desktop computer can - using a simple lazarus program - easily be transformed to a burglar alarm. The Windows API allows to create pictures of a room, and using a simple algorithm, changes in the pictures can be detected and an e-mail notification can be sent.

Download this article in PDF: lazvideo-en
Table of contents

Inbraakdetectie met Lazarus

Year:2012
Summary: Een laptop of desktop kan met behulp van een klein Lazarus programma eenvoudig omgetoverd worden tot een inbraakalarm. De Windows API staat toe fotos te maken van een kamer, en met behulp van een eenvoudig algoritme kunnen wijzigingen in de fotos gebruikt worden om een verwittigingsmail te sturen.

Download this article in PDF: lazvideo
Table of contents

Video bestanden afspelen met Free Pascal en Lazarus (Dutch)

Year:2012
Summary: In een vorige bijdrage toonden we hoe filmpjes konden opgenomen worden met lazarus op Windows. In deze bijdrage tonen we hoe een willekeurig filmpje kan afgespeeld worden met een Lazarus programma op Windows en Linux.

Download this article in PDF: lazvlc-nl
Table of contents

Displaying video files using Free Pascal and Lazarus

Year:2012
Summary: In a recent contribution, it was shown how video can be recorded with Lazarus on windows. In this contribution, we show how to display arbitrary video files using lazarus on Windows and Linux.

Download this article in PDF: lazvlc
Table of contents

Programming with the leap motion

Year:2013
Summary: The leap motion is a small device which acts as a stereographic camera, and which detects movements of hands and fingers. This compact device can be used on small distances, and can be used to implement new modes of interaction with the computer.

Download this article in PDF: leap1
Table of contents

De Leap Motion op Mac OS met Lazarus (Dutch)

Year:2013
Summary: Lazarus is een cross platform IDE die onder andere Windows, Linux and Mac OS ondersteunt. De Leap Motion werkt op al deze OS-en. Hoewel de Leap Motion component niet speciaal voor de Mac ontwikkeld was, is het wel de bedoeling dat deze Lazarus component op alle door de Leap ondersteunde platformen zou werken, dit geldt dus ook voor Mac OS.

Download this article in PDF: leapmac-nl
Table of contents

Using the Leap Motion on Mac OS with Lazarus

Year:2013
Summary: Lazarus is a cross platform IDE supporting (among others) Windows, Linux and Mac OS. The Leap Motion works on all of these OS-es. While not initially developed on the Mac, the intention was that the lazarus components for the Leap Motion were usable on all platforms that the Leap supports, and this includes Mac OS.

Download this article in PDF: leapmac
Table of contents

Leap Motion Version 2

Year:2014
Summary: The Leap Motion team has released version 2 of their API. The Object Pascal code to connect to the Leap Motion has been adapted to integrate the new features. An overview.

Download this article in PDF: leapv2
Table of contents

Embedding JavaScript in an Object Pascal application

Year:2010
Summary: Javascript is a scripting language targeted mainly at the web-browser. Libsee is a library that provides a Javascript engine which can be embedded in any application. In this article we show how this can be done for applications written in Object Pascal.

Download this article in PDF: libsee
Table of contents

The new morfik has arrived

Year:2008
Summary: Soon, it will be 2 years ago since the first review of Morfik in this magazine. When the current issue of Toolbox will be available in the newsstands, Morfik will have unveiled version 2 of their amazing webapplication development product. A preview, based on the first beta version.

Download this article in PDF: morfik2
Table of contents

Morfik: A new approach to web applications

Year:2008
Summary: Morfik is a new product which has the potential to make development of web-applications as easy and straightforward as desktop application development. What sets it apart from other web-application development platforms is it's unique architecture, which will be explained here.

Download this article in PDF: morfik
Table of contents

Mustache templates in Pascal

Year:2021
Summary:

Templates are widely used in websites and web applications. One popular template language definition is called Mustache. For a long time \var{dmustache} was the only Pascal implementation of the mustache template language. Now there is a second implementation available.

Download this article in PDF: mustache
Table of contents

Designing non-visual objects

Year:2009
Summary: The lazarus IDE is made to design forms: it manipulates in the first place GUI objects: descendents from TControl, which are painted as they look in reality. Non visual controls are represented with an icon. Recently, the IDE has been enhanced, so the IDE can be used to design - visually - components which are not descendents from TControl.

Download this article in PDF: nonlcl
Sources for this article
Table of contents

Opening OpenOffice in Delphi

Year:2007
Summary: In a previous article, it was shown how MS-Word can be used from withing Delphi. In this article, the same functionality is implemented using OpenOffice writer as the wordprocessing tool, or using OpenOffice Calc to create spreadsheets from a Delphi TDataset. OpenOffice is an Open Source implementation of an office suite, which offers the same functionality as MS-Office, at zero cost. It is therefore worth consideration when implementation or deployment cost is an issue.

Download this article in PDF: openoffice
Table of contents

Lazarus Fishfacts: Paradox support for Lazarus/Free Pascal

Year:2008
Summary: Delphi sill ships with the BDE engine and its support for Paradox files. The use of the \file{pxlib} library now enables the use of Paradox files in Free Pascal and Lazarus.

Download this article in PDF: paradox
Table of contents

Real-world applications with Pas2JS

Year:2021
Summary:

Pas2js is more than just a toy project: as the underlying compiler of TMS Web Core, it is used to create web applications in a RAD manner, in both Delphi and Lazarus. But it can also be used by itself to create real-world applications. We'll show how in a series of articles.

Download this article in PDF: pas2js1
Table of contents

Pas2JS: Communicating with the webserver

Year:2021
Summary:

In a previous article we showed how to get started with pas2js, and how to compile a simple program that interacts with the HTML of the webpage. In this article, we show how to interact with an application server using JSON-RPC.

Table of contents

Handling multiple forms or pages in Pas2JS

Year:2022
Summary:

In this article we show how to reduce coding when creating forms in a Pas2JS web application. Additionally we show how routing can be used to show multiple forms in an SPA (Single Page Application) and keep the browser experience of the user intact.

Download this article in PDF: pas2js3
Table of contents

Connecting to a database with pas2js

Year:2022
Summary:

In this article we explore how to read and write data from a database using Pas2JS and Free Pascal.

Download this article in PDF: pas2js4
Table of contents

Design-time components for pas2js

Year:2022
Summary:

In this article we present a visual way to use some components that have been introduced in previous articles: While WYSIWYG is not yet possible for HTML applications, it is perfectly possible to use the object inspector in Lazarus for pas2js projects, thus speeding up development of pas2js applications considerably.

Download this article in PDF: pas2js5
Table of contents

Translating your Pas2JS application

Year:2022
Summary:

Web Applications and websites are often visible to the world, and allowing the user to use your application or website in his/her own language is clearly improvement of the user interface. Here we show how you can translate your pas2js application.

Download this article in PDF: pas2js6
Table of contents

Executing programs on the server in Pas2JS

Process output demo

Start parameters

Process output

Year: 2023
Summary:

In this article we show how to give the user of a browser-based program feedback from long-running processes on the server, using 2 components: one in pas2js, one in Free Pascal/Lazarus.

Download this article in PDF: pas2js7
Table of contents

Library support in Pas2JS

Year:2022
Summary:

With version 2.2, Pas2JS introduces library support in the compiler. Libraries in Pas2JS translate to Javascript modules: independent blocks of Javascript code which must be explicitly imported in another block. In this article we show to use them.

Download this article in PDF: pas2jslibs
Table of contents

Viewing PDF files in the browser using Pas2JS

Year:2022
Summary:

PDF is probably the most used document format on the web. You don't need to install any special software to view it: The browser can perfectly display a PDF. The technology to view a PDF is available as a Javascript library and so we can use it in pas2js. In this article we show how.

Download this article in PDF: pas2jspdf
Table of contents

Indexing PDFs - searching the index

Year: 2022
Summary:

In a previous contribution, we've shown how to create an index of words in a PDF file. In this article, we'll show how to use this index in a search prgram and use that to implement a search in a website.

Download this article in PDF: pdfindex2
Table of contents

Blaise Pascal Magazine Library

Year:2023
Summary:

Blaise Pascal Magazine offers subscribers a library : a collection of all issues available till now. In this article we show how the PDF indexer application presented in the previous articles about indexing PDF files will be used to rewrite and enhance the Blaise Pascal Magazine library.

Download this article in PDF: pdfindex3
Table of contents

Object Persistence in Object Pascal

Year:2008
Summary: "Traditional" Object Pascal focuses on a dataset-oriented way of programming databases, mainly using relational databases and DB-Aware controls, using the TDataset paradigm. In a series of articles, an alternative approach to database programming will be examined: Object Persistence.

Download this article in PDF: persistence1
Table of contents

Object Persistence: Using InstantObjects

Year:2008
Summary: In the series about Object Persistence Frameworks for Object Pascal, InstantObjects is the first framework to be investigated. The architecture of this free package is discussed and investigated using a small contacts application.

Download this article in PDF: persistence2
Table of contents

Persistence Frameworks: introducing tiOPF

Year:2008
Summary: tiOPF is a persistence framework for Object Pascal maintained at the TechInsite in Melbourne, Australia. It works with Delphi and Free Pascal, and is full featured, albeit not very RAD. In this article the framework and some of it's core concepts are introduced.

Download this article in PDF: persistence3
Table of contents

Persistence frameworks: writing GUIs in tiOPF

Year:2008
Summary: In this second article about the Object Persistence framework tiOPF, the GUI layer of the tiOPF framework is investigated. It will be shown how to use the persistence-aware controls of tiOPF.

Download this article in PDF: persistence4
Table of contents

A closer look at process control

Year:2014
Summary: In the previous article about process control, the TProcess component was introduced, and an overview of its methods and properties was given, as well as a small test application which could be used to test most of the properties.

In this article, the TProcess component will be discussed in more detail: The main methods will be analyzed and explained. Then, the process of porting the component to Linux (for use with Kylix) will be explained, and some well as some small demo programs will be presented.

Download this article in PDF: proc2
Table of contents

Using regular expressions

Year:2021
Summary:

Regular expressions should be a part of every programmer's toolbox. Once grasped, they are easy to use and can accomplish otherwise difficult or time-consuming tasks for you. A short introduction in Regular Expressions.

Download this article in PDF: regex
Table of contents

Protocol testing with RemObjects SDK

Year:2013
Summary: The RemObjects SDK offers a wide variety of channels (transport mechanisms) and message types (messaging protocols). An application can make use of more than one message type or transport channel. This offers the opportunity to compare the speeds of the various protocols and channels.

Download this article in PDF: remobjects2
Table of contents

Remobjects for Webservices

Year:2008
Summary: The RemObjects SDK is a versatile tool which is likely to provide a solution for all your remoting needs: it implements a complete RPC (Remote Procedure Call) mechanism in pure Object Pascal. Using this toolkit, it is easy to write publicly available webservices, or to write high-performance RPC mechanism for use in all kinds of applications.

Download this article in PDF: remobjects
Table of contents

RTTI controls in Lazarus

Year:2005
Summary: Lazarus offers a set of controls which allow to display and set the published properties of any component: these RTTI Controls can be used to create property pages and wizards in the IDE, but they can also be used in real applications. Last and maybe most importantly: they can form the basis of a MDA toolchain for Lazarus.

Download this article in PDF: rtti
Sources for this article
Table of contents

RTTI for beginners

Year:2017
Summary:

RTTI is a part of Delphi since version 1 of Delphi. What is it, what does it do and what can you do with it ?A gentle introduction.

Download this article in PDF: rtti1
Table of contents

Managing and Writing Windows services with Delphi

Year:2008
Summary: Services are special applications which run in the background and which don't usually interact with the user. Most often, they are started when the computer is switched on, and stop when the computer is switched off. Drivers for peripherals can also operate as services, providing access to these peripherals for the operating system for for user programs. Some services can also be started and stopped manually by the user, for instance to perform periodic tasks. The Apache web-server is a service. Core components of Windows NT, 2000 or higher are also services: Indeed, the server capabilities of Windows 2000 Server are implemented as a service. Services are managed by the Service Control Manager (SCM): It takes care of starting, stopping and generally managing services on the Windows platform; Part of it's functionality is exposed through the 'Services' applet in the control panel: It offers a limited interface to the service control manager. Microsoft has provided a rich API to interact with the Service Control Manager: services themselves have to use this API to report to the SCM, but it can also be used to manage all services; the Control Panel applet is a simple frontend to the provided API. The definitions of the services API are in the unit WinSvc, provided standard in the VCL.

Download this article in PDF: services
Sources for this article
Table of contents

Writing SOAP applications in Delphi

Year:2001
Summary: With the release of Delphi 6, Borland introduced support for Web-Services. Web-services is - arguably - one of the hottest topics of the moment in the internet community; It is also one of the cornerstones of Microsoft's .NET initiative. Web-services are small server programs that provide well-defined information to clients over a network such as the internet

Download this article in PDF: soap
Table of contents

Getting started with Lazarus

Year:2007
Summary: Lazarus is a cross-platform 2-way RAD tool which can be used to develop almost any kind of program for Windows, Linux, Solaris or some of the BSD distributions. The focus is on GUI applications. In this and following articles, it will be explained how to get started with Lazarus.

Download this article in PDF: startlaz1
Sources for this article
Table of contents

Getting started with Lazarus: Forms and Controls

Year:2007
Summary: Lazarus is a cross-platform 2-way RAD tool which can be used to develop almost any kind of program for Windows, Linux, Solaris or some of the BSD distributions. The focus is on GUI applications. In this second article, the basics of GUI design will be explained.

Download this article in PDF: startlaz2
Sources for this article
Table of contents

Getting started with Lazarus: Control basics

Year:2007
Summary: In this article about lazarus GUI programming, an overview of basic controls is presented. The basic properties common to all controls are examined, and techniques to modify them are presented as well. In particular, sizing and positioning are investigated in depth.

Download this article in PDF: startlaz3
Table of contents

Getting started with Lazarus: Programming actions

Year:2007
Summary: A responsive GUI interface is part of every user-friendly program. Separating GUI logic from application logic is something which ensures extensibility and good program design. Actions provide the means to achieve both: they make the user-experience better, and help in splitting the user interface from the application logic.

Download this article in PDF: startlaz4
Sources for this article
Table of contents

Getting started with Lazarus: Basic components

Year:2007
Summary: In this article, various standard components of the Lazarus Component Library (LCL) are examined in more detail, and various important properties are discussed. All of the controls described in this contribution are located on the first tab of the component palette in the Lazarus IDE.

Download this article in PDF: startlaz5
Sources for this article
Table of contents

Getting started with Lazarus: Common controls

Year:2007
Summary: In this next article on Getting started with Lazarus, more controls are investigated: editing controls, and (dropdown)list controls such as listboxes and comboboxes.

Download this article in PDF: startlaz6
Sources for this article
Table of contents

Getting started with Lazarus: Database access

Year:2008
Summary: In the series of articles about Lazarus, the focus was till now on controls. In this article, the focus will shift to what most - if not all - software must do: retrieve and manipulate data. The architecture of data handling in Lazarus will be explained and demonstrated.

Download this article in PDF: startlaz7
Table of contents

Getting started with Morfik: Creating a GUI

Year:2008
Summary: Morfik is an exciting new environment for creating webapplications. It is unique in many ways and in this article, it will be shown how Morfik can be used to create webapplications that function (almost) like a regular desktop application.

Download this article in PDF: startmorfik1
Table of contents

Getting started with Morfik: Database programming

Year:2008
Summary: In this second article about getting started with Morfik development, the possibilities for database access are examined. Morfik by default uses Firebird as a back-end database engine, but it can access other databases as well, using ODBC.

Download this article in PDF: startmorfik2
Table of contents

Webservices in Morfik

Year:2008
Summary: In the previous 2 articles about getting started with Morfik, the basics of writing a GUI interface and database access in Morfik were discussed. In this third part, the third pillar of Morfik will be discussed: building and using Webservices - also called webmethods in Morfik.

Download this article in PDF: startmorfik3
Table of contents

String handling routines

Year:2010
Summary: Pascal has long been known for its easy string manipulations. With the coming of dynamically typed languages such as Python, Perl, PHP, Javascript, this advantage has somewhat lessened, as these languages make manipulating strings also less cumbersome. If well programmed, Pascal programs have still the advantage: Speed (because it is compiled) and safe (type safety). An overview.

Download this article in PDF: stringroutines
Table of contents

Leveraging TypeScript declarations in Pas2JS

Year: 2022
Summary:

Pas2js contains a tool to convert TypeScript declaration modules to a pascal unit with external class definitions. This can be used to create import units for many Javascript libraries. In this article, we show how to use this tool.

Download this article in PDF: typescript
Table of contents

Unit testing - test driven development.

Year:2016
Summary: Testing new code is a natural thing, done by every programmer. Testing code in a structured manner is also frequently found. Test driven development is taking structured testing to the extreme: An introduction to one of the possibilities for an Object Pascal programmer: DUnit.

Download this article in PDF: unittesting
Table of contents

Lazarus for the web

Year:2006
Summary: In this article, the support for web programming in Free Pascal/Lazarus is explored. The support is divided in several parts: HTML, Templates, Sessions, HTTP, CGI. Each of these parts is explained, as well as the way in which they cooperate.

Download this article in PDF: web1
Sources for this article
Table of contents

Lazarus for the web: Sessions and Templates

Year:2006
Summary: In this second article about Lazarus web programming, the support for sessions in Lazarus web modules is investigated.

Download this article in PDF: web2
Sources for this article
Table of contents

Web data formats in Lazarus/FPC

Year:2008
Summary: These days it is hard to avoid contact with popular web data formats as XML and - more recently - JSON. Fortunately, Lazarus and FPC are equipped with a set of tools to handle and output these formats. An overview.

Download this article in PDF: webdata
Leyba Bronstain has kindly provided a Russian translation: webdata (Russian)
Sources for this article
Table of contents

Een eenvoudige webserver maken in Lazarus (Dutch)

Year:2011
Summary: Free Pascal - en dus ook Lazarus - kan meerdere TCP/IP componenten compileren: Synapse, Indy en lnet. Free Pascal wordt echter ook verdeeld met enkele eenvoudige netwerk componenten. Een van deze componenten is een eenvoudige webserver. Dit artikel beschrijft hoe deze component gebruikt kan worden.

Download this article in PDF: webserver1-nl
Table of contents

Creating a simple webserver in Lazarus

Year:2011
Summary: Free Pascal - and therefor Lazarus - can compile many TCP/IP stacks: Synapse, Indy and lnet. However, Free Pascal also ships with some simple networking components. One of them is a simple webserver. This article shows how to use it.

Download this article in PDF: webserver1
Sources for this article
Table of contents

Worddriver updated

Year:2009
Summary: In issue 3/2004 of Toolbox, a component was presented which can be used to create personalized letters and tables in MS-Word (TWordDriver). Since then, both the component and MS-Word have evolved to new versions. In this article, the updated version of the TWordDriver component is presented.

Download this article in PDF: word2
Download the code for this article worddrive.zip. Download updated code for the drivere offdrv.zip. Table of contents

Using MS Word in a Delphi application

Year:2004
Summary: Two techniques to control MS-Word from a Delphi application are discussed in this article. As a demonstration, a small tool is developed which allows to use Word for producing a serial-letter, or to produce tables from data in a TDataset. Based on the techniques shown, it should be possible to create any kind of document - or indeed, control MS-Word - from a Delphi application.

Download this article in PDF: word
Download the code for this article worddrive.zip. Table of contents

A small zaurus application in Free Pascal

Year: 2004
Summary: The Zaurus is a small Linux-based PDA. The architecture is not supported by Free pascal cannot be used to compile binaries that run on the zaurus, but it can stil be useful in helping working with the zaurus.

Download this article in PDF: zaurus
Table of contents