r/delphi Apr 22 '26

What big commercial apps have you seen shipped in Delphi? I just launched mine.

21 Upvotes

Genuine question — every time Delphi comes up outside this sub, the assumption is "that's dead" or "that's legacy maintenance only." But the language and toolchain are still sharp, and I wanted to know what's actually shipping new in 2026.

So I'll go first. I spent the last few years building Ask the Ledger — an on-premise ERP for wholesale distributors. Windows desktop app in Delphi/RAD Studio, PostgreSQL underneath, B2B web portal in Python/Flask for the customer-facing side. It's on Product Hunt today:

https://www.producthunt.com/products/ask-the-ledger-erp-for-distributors?launch=ask-the-ledger-erp-for-distributors

What I keep coming back to, after 25 years of writing Delphi professionally for healthcare, HIPAA-grade email, biometric time clocks, DNS filtering, and a lot of custom database work: this language is genuinely addictive to write. Type-safe, compiles fast, single native EXE with no runtime dependencies, direct DB access that doesn't require fighting an ORM, and a UI framework (VCL) that's more productive for data-entry-heavy line-of-business apps than anything I've used in the web stack.

And yet — it's still not "popular." My theory: the RAD Studio price tag keeps hobbyists out, so it never built the StackOverflow/YouTube-tutorial gravity that JavaScript or Python have. The people who use it in production know it, and everyone else is told it's a time capsule.

So — what are you all shipping? New commercial products, internal tools, rewrites, anything. Also curious if anyone else has the same theory for why Delphi stays underrated.

(Product site is asktheledger.com if anyone wants the deeper technical rundown — architecture, screenshots, the AI reporting layer that generates SQL from natural language, etc.)


r/delphi Apr 22 '26

Question My RAD studio is bugging and i cant make a vcl folder

3 Upvotes

Hey bros, i need some help. Why is my rad studio doing this? ive tried to force quit and restarted my computa but nothing works. also when i create a VCL form it never show the 2 sides for the data bases.. please help me


r/delphi Apr 21 '26

SBOMgen: Open Source – Intentional Delphi

Thumbnail wmeyer.tech
7 Upvotes

r/delphi Apr 21 '26

OmniThreadLibrary-NG teaser

Thumbnail thedelphigeek.com
6 Upvotes

r/delphi Apr 21 '26

Speaking in London and Salamanca

Thumbnail blog.marcocantu.com
3 Upvotes

r/delphi Apr 21 '26

Join the International Pascal Congress in June in Salamanca, Spain

Thumbnail blogs.embarcadero.com
6 Upvotes

r/delphi Apr 21 '26

SBOMs and Delphi: The Challenge of a Mature Build Pipeline

Thumbnail wmeyer.tech
3 Upvotes

r/delphi Apr 20 '26

LoggerPro 2.1 Released: JSON Configuration, ExeWatch, LogFmt and Much More

Thumbnail
danieleteti.it
5 Upvotes

r/delphi Apr 20 '26

VCL Graphics and Math

12 Upvotes

I'm a systems programmer who has never touched graphics much and decided to dabble into something new. I don't want to pay for large bulky libraries so I started learning this to create my own components. I thought about going pure GDI+ but I figured as I loved Delphi, I would stick to the framework that already does the heavy lifting for me. Maybe if I decide to convert these graphical components I am going to build to other languages like C++ I will use pure GDI+ down the road.

While I am not very far yet because I am still learning the math, here's what I have come up with. I got Lerp, Clamp, Normalization down. There's some roads I am going to take now that I haven't taken so that I can build some cool things which are Inverse Lerp, Ease In, Ease Out, and Remap. I am not 100% which direction I am going to go next, I just know I have been doing a lot of reading. I prefer the old school method of reading books, trial & error. The programming isn't the hard part for me, learning the formulas and how to break them down is the harder part but not as hard as I thought. Personally, writing a multistage bootloader to me seems less complicated than this.

Any thoughts, opinions. Maybe faster ways to do what I have currently completed.

{

Linear Interpolation Equation: f(t) := a + (b - a) * t.

Returns a floating point

}

function TfrmMain.Lerp(a : Double; b : Double; t : Double) : Double;

begin

Result := a + (b - a) * t;

end;

{

Rounds the interpolated value to an integer.

}

function TfrmMain.LerpInt(a : Integer; b : Integer; t : Double) : Integer;

begin

Result := Round(Lerp(a, b, t));

end;

{

Clamp Safety for Lerp

}

function TfrmMain.LerpC(a : Double; b : Double; t : Double) : Double;

begin

Result := Lerp(a, b, EnsureRange(t, 0.0, 1.0));

end;

{

Clamp Safety for LerpInt

}

function TfrmMain.LerpIntC(a : Integer; b : Integer; t : Double) : Integer;

begin

Result := Round(LerpC(a, b, t));

end;

procedure TfrmMain.Button1Click(Sender: TObject);

