Lazarus training for Delphi programmers



(German-language version below)

This workshop is ideal for Delphi programmers as an introduction to the world of Lazarus as a supplement to your Delphi skills. With over 20 years experience in Delphi programming we have now been implementing for the last 4 years all new projects exclusively with Lazarus, and provides a comprehensive insight into programming with Lazarus. 

Target group

Programmers, who …
... already have a number of years experience developing Delphi applications,
... wish to continue to use their existing Delphi VCL and Pascal knowledge,
... take advantage of a similar development environment with an almost identical programmming language,
... want to realize real multi-platform development,
... want to utilize the advantages of an active open source software and community,
... want to choose a future-proof and vendor-independent development environment for the next 10 to 20 years,
... want to save license fees and yet still keep up-to-date.

We will be focusing on the following topics:

1. Introduction to the world of Lazarus

  • Selecting the correct version, 32 or 64 Bt, CodeTyphon or standard Lazarus.
  • Installation, parallel installation of multiple versions, portable installation.
  • The key paths and files of a Lazarus installation.
  • Lazarus components: What is included, where you can get more, how does the install work?
  • Limitations when converting existing projects and component libraries.
  • Differences between LCL and VCL.
  • Comparison of Lazarus project files and Delphi projects.
  • Handling the Lazarus IDE; customization options.
  • Strategies to incorporate large parts of existing Delphi projects.

2. Avoid past mistakes

  • Does it always have to be components or there is another way.
  • Dynamic creation of controls and administration in separate lists.
  • Dynamic form construction.
  • Use OwnerDraw techniques to extend common components.
  • Implement complex components on a modular basis.
  • Constructing your own class libraries.
  • Should properties be set in the Object Inspector or in your code?
  • Automatically generate source code.
  • Assign events at runtime.
  • Global exception handling and trace logging.
  • Multilingual and UTF8 support.
  • A simple calendar application, modeled on the Google calendar.

3. Database techniques

  • Complex 3rd party DB access components or, even better, the integrated SQLDB components.
  • Interaction of SQLDB with Firebird and other databases.
  • Connection, Transaction, Dataset, Query etc.
  • Data source and data-aware components: advantages and disadvantages.
  • Alternative methods of data storage and display.
  • Object class model for data access without DataSource.
  • Generate and use automated SQL for insert/update/delete/select.
  • Reporting techniques with Lazarus and databases, report design, interaction with stored procedures.
  • Multilingual and UTF8 support in the database.
  • Concepts for high-performance database applications.
  • A simple database application, illustrating a simple invoicing software.

4. Multi-platform in practice

  • Installing Lazarus on other platforms.
  • What needs to be considered in order to use the source code on all platforms?
  • The major platform-specific basics.
  • Open the Lazarus sample project on Win32, Win64, Linux, Mac OSX, Raspberry Pi in the IDE, compile and test.
  • Simple Android applications using Lazarus.
  • Simple iOS Applications using Lazarus.
  • Simple web applications using Lazarus or directly using PHP and Firebird.

5. What's next

  • Classic menu structures in the age of tablets and alternatives.
  • Touch applications for retail, services and industry.
  • Integration of PDF technologies and external applications.
  • Advantages of a database-driven architecture.
  • Automatic distribution of exe, dll and setup files.
  • Automatic distribution of database structures and table contents.
  • Concepts for long term, team-friendly code.
  • Flexible database models, flexible foreign key and tree structures. 





Lazarus Schulung für Delphi Programmierer

Dieser Workshop ist ideal für Delphi-Programmierer als Einstieg in die Welt von Lazarus als Ergänzung zu Ihren Delphi-Kenntnissen. Mit über 20 Jahren Erfahrung in der Delphi-Programmierung setzen wir nun seit 4 Jahren alle neuen Projekte ausschließlich mit Lazarus um und bieten einen umfassenden Einblick in die Programmierung mit Lazarus.

Zielgruppe

Programmierer, die …
... bereits mehrjährige Erfahrung mit der Entwicklung von Delphi Applikationen haben
... ihr vorhandenes Delphi VCL und Object Pascal Know-How weiter nutzen möchten,
... die Vorteile einer ähnlichen Entwicklungsumgebung mit nahezu identischer Programmiersprache nutzen wollen
... eine echte Multiplattformentwicklung realisieren wollen
... die Vorteile einer aktiven Open Source Software und Community nutzen wollen
... eine zukunftssichere und herstellerunabhängige Entwicklungsumgebung für die nächsten 10 bis 20 Jahre auswählen wollen
... Lizenzkosten sparen wollen und trotzdem immer up-to-date bleiben wollen.

