<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ide-we-forgot-about-g2fji1sne" -->

---
title: IDE we forgot about | daily.dev
description: A live coding session exploring Lazarus, a free Pascal-based clone of Delphi 7, on Linux. The streamer installs Lazarus via the system package manager,...
canonical: https://daily.dev/posts/ide-we-forgot-about-g2fji1sne
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: IDE we forgot about | daily.dev
og:description: A live coding session exploring Lazarus, a free Pascal-based clone of Delphi 7, on Linux. The streamer installs Lazarus via the system package manager,...
og:url: https://daily.dev/posts/ide-we-forgot-about-g2fji1sne
og:image: https://api.daily.dev/og/posts/g2fji1SNE.png
og:image:alt: IDE we forgot about
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# IDE we forgot about

**[Tsoding Daily](https://daily.dev/sources/tsoding_daily)** · 140 min read · 8 upvotes · 2 comments

## Summary

A live coding session exploring Lazarus, a free Pascal-based clone of Delphi 7, on Linux. The streamer installs Lazarus via the system package manager, navigates its multi-window WYSIWYG IDE interface under a tiling window manager (i3), and builds a simple to-do app with a list box, add/delete buttons, keyboard shortcuts, and a multi-line memo field. Along the way, the session covers Pascal syntax basics, event-driven GUI programming, dark theme configuration via QT5CT, and debugging output. The streamer reflects nostalgically on visual RAD tools from the early 2000s and questions why WYSIWYG desktop GUI development was largely abandoned in favor of HTML/CSS.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=4vcA7yJMoPg>

## Questions this post answers

### What is Lazarus IDE and how does it relate to Delphi?

Lazarus is a free, open-source clone of the classic Delphi IDE, built around Free Pascal and aiming to be cross-platform, including Linux support. It replicates Delphi's visual, drag-and-drop form designer where developers place UI components like buttons, list boxes, and memo fields directly onto a form and write event handler code, similar to the Delphi 6/7 era workflow.

_Developers curious about visual RAD tools and legacy Pascal ecosystems can find related discussions on daily.dev._

### How do you enable a dark theme in Lazarus IDE on Linux when using QT widgetset?

Because Lazarus uses QT for its GUI on Linux, forcing dark mode requires installing the QT5CT configuration tool, setting a QT5CT color scheme like Fusion with a darker preset, and then setting the QT_QPA_PLATFORMTHEME environment variable to qt5ct before launching Lazarus. The IDE's own editor color scheme (under Options > Colors) must separately be switched to a preset like 'Twilight' to darken code editor backgrounds.

_Anyone wrestling with QT theming quirks on Linux can track similar tool-configuration fixes on daily.dev._

### How do you attach custom object data to items in a Lazarus TListBox?

Items in a Lazarus TListBox can have an associated object via the Items.AddObject method, and the object tied to a selected item is retrieved by casting Items.Objects[ItemIndex] to the desired class type. This lets a to-do list app store a custom class instance, such as one holding a task's body text, alongside each list entry's caption string.

_Developers wiring up custom data models in visual GUI frameworks can find similar Lazarus and Pascal walkthroughs on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@baz14** · 1 upvotes

> Don't forget that Pascal was created for educational purposes. C and C++ are much better for real-world dev. I stopped dev on using pascal-based products when I got acquainted with C-based 😎
>
> A WYSIWYG desktop GUI can't be automated, like emmet for HTML. Also, shortcuts, aliases, and other features needed for automation and scripting speed up work compared to GUI and mouse usage 😏

**@shaikhnaasir** · 0 upvotes

> ![GIF](https://static.klipy.com/ii/4e7bea9f7a3371424e6c16ebc93252fe/d0/24/0OkGR1vsIqWxf5lY3.gif)

## Similar posts on daily.dev

- [Good Morning, Dave: the 1998 INET Conference Kiosk Launcher](https://daily.dev/posts/good-morning-dave-the-1998-inet-conference-kiosk-launcher-lklagxd65) · RUBYLAND · 0 upvotes · 0 comments
- [Quartex Pascal v1.0.1.4 is out](https://daily.dev/posts/quartex-pascal-v1-0-1-4-is-out-fyajatxep) · Quartex Pascal · 2 upvotes · 0 comments

---

Tags: [#desktop-development](https://daily.dev/tags/desktop-development), [#linux](https://daily.dev/tags/linux)

[View this post on daily.dev](https://daily.dev/posts/ide-we-forgot-about-g2fji1sne)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"IDE we forgot about","url":"https://daily.dev/posts/ide-we-forgot-about-g2fji1sne","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ide-we-forgot-about-g2fji1sne"},"datePublished":"2026-07-21T10:42:37.186Z","dateModified":"2026-10-15T02:22:43.090Z","description":"A live coding session exploring Lazarus, a free Pascal-based clone of Delphi 7, on Linux. The streamer installs Lazarus via the system package manager,...","image":"https://i.ytimg.com/vi/4vcA7yJMoPg/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/4vcA7yJMoPg/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Tsoding Daily","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Tsoding Daily","logo":"https://media.daily.dev/image/upload/s--6msWm9pp--/f_auto/v1728806157/logos/tsoding_daily","url":"https://daily.dev/sources/tsoding_daily"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/ide-we-forgot-about-g2fji1sne","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":8},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"desktop-development,linux","timeRequired":"PT140M","video":{"@type":"VideoObject","name":"IDE we forgot about","description":"A live coding session exploring Lazarus, a free Pascal-based clone of Delphi 7, on Linux. The streamer installs Lazarus via the system package manager,...","thumbnailUrl":"https://i.ytimg.com/vi/4vcA7yJMoPg/sddefault.jpg","uploadDate":"2026-07-21T10:42:37.186Z","duration":"PT140M","url":"https://api.daily.dev/r/g2fji1SNE","embedUrl":"https://www.youtube.com/embed/4vcA7yJMoPg"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tsoding Daily","item":"https://daily.dev/sources/tsoding_daily"},{"@type":"ListItem","position":3,"name":"IDE we forgot about"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/ide-we-forgot-about-g2fji1sne","comment":[{"@type":"Comment","text":"Don’t forget that Pascal was created for educational purposes. C and C++ are much better for real-world dev. I stopped dev on using pascal-based products when I got acquainted with C-based 😎\nA WYSIWYG desktop GUI can’t be automated, like emmet for HTML. Also, shortcuts, aliases, and other features needed for automation and scripting speed up work compared to GUI and mouse usage 😏","datePublished":"2026-07-22T08:14:37.664Z","url":"https://daily.dev/posts/g2fji1SNE#c-DiFZMMs1e","author":{"@type":"Person","name":"Baz","url":"https://daily.dev/baz14","image":"https://lh3.googleusercontent.com/a/ACg8ocKd2iFU8YS4sV-rBJptuYSF8EHeQnm23N_dcXE1uON7_GMIlZg=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"","datePublished":"2026-07-28T06:19:01.222Z","url":"https://daily.dev/posts/g2fji1SNE#c-sF0bz0iNk","author":{"@type":"Person","name":"Shaikh Naasir","url":"https://daily.dev/shaikhnaasir","image":"https://avatars.githubusercontent.com/u/166585409?v=4"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ide-we-forgot-about-g2fji1sne#faq","mainEntity":[{"@type":"Question","name":"What is Lazarus IDE and how does it relate to Delphi?","acceptedAnswer":{"@type":"Answer","text":"Lazarus is a free, open-source clone of the classic Delphi IDE, built around Free Pascal and aiming to be cross-platform, including Linux support. It replicates Delphi's visual, drag-and-drop form designer where developers place UI components like buttons, list boxes, and memo fields directly onto a form and write event handler code, similar to the Delphi 6/7 era workflow. Developers curious about visual RAD tools and legacy Pascal ecosystems can find related discussions on daily.dev."}},{"@type":"Question","name":"How do you enable a dark theme in Lazarus IDE on Linux when using QT widgetset?","acceptedAnswer":{"@type":"Answer","text":"Because Lazarus uses QT for its GUI on Linux, forcing dark mode requires installing the QT5CT configuration tool, setting a QT5CT color scheme like Fusion with a darker preset, and then setting the QT_QPA_PLATFORMTHEME environment variable to qt5ct before launching Lazarus. The IDE's own editor color scheme (under Options > Colors) must separately be switched to a preset like 'Twilight' to darken code editor backgrounds. Anyone wrestling with QT theming quirks on Linux can track similar tool-configuration fixes on daily.dev."}},{"@type":"Question","name":"How do you attach custom object data to items in a Lazarus TListBox?","acceptedAnswer":{"@type":"Answer","text":"Items in a Lazarus TListBox can have an associated object via the Items.AddObject method, and the object tied to a selected item is retrieved by casting Items.Objects[ItemIndex] to the desired class type. This lets a to-do list app store a custom class instance, such as one holding a task's body text, alongside each list entry's caption string. Developers wiring up custom data models in visual GUI frameworks can find similar Lazarus and Pascal walkthroughs on daily.dev."}}]}
```

