Social media and the Blogosphere (what's left of it) and many other media publishing some individual's view is full of people who claim that "AI" (meaning Large Language Models) only produces what they call "slop" that is full of errors. In programming they claim that it only reproduces code that was part of its training … Continue reading How Claude Code just helped me to find a problem in a Delphi program in 10 Minutes
Category: Delphi
GExperts 1.3.29 released
GExperts 1.3.29 is available. It brings 12 new features, 34 enhancements and 72 bug fixes, including two new experts, a way to move your whole GExperts configuration from one Delphi installation to another, and a set of fixes for a silent data corruption in the Code Librarian library file. For the impatient: head over to … Continue reading GExperts 1.3.29 released
Hunting a GExperts Code Librarian corruption bug with a custom debug memory manager
AI;DR - This blog post and the debug memory manager it describes were developed with significant help from Claude. If you don't want to read "AI slop", stop reading now. I recently added a new import functionality to the GExperts Code Librarian. During the test phase I found a nasty (preexisting) bug: After deleting a … Continue reading Hunting a GExperts Code Librarian corruption bug with a custom debug memory manager
SwissDelphiCenter Delphi Tips: The Scraper Scripts
Here are the two Python scripts I used to create the SwissDelphiCenter Delphi Tips archive: download. scrape_tips.py downloads the tip pages from the Wayback Machine. It waits 10 seconds between requests and it is resumable, so you can stop it and continue later. Before you run it, you must put your email address into the … Continue reading SwissDelphiCenter Delphi Tips: The Scraper Scripts
SwissDelphiCenter Delphi Tips
The SwissDelphiCenter (archive.org) site closed down a few months ago and I could not find any other way to get at the Delphi Tips database they were hosting. So I vibe coded a scraper script that extracted them from the Internet Archive and converted them to a format that can be imported into the GExperts … Continue reading SwissDelphiCenter Delphi Tips
GExperts: New Expert “Menu Items to Actions”
Converting an existing form from a plain TMainMenu to a TMainMenu plus a TActionList is one of those jobs that is not difficult, just tedious: For every menu item you create an action, copy the caption and the shortcut over, move the OnClick handler to the action's OnExecute, and then assign the action back to … Continue reading GExperts: New Expert “Menu Items to Actions”
GExperts: Export and Import Your Complete Configuration
GExperts stores its settings in the Windows registry, under a key that is specific to each installed Delphi version. Copying that configuration to another machine, or from one Delphi version to another, used to mean exporting registry keys by hand and editing them so they pointed at the right version and then importing them into … Continue reading GExperts: Export and Import Your Complete Configuration
New GExperts Expert: A Tabs Menu for Delphi 6 to 10.2
Recent versions of Delphi (starting with Delphi 10.3 Rio) have a "Tabs" entry in the main menu that lists the files currently open in the editor and lets you jump to any of them. It replaced the older "Window" menu that earlier versions had. If you work in one of those earlier versions, you don't … Continue reading New GExperts Expert: A Tabs Menu for Delphi 6 to 10.2
New in GExperts: Auto Switch Desktop
At the Pascal Conference 2025 in Sundern Heiko Rompel (kralle) made a presentation about a plugin (or was it a patch?) for Lazarus that automatically switched between two desktop layouts whenever you toggled between the form designer and the code editor with F12. The reasoning was simple: some windows, such as the Object Inspector, are … Continue reading New in GExperts: Auto Switch Desktop
Delphi VCL: Owner drawing a TStringGrid
Embarcadero has broken owner drawing of TStringGrid several times. To get the text positioned correctly you need version-specific X and Y offsets. Here is the case statement GExperts uses (from GX_StringGridDrawFix.pas): [delphi] procedure DetermineTextOffsets(_Focused: Boolean; out _XOffset, _YOffset: Integer); begin case GetBorlandIdeVersion of ideD600..ideRSXE1U1: begin // Versions before XE2 worked fine with an offset of … Continue reading Delphi VCL: Owner drawing a TStringGrid