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.
Jump to Abstract | Title | Download | |
---|---|---|---|
ace | Using the Advantage Database Client Engine | ||
agenda | Developing for the Agenda: A case study | ||
android1 | Using Free Pascal to create Android applications | Sources | |
android2 | Accessing Preferences and Databases in Android | ||
android3 | Android programming in Free Pascal: Networking, external code and threads | Sources | |
anonymous | Anonymous functions in Free Pascal | ||
anydac | Using AnyDac in Delphi | ||
anydac (Dutch) | AnyDac gebruiken in Delphi (Dutch) | ||
anydac2 | AnyDAC macros and scripting | ||
anydac2 (Dutch) | AnyDAC macros en scripting (Dutch) | ||
apache | Writing Apache modules in Free Pascal | Sources | |
archives | Reading and writing archives in Free Pascal | Sources | |
atomvscode | Creating Atom and VS Code plugins in Pascal | ||
bold1 | Object Persistence in Object Pascal | ||
canvas | Stretching a Canvas: Image support for Free Pascal | Sources | |
cdcover1 | Creating a CD-Cover program | Sources | |
cdcover2 | The memento pattern in practice | Sources | |
cdcover3 | Handling graphical objects with the mouse | Sources | |
cdcover5 | Copy and paste of objects in Lazarus | Sources | |
cdcover6 | The undo stack and reusing the memento pattern | Sources | |
cddb | Querying CDDB in Lazarus | Sources | |
cef1 | Embedding the browser in Lazarus | ||
cef2 | Implementing APIs for Chromium | ||
clamav | Clam Antivirus: Open-Source Virus protection | ||
crossfpc | CrossKylix & CrossFPC | ||
crossfpc2 | CrossFPC on the move | ||
customform | Custom forms in Delphi | ||
cuttingedgelazarus | Using a development version of Lazarus | ||
daemons | Taming the daemon: Writing cross-platform service applications in FPC/Lazarus | ||
datetime | Date and time handling in Object Pascal | ||
dbus1 | Hop on the D-Bus | Sources | |
dbus2 | Programming the D-Bus | Sources | |
debugcapture | Sending debug logs to the server in Pas2JS | ||
delphitool | Using the delphi compiler in the Lazarus IDE | ||
dirwatch | Displaying and Watching directories using Lazarus | Sources | |
dragdrop | Starting with Drag & Drop in Lazarus and Delphi | ||
docking | Docking in Lazarus | Sources | |
dottedfpc | Keeping up with Delphi in FPC | ||
dragdrop2 | Advanced Drag & Drop | ||
dragdrop3 | Drag and drop Part 3 | ||
embedded1 | Embedded databases 1 | ||
embedded2 | Embedded databases 2: SQLite | ||
embedded3 | Embedded databases 3: Embedded Firebird | ||
embedded4 | Embedded databases 4: MySQL | ||
embedded5 | Embedded databases 5: Advantage Database Server | ||
embedded7 | Embedded Databases: NexusDB | ||
embeddingwasm | Embedding Webassembly in a FPC program | ||
eventlog | Cross-platform event logging in Object Pascal | ||
extendedrtti | Extended RTTI support in Free Pascal | ||
extjs1 | Practical GUI construction in ExtJS | ||
extpascal | Mixing ExtJS webapplications and Pascal: ExtPascal | ||
fastreportserver | Review: Fastreport Server 2.0 | ||
fbserver1 | Managing a firebird server: Daily backups | ||
fbserver2 | Maintaining a Firebird Server - part 2 | ||
fileinfo | Displaying associated file icons in Delphi | ||
firebird1 | Getting started with Firebird | ||
firebird2 | Getting started with Firebird: part II | ||
firebird4 | Book review: Migration guide to Firebird 4.0 | ||
fpc20 | FPC Hackathon 2013 | ||
fpc20 (Dutch) | FPC Hackathon 2013 (Dutch) | ||
fpcandroid1 | Using the Android SDK in FPC | Sources | |
fpcfmx | Compiling an FMX application for the browser | ||
fpcjvm | Java Virtual Machine support in FPC | ||
fpcrpc | RPC and SOAP with FPC and Lazarus | ||
fpcunit | Test your Lazarus/FPC code with FPCUnit | sources | |
fpcwasm1 | Getting started with FPC and WebAssembly | ||
fpdoc | Documenting unit interfaces using fpdoc | ||
fpgui | The fpGUI widget set for Free Pascal | ||
fpreport | FPReport - a new reporting engine | ||
fpreport2 | FPReport - continued | ||
fresnel1 | Lazarus: Project Fresnel | ||
fresnel2 | Project Fresnel Update | ||
fresnel3 | Updates in project Fresnel: The Edit control | ||
geckosdk | Embedding Gecko in a Delphi application | ||
generics1 | An introduction to generics | ||
generics2 | An introduction to Generics: containers | ||
git | Getting started with git | ||
git2 | Git continued: contributing | ||
git3 | Git part 3: Branching and partial commits | ||
googleapi | REST clients: Using the Google APIs in Free Pascal | ||
grids | Using the lazarus grids | ||
gtk1 | Programming GTK in Free Pascal (With Florian Klaempfl) | ||
gtk2 | Programming GTK in Free Pascal | ||
gtk3 | Programming GTK in Free Pascal: Menus | ||
gtk4 | Programming GTK in Free Pascal: Making a real-world application. | ||
gtk5 | Programming GTK in Free Pascal: Using GDK | ||
gtk6 | Programming GTK in Free Pascal: GTK Revisited | ||
instantfpc | Pascal scripting | ||
intraweb | Intraweb versus Morfik | ||
kinect | Programming the Microsoft Kinect in Pascal | ||
kylix1 | Kylix: The waiting is over | ||
large1 | Large Database applications in Delphi | ||
large2 | Large Database applications in Delphi: Part 2 | ||
large3 | Large Database applications in Delphi: Part 3: Extending TForm | ||
large4 | Large Database applications in Delphi Part 4: Extending TDataset | ||
lazarus | Lazarus: Open source Delphi or Kylix | ||
lazdbdesktop | The Lazarus Data Desktop | ||
lazide1 | Extending the Lazarus IDE: Custom forms and units | Sources | |
lazide2 | Extending the Lazarus IDE: Custom forms and units | Sources | |
lazide3 | Extending the Lazarus IDE: Menus and the Source editor. | Sources | |
lazide4 | Extending the Lazarus IDE: The code tools | ||
lazmail-en | Sending mails using Lazarus | ||
lazmail | Mails zenden met Lazarus | ||
lazmint | Installing Lazarus on Linux mint 17.3 | ||
lazonmac | Installing Lazarus on Mac OS X | ||
lazpdf | Creating PDF files in Lazarus and Free Pascal | ||
lazport1 | Porting Delphi components to Lazarus | ||
lazport2 | Porting to Lazarus 2: Applications | ||
lazprint | Printing in Lazarus | ||
lazthread | Introduction to thread programming in Lazarus | Sources | |
lazthread (Dutch) | Threads programmeren in Lazarus: een inleiding (Dutch) | ||
lazviddb | lazarus and dabatases | ||
lazviddb (Dutch) | lazarus en databanken (Dutch) | ||
lazvideo | Break-in detection using Lazarus | ||
lazvideo (Dutch) | Inbraakdetectie met Lazarus (Dutch) | ||
lazvlc | Displaying video files using Free Pascal and Lazarus | ||
lazvlc (Dutch) | Video bestanden afspelen met Free Pascal en Lazarus (Dutch) | ||
lazinvscode | Lazarus to the aid of Visual Studio Code | ||
leap1 | Programming with the leap motion | ||
leapmac | Using the Leap Motion on Mac OS with Lazarus | ||
leapmac (Dutch) | De Leap Motion op Mac OS met Lazarus (Dutch) | ||
leapv2 | Leap Motion Version 2 | ||
libsee | Embedding JavaScript in an Object Pascal application | ||
morfik | Morfik: A new approach to web applications | ||
morfik2 | The new morfik has arrived | ||
mustache | Mustache templates in Pascal | ||
nonlcl | Designing non-visual objects | Sources | |
openapi1 | Getting started with OpenAPI in Lazarus and Free Pascal | ||
openapi2 | More OpenAPI support in FPC and Lazarus | ||
openoffice | Opening OpenOffice in Delphi | ||
paradox | Lazarus Fishfacts: Paradox support for Lazarus/Free Pascal | ||
pas2js1 | Real-world applications with Pas2JS | Sources | |
pas2js2 | Pas2JS: Communicating with the webserver | Sources | |
pas2js3 | Handling multiple forms or pages in Pas2JS | Sources | |
pas2js4 | Connecting to a database with pas2js. | Sources | |
pas2js5 | Design-time components for pas2js. | Sources | |
pas2js6 | Translating your Pas2JS application. | Sources | |
pas2js7 | Executing programs on the server in Pas2JS | Sources | |
pas2jslibs | Library support in Pas2JS | Sources | |
pas2jspdf | Viewing PDF files in the browser using Pas2JS | Sources | |
pas2jsrtti | Extended RTTI in pas2js | ||
pdfindex1 | Searching PDF files: Indexing | ||
pdfindex2 | Indexing PDFs - searching the index | ||
pdfindex3 | Blaise Pascal Magazine Library: server PDF Index search | ||
pdfselect | Text selection and highlighting in a Pas2js PDF viewer | ||
persistence1 | Object Persistence in Object Pascal | ||
persistence2 | Object Persistence: Using InstantObjects | ||
persistence3 | Persistence Frameworks: introducing tiOPF | ||
persistence4 | Persistence frameworks: writing GUIs in tiOPF | ||
proc2 | A closer look at process control | ||
pushnotifications | Push notification support in Free Pascal | ||
regex | Using regular expressions | ||
remobjects2 | Protocol testing with RemObjects SDK | ||
remobjects | Remobjects for Webservices | ||
rtti | RTTI controls in Lazarus | Sources | |
rtti1 | RTTI for beginners | ||
scoped | Reducing code with scoped objects | ||
services | Managing and Writing Windows services with Delphi | Sources | |
soap | Writing SOAP applications in Delphi | ||
startlaz1 | Getting started with Lazarus | Sources | |
startlaz2 | Getting started with Lazarus: Forms and Controls | Sources | |
startlaz3 | Getting started with Lazarus: Control Basics | ||
startlaz4 | Getting started with Lazarus: Programming actions | Sources | |
startlaz5 | Getting started with Lazarus: Basic components | Sources | |
startlaz6 | Getting started with Lazarus: Common controls | Sources | |
startlaz7 | Getting started with Lazarus: Database access | ||
startmorfik1 | Getting started with Morfik: Creating a GUI | ||
startmorfik2 | Getting started with Morfik: Database programming | ||
startmorfik3 | Webservices in Morfik | ||
stringroutines | String handling routines | ||
testinsight | Test Insight in Lazarus | ||
typescript | Leveraging TypeScript declarations in Pas2JS | ||
unittesting | Unit testing - test driven development. | ||
wasmdom | Using the browser APIs from WebAssembly | ||
web1 | Lazarus for the web | Sources | |
web2 | Lazarus for the web: Sessions and Templates | Sources | |
webdata | Web data formats in Lazarus/FPC | Sources | |
webserver (Dutch) | Een eenvoudige webserver maken in Lazarus (Dutch) | ||
webserver | Creating a simple webserver in Lazarus | Sources | |
webthreading1 | Threading in the browser | ||
webthreading2 | Threading in the browser: Webassembly | ||
word | Using MS Word in a Delphi application | ||
word2 | Worddriver updated | ||
zaurus | A small zaurus application in Free Pascal |
Download this article in PDF: ace
Table of contents
Download this article in PDF: agenda
Table of contents
Download this article in PDF: android1
Download sources for this article: sources
Table of contents
Download this article in PDF: android2
Table of contents
Download this article in PDF: android3
Download sources for this article: sources
Table of contents
Since some weeks, support for Anonymous functions has been introduced in Free Pascal. In this article, we'll take a look at this new and long-awaited feature.
Download this article in PDF: anonymous
Download this article in PDF: anydac2-nl
Table of contents
Download this article in PDF: anydac2
Table of contents
Download this article in PDF: anydac-nl
Table of contents
Download this article in PDF: anydac
Table of contents
Download this article in PDF: apache
Sources for this article
Table of contents
Download this article in PDF: archives
Sources for this article
Table of contents
Download this article in PDF: atomvscode
Table of contents
Download this article in PDF: bold1
Table of contents
Download this article in PDF: canvas
Sources for this article
Table of contents
Download this article in PDF: cdcover
Sources for this article
Table of contents
Download this article in PDF: cdcover2
Sources for this article
Table of contents
Download this article in PDF: cdcover3
Sources for this article
Table of contents
Download this article in PDF: cdcover5
Sources for this article
Table of contents
Download this article in PDF: cdcover6
Sources for this article
Table of contents
Download this article in PDF: cddb
Sources for this article
Table of contents
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
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
Download this article in PDF: clamav
Table of contents
Download this article in PDF: crossfpc2
Table of contents
Download this article in PDF: crossfpc
Table of contents
Download this article in PDF: customform
Table of contents
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
Download this article in PDF: daemons
Table of contents
Download this article in PDF: datetime
Table of contents
Download this article in PDF: dbus1
Source code for this article
Table of contents
Download this article in PDF: dbus2
Source code for this article
Table of contents
In this article we show how to use a ready-to-use mechanism for sending debug logs from a pas2js program to a HTTP server application written in Free Pascal.
Download this article in PDF: debugcapture
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
Download this article in PDF: dirwatch
Sources for this article
Table of contents
Download this article in PDF: docking
Leyba Bronstain has kindly provided a Russian translation: docking (Russian)
Sources for this article
Table of contents
Delphi compatibility has always been important for Free Pascal. However, in certain respects, this compatibility was lacking. Recently, lots of work has been done to improve the Delphi-compatibility of FPC.
Download this article in PDF: dottedfpc
Download this article in PDF: dragdrop
Table of contents
Download this article in PDF: dragdrop2
Table of contents
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
Download this article in PDF: embedded1
Table of contents
Download this article in PDF: embedded2
Table of contents
Download this article in PDF: embedded3
Table of contents
Download this article in PDF: embedded4
Table of contents
Download this article in PDF: embedded5
Table of contents
Download this article in PDF: embedded7
Table of contents
Webassembly was designed to run in the browser. It's design is focused on simplicity and safety, making it ideal for sandboxing. As a result more and more it finds its way in applications that run outside the browser. In this article we show how to embed a Webassembly Module in a Free Pascal module.
Download this article in PDF: embeddingwasm
Download this article in PDF: eventlog
Table of contents
Download this article in PDF: extjs1
Table of contents
For a long time, Free Pascal lacked support for Extended RTTI. Recently, the Extended RTTI support has been merged to the main development tree, making Free Pascal again more compatible to Delphi. In this article we take a closer look.
Download this article in PDF: extendedrtti
Download this article in PDF: extpascal
Table of contents
Download this article in PDF: fastreportserver
Table of contents
Download this article in PDF: fbserver1
Table of contents
Download this article in PDF: fbserver2
Table of contents
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
Download this article in PDF: firebird1
Table of contents
Download this article in PDF: firebird2
Table of contents
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
Firemonkey (FMX) is the cross-platform GUI framework of Delphi. It allows you to compile your application for all major native platforms: Windows, MacOS, Android, iOS. And now, thanks to Free Pascal, also for the browser.
Download this article in PDF: fpcfmx
Download this article in PDF: fpc20-nl
Table of contents
Download this article in PDF: fpc20
Table of contents
Download this article in PDF: fpcandroid1
Sources for this article
Table of contents
Download this article in PDF: fpcjvm
Table of contents
Download this article in PDF: fpcrpc
Table of contents
Download this article in PDF: fpcunit
Sources for this article
Table of contents
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
Download this article in PDF: fpdoc
Table of contents
Download this article in PDF: fpgui
Table of contents
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
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
Part of the Lazarus roadmap is a new initiative called Project Fresnel: a replacement for the LCL (Lazarus Component Library). In this article we explain the goals of this new project.
Download this article in PDF: fresnel1
At the end of the year 2022, Project Fresnel was announced: a new graphical interface for Pascal applications, based on CSS. Since then, work has been steadily progressing on this new framework. In this article an overview of what is possible today is presented.
Download this article in PDF: fresnel2
Work on project Fresnel, the CSS-driven widget set for Object Pascal, continues. Lots of work in the background, and the start of an edit control.
Download this article in PDF: fresnel3
Download this article in PDF: geckosdk
Table of contents
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
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
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
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
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
Download this article in PDF: googleapi
Table of contents
Download this article in PDF: grids
Table of contents
Download this article in PDF: gtk1
Table of contents
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
Download this article in PDF: gtk3
Table of contents
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
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
Download this article in PDF: gtk6
Table of contents
Download this article in PDF: instantfpc
Table of contents
Download this article in PDF: intraweb
Table of contents
Download this article in PDF: kinect
Table of contents
Download this article in PDF: kylix1
Table of contents
Download this article in PDF: large1
Table of contents
Download this article in PDF: large2
Table of contents
Download this article in PDF: large3
Table of contents
Download this article in PDF: large4
Table of contents
Download this article in PDF: lazarus
Table of contents
Download this article in PDF: lazdbdesktop
Table of contents
Download this article in PDF: lazide1
Sources for this article
Table of contents
Download this article in PDF: lazide2
Sources for this article
Table of contents
Download this article in PDF: lazide3
Sources
Table of contents
Download this article in PDF: lazide4
Table of contents
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
Download this article in PDF: lazmail-en
Table of contents
Download this article in PDF: lazmail
Table of contents
Download this article in PDF: lazmint
Table of contents
Download this article in PDF: lazonmac
Table of contents
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
Download this article in PDF: lazport1
Table of contents
Download this article in PDF: lazport2
Table of contents
Download this article in PDF: lazprint
Table of contents
Download this article in PDF: lazthread-nl
Table of contents
Download this article in PDF: lazthread
Sources for this article
Table of contents
Download this article in PDF: lazviddb-nl
Table of contents
Download this article in PDF: lazviddb
Table of contents
Download this article in PDF: lazvideo-en
Table of contents
Download this article in PDF: lazvideo
Table of contents
Download this article in PDF: lazvlc-nl
Table of contents
Download this article in PDF: lazvlc
Table of contents
Download this article in PDF: leap1
Table of contents
Download this article in PDF: leapmac-nl
Table of contents
Download this article in PDF: leapmac
Table of contents
Download this article in PDF: leapv2
Table of contents
Download this article in PDF: libsee
Table of contents
Download this article in PDF: morfik2
Table of contents
Download this article in PDF: morfik
Table of contents
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
Download this article in PDF: nonlcl
Sources for this article
Table of contents
OpenAPI is a worldwide standard for describing REST interfaces. In this article we demonstrate the recently added support for OpenAPI in Free Pascal and Lazarus.
Download this article in PDF: openapi1
In a previous article, we introduced the OpenAPI support of Free Pascal and Lazarus. In this article, we introduce some additions and improvements which make the use of OpenAPI in Lazarus/FPC even easier.
Download this article in PDF: openapi2
Download this article in PDF: openoffice
Table of contents
Download this article in PDF: paradox
Table of contents
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
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
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
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
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
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
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
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
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
Extended RTTI exists since a long time in Delphi. Since some time, it also exists in FPC, and now it has also arrived in Pas2JS.
Download this article in PDF: pas2jsrtti
In a previous contribution, we've shown how to show a PDF in a Pas2JS program. We also showed how to search the PDF. In this article we'll show how to prepare for searching a bunch of PDF files, by indexing them.
Download this article in PDF: pdfindex1
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
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
In previous articles we introduced a way to show a PDF in the browser, and to search in a PDF. In this article we add a missing feature: highlighting search results in the text and text selection.
Download this article in PDF: pdfselect
Download this article in PDF: persistence1
Table of contents
Download this article in PDF: persistence2
Table of contents
Download this article in PDF: persistence3
Table of contents
Download this article in PDF: persistence4
Table of contents
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
Sending a message to a smartphone or a web application is part of many applications. Usually these messages are sent by a background service. Free Pascal contains units with which you can send Push notifications. A closer look.
Download this article in PDF: pushnotifications
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
Download this article in PDF: remobjects2
Table of contents
Download this article in PDF: remobjects
Table of contents
Download this article in PDF: rtti
Sources for this article
Table of contents
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
With the ability to create custom managed records, it is now possible to reduce the number of ar{try..finally} blocks in your code.
Download this article in PDF: scoped
Download this article in PDF: services
Sources for this article
Table of contents
Download this article in PDF: soap
Table of contents
Download this article in PDF: startlaz1
Sources for this article
Table of contents
Download this article in PDF: startlaz2
Sources for this article
Table of contents
Download this article in PDF: startlaz3
Table of contents
Download this article in PDF: startlaz4
Sources for this article
Table of contents
Download this article in PDF: startlaz5
Sources for this article
Table of contents
Download this article in PDF: startlaz6
Sources for this article
Table of contents
Download this article in PDF: startlaz7
Table of contents
Download this article in PDF: startmorfik1
Table of contents
Download this article in PDF: startmorfik2
Table of contents
The FPCUnit support in Lazarus has received an upgrade: The FPCUnit unit testing framework now can communicate directly with the Lazarus IDE, making it even more easie to fix errors in your code.
Download this article in PDF: testinsight
Download this article in PDF: startmorfik3
Table of contents
Download this article in PDF: stringroutines
Table of contents
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
Download this article in PDF: unittesting
Table of contents
WebAssembly modules have no access to the world outside the webassembly virtual machine, except through the APIs that are made available from the host environment. The Browser has lots of APIs, and in this article we show how to make use of {m all} possible Browser APIs in webassembly. Moreover we will show that you can use these APIs as if you were programming Javascript directly.
Download this article in PDF: wasmdom
Download this article in PDF: web1
Sources for this article
Table of contents
Download this article in PDF: web2
Sources for this article
Table of contents
Download this article in PDF: webdata
Leyba Bronstain has kindly provided a Russian translation: webdata (Russian)
Sources for this article
Table of contents
Download this article in PDF: webserver1-nl
Table of contents
Download this article in PDF: webserver1
Sources for this article
Table of contents
In Delphi and Free Pascal, threading can be taken for granted: the ar{TThread} class makes it easy to launch a task in a thread. The browser knows no real threading, but has some alternatives. We investigate them here.
Download this article in PDF: webthreading1
In this article, we explain how threading works in a webassembly program running in the browser, and what you need to do to be able to run a threaded FPC program in the browser.
Download this article in PDF: webthreading2
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
Download this article in PDF: word
Download the code for this article worddrive.zip.
Table of contents
Download this article in PDF: zaurus
Table of contents