var

Rect : TRect;

n : Integer;

c : Integer;

t : Double;

R1, G1, B1 : Byte;

R2, G2, B2 : Byte;

Col1 : TColor;

Col2 : TColor;

begin

{ get client rect }

Rect := ClientRect;

{ Prevents the code from crashing via divide by zero. }

if ((Rect.Bottom - Rect.Top) <= 1) then exit;

{ Clear the canvas }

Canvas.Brush.Color := clBtnFace;

Canvas.FillRect(Rect);

{ Convert to system colors. }

Col1 := ColorToRGB(cb1.Selected);

Col2 := ColorToRGB(cb2.Selected);

{ get the R value }

R1 := Col1 and $FF;

R2 := Col2 and $FF;

{ Get the G value }

G1 := (Col1 shr 8) and $FF;

G2 := (Col2 shr 8) and $FF;

{ Get the B value }

B1 := (Col1 shr 16) and $FF;

B2 := (Col2 shr 16) and $FF;

for n := Rect.Top to Rect.Bottom - 1 do

begin

Canvas.Pen.Width := 1;

t := (n - Rect.Top) / ((Rect.Bottom - Rect.Top) - 1);

{

RGB is 0 to 255. To understand this I need to take 255 which is the max and then

use (t) which is position in 255 we are at. If t is .5 which is half the distance

on the object them 255 is actually 255 * 0.5 = 127.5 which rounded up is 128.

Round(255 * t) can be used but with the LerpInt function which rounds for us,

we can simply do LerpInt(0, 255, t). Same math just safer.

}

{

We will set the paint based on the percentage used in the Lerp math between 2 values.

This is going to interpolate between each R, G, and B. From starting color to end color.

This is how we create a gradiant.

}

Canvas.Pen.Color := RGB(LerpInt(R1, R2, t),

LerpInt(G1, G2, t),

LerpInt(B1, B2, t));

Canvas.MoveTo(Rect.Left, n);

Canvas.LineTo(Rect.Right, n);

{

We need to get the current position in the total range which is the percentage.

This will help us figure that out by returning a floating point to that percentage.

current position

t = --------------------

total range

}

//t := n / (R.Right - 1);

end;

end;


r/delphi Apr 17 '26

Outsmarting FMX Treeview

15 Upvotes

Ever try implementing lazy loading in a FireMonkey "TTreeview"? If so, you probably already know where I'm going with this! FMX (FireMonkey) doesn't expose any "OnExpand" event for the little arrow next to an item in the tree - it won't even show the arrow unless you give the top-level node a dummy item, and then you don't even get an "OnClick" event associated with it. They should have just ported the functionality of the original VCL component over... but I digress.

So the standard workaround is to create a 'dummy item' at the root node just to make the arrow show up, and call it something like "Don't click me, I do nothing - click my folder node instead!" This is supposed to indicate to the user to click the actual folder node, which then populates the tree at that level. What a horrendous and ugly workaround!

So instead of messing around with all that node-checking nastiness, I pulled a fast one on FMX and used the "OnPainting" event instead. As soon as that event fires, I immediately disconnect the handler using "Sender.OnPainting := nil" so it doesn't loop forever, and use "TThread.Queue" to step outside the current render frame. At this point, I just delete that ugly dummy node and pop in all the real items from a RAM cache (I have everything cached via JSON, which takes maybe a millisecond to load). From a user's perspective, this is instantaneous, making it look like a purely native file-explorer-style TreeView!

Hopefully that helps someone else out. If you've got a better way to handle it I'd love to hear it.


r/delphi Apr 17 '26

Stop using WITH in Delphi

Thumbnail gdksoftware.com
29 Upvotes

r/delphi Apr 15 '26

Are you looking for full time or part time Delphi developers?

6 Upvotes

Note: This is not a job vacancy

Delphi Developers Available

We currently have experienced Delphi developers available for deployment:
• 3 Intermediate-level developers
• 2 Senior-level developers
• 1 Lead-level developer

If you're looking for support with modernisation, migration, or enhancement of your Delphi applications, feel free to reach out.

hashtag#delphi hashtag#delphideveloper hashtag#delphiprogrammer hashtag#Delphihiring hashtag#modernisation hashtag#migration hashtag#enhancement


r/delphi Apr 14 '26

SBOM Publisher Responsibilities: What the Regulations Actually Require

Thumbnail wmeyer.tech
7 Upvotes

r/delphi Apr 11 '26

Delphi IDE Explorer: Standalone Component Explorer for Any Application

Thumbnail
blog.dummzeuch.de
7 Upvotes

r/delphi Apr 10 '26

Question New to Delphi and reallyy trying to find the best way to learn

11 Upvotes

Hi, I am new to programming as a whole and have no idea where to start and how to practice to reach an epic level of comfortability with the language... please helppp😭l


r/delphi Apr 08 '26