Schwerpunkte sind dabei folgende Themen:

1. Einstieg in die Lazarus Welt

  • Auswahl der richtigen Version, 32 oder 64 Bt, CodeTyphon oder Standard Lazarus.
  • Installation, parallele Installation mehrerer Versionen, portable Installation.
  • Die wichtigsten Pfade und Dateien einer Lazarus Installation.
  • Lazarus Komponenten: Was ist dabei, wo bekommt man weitere, wie funktioniert das Installieren?
  • Grenzen der Konvertierung vorhandener Projekte und Komponenten-Bibliotheken.
  • Unterschied LCL und VCL.
  • Lazarus Projekt Dateien im Vergleich zu Delphi Projekten.
  • Umgang mit der Lazarus IDE, Anpassungsmöglichkeiten.
  • Strategien, um große Teile vorhandener Delphi Projekte übernehmen zu können.

2. Fehler der Vergangenheit vermeiden

  • Müssen es immer Komponenten sein oder geht es auch anders.
  • Dynamisches Erzeugen von Controls und Verwalten in eigenen Listen.
  • Dynamischer Maskenaufbau.
  • Erweiterungen bekannter Komponenten mit OwnerDraw Techniken.
  • Komplexe Komponenten im Baukastenprinzip realisieren.
  • Aufbau eigener Klassenbibliotheken.
  • Eigenschaften im Objektinspektor setzen oder im Code?
  • Quellcode automatisch generieren.
  • Events zur Laufzeit zuweisen.
  • Globales Exception Handling und Ablaufprotokollierung.
  • Mehrsprachigkeit und UTF8 Unterstützung.
  • Eine einfache Kalenderanwendung, Vorbild der Google Kalender.

3. Datenbanktechniken

  • Komplexe 3rd Party DB Zugriffskomponenten oder doch besser die eingebauten SQLDB Komponenten.
  • Zusammenspiel SQLDB mit Firebird und anderen Datenbanken.
  • Connection, Transaction, Dataset, Query etc.
  • Datasource und datensensitive Komponenten Vorteile und Nachteile.
  • Alternative Wege der Datenspeicherung und -anzeige.
  • Objektklassenmodell für Datenzugriffe ohne Datasource.
  • Automatisiert SQL für insert/update/delete/select erzeugen und nutzen.
  • Reporttechniken mit Lazarus und Datenbanken, Reportdesign, Zusammenspiel mit Stored Procedures.
  • Mehrsprachigkeit und UTF8 Unterstützung in der Datenbank.
  • Konzepte für performante Datenbankanwendungen.
  • Eine einfache Datenbankanwendung, Vorbild eine einfache Faktura Software.

4. Multiplattform in der Praxis

  • Lazarus auf anderen Plattformen installieren.
  • Was sollte man beachten, um den Quellcode auch auf allen Plattformen nutzen zu können?
  • Die wichtigsten plattformspezifischen Grundlagen.
  • Lazarus Beispielprojekt auf Win32, Win64, Linux, Mac OSX, Raspberry Pi in der IDE öffnen, kompilieren und testen.
  • Einfache Android Anwendungen mit Lazarus.
  • Einfache iOS Anwendungen mit Lazarus.
  • Einfache Webanwendungen mit Lazarus oder direkt mit PHP und Firebird.

5. Wie geht es weiter

  • Klassische Menüstrukturen im Zeitalter der Tablets und Alternativen.
  • Touch Anwendungen für Einzelhandel, Dienstleistungen und Industrie.
  • Integration von PDF Technologien und Fremdanwendungen.
  • Vorteile einer database-driven Architecture.
  • Exe, DLL und Setup Dateien automatisiert verteilen.
  • Datenbankstrukturen und Tabelleninhalte automatisiert verteilen.
  • Konzepte für langfristig und im Team nutzbaren Code.
  • Flexible Datenbankmodelle, flexible Fremdschlüssel und Baumstrukturen.