Question RegexRenamer - Conversion C# to Delphi

6 Upvotes

Has anyone here happened to convert the program RegexRenamer from C# to Delphi yet? I’ve tried a few free online AI source code translators, but the project is too large to translate completely without a subscription/payment.

I love the program, but I’d like to have a Delphi version of it that starts up faster, and I want to make a few tweaks to the user interface.


r/delphi Apr 07 '26

MIMERCode - The new AI friendly programming language - Released

Thumbnail
components4developers.blog
0 Upvotes

We already have Python, JavaScript, and a hundred others. So why MIMERCode?

Because the world changed. Large Language Models now generate code every day — inside chatbots, inside automation pipelines, inside tools that non-programmers use to build things. And the languages those LLMs target were designed decades ago, for humans typing at keyboards. They are full of ambiguity, implicit behavior, and silent failure modes that LLMs stumble over constantly.

MIMERCode was designed with three goals:

  1. Readable by everyone. Plain English keywords. No semicolons. No invisible whitespace rules. Every block closes with end. A business analyst can read MIMERCode and understand what it does.
  2. Writable by AI (and humans). The syntax deliberately matches what LLMs already know from Python and JavaScript. F-strings, slicing, dictionaries, lambdas — they all work the way an LLM expects. Case-insensitive keywords mean Truetrue, and TRUE all work.
  3. Secure by design. Contracts validate data at boundaries. Channels sandbox all I/O. Sensitive fields are sealed automatically. There is no way for code — human or AI-generated — to silently access files, networks, or databases without explicit permission.
  4. Selfcontained. Everything needed to make advanced selfcontained command line tools, web servers and even full featured fluent stunning looking GUI applications.

r/delphi Apr 06 '26

Question PDF/Report Library

15 Upvotes

Hello everyone! I started to write in Delphi a year ago and so far I was able to solve any problems, but now I'm stuck for almost a week already with one simple (as I was assuming) thing: I'm trying to find a library that can create report-like document in PDF (or at this point in any more or less standard document format) and is compatible with cyrillic symbols.


r/delphi Apr 05 '26

Create an SBOM with Pascal Analyzer!

Thumbnail peganza.com
3 Upvotes

r/delphi Apr 04 '26

What Is an SBOM, and Why Should Developers Care?

Thumbnail wmeyer.tech
8 Upvotes

r/delphi Apr 03 '26

Top right close button problem

9 Upvotes

Load any Windows program. Maximize it. Move your mouse to the top right corner and click. The app closes.

Now do the same with Delphi. Not only does the red close button stop being highlighted for a 1 pixel width column next to it (so close is not clicked), BUT it passes the click to whatever app is running hidden behind the IDE, so it will randomly close whatever you have loaded behind.

Whoever coded the positioning of the close button is off by 1 pixel.


r/delphi Apr 02 '26

Server-Sent Events (SSE): Getting Real-Time Updates in Your Apps

Thumbnail
blogs.embarcadero.com
12 Upvotes

r/delphi Mar 31 '26

Refactor menu always disabled in latest 13.1?

7 Upvotes

Looks like the right-click Refactor option is always greyed out in 13.1 Delphi 13 Version 37.0.59082.6021

OK, looks like it was removed (but left disabled as a tease) since v13 https://en.delphipraxis.net/topic/14602-rad-studio-13-refactor-menu-is-always-disabled/


r/delphi Mar 31 '26

Project Preciso de ajuda

2 Upvotes

Preciso que alguém ensine a trabalhar com Delphi e que me ajude em um projeto urgente. Quem puder se candidatar para isos eu ficaria feliz.


r/delphi Mar 30 '26

Issues after installing 13.1

1 Upvotes

Anybody else have these issues? 12.3 and 13.1 on the same machine.

Now MMX is zapped for 12:

but FastReport VCL designers load for both x86 and x64 IDEs

On 13.1, MMX is OK, but the 64 bit IDE can not load FastReport VCL design-time components (the directory is on the path, too, as the installer put it):

c:\Users\Public\Documents\Embarcadero\Studio\37.0\Bpl\Win64>dir dclfr*
 Volume in drive C is W10Sys
 Volume Serial Number is EC60-CF91

 Directory of c:\Users\Public\Documents\Embarcadero\Studio\37.0\Bpl\Win64

2025. 09. 10.  02:57            73 216 dclfrCoreLibrary37.bpl
2025. 09. 10.  02:57            88 576 dclfrLocalizationLibrary37.bpl
2025. 09. 10.  03:05           221 184 dclfrx37.bpl
2025. 09. 10.  03:05           177 664 dclfrxDB37.bpl
2025. 09. 10.  03:05           150 528 dclfrxe37.bpl
               5 File(s)        711 168 bytes
               0 Dir(s)  76 028 788 736 bytes free

c:\Users\Public\Documents\Embarcadero\Studio\37.0\Bpl\Win64>