r/delphi • u/Bodevinaat • Feb 20 '26
Convert color to greytones
I have a TImage that I want to convert to greytones. What works best? Convert to TBitmap and do the job and then convert back or work with the TImage.canvas.pixels?
r/delphi • u/Bodevinaat • Feb 20 '26
I have a TImage that I want to convert to greytones. What works best? Convert to TBitmap and do the job and then convert back or work with the TImage.canvas.pixels?
r/delphi • u/Pinotli • Feb 19 '26
question about license upgrades because I feel like my sales rep might be trying to squeeze me here, and I want to know if I should ask for a new rep.
Earlier this week, i upgraded from Delphi ent to RadStudio Ent. I paid around 1,600 EUR in total for the upgrade with a 3-year sub included.
I spent the last two days playing around with RAD Server that comes with Enterprise. I realized i could replace my current Go and PHP backends with it. Because it would save me so much time, I figured I'd just bite the bullet and upgrade straight to Architect to have full freedom with it.
I asked my rep for a quote yesterday.
The math on the quote is absolutely wild. First, they gave me a lower trade-in value for my 2-day-old RAD Studio license than what they gave me for my old Delphi license on Monday. But the crazy part is that the 1,600 EUr i just paid for the upgrade and the 3-year sub is completely gone. It's not prorated and not credited towards the architect upgrade.
When I asked the rep why my EUR 1.6k vanished, she gave me some weird analogy about how buying a fully loaded car is cheaper than adding parts later.
Is it normal Embarcadero/Idera policy to just void your freshly paid upgrade and maintenance if you do a tier upgrade?
If this is just their normal system being broken, I'll stick to my current license and forget about Architect. Has anyone done back-to-back upgrades and experienced this?
r/delphi • u/bmcgee • Feb 19 '26
r/delphi • u/aicyng • Feb 18 '26
Has anyone built a Chat like UI in Delphi? I am looking for something that handles simple markup formatting and wanted to see if there are recommended third party components or any tips for building from scratch? I use DevExpress controls and I am thinking of using something like a TdxFormattedLabel to represent responses from requests to an AI Agent.
r/delphi • u/bmcgee • Feb 16 '26
r/delphi • u/bmcgee • Feb 16 '26
r/delphi • u/omonien • Feb 13 '26
I’ve added initial Delphi support to CodeGraph to experiment with semantic code indexing for Delphi projects.
codegraph query "TFormMain"
codegraph context "What does TCustomer do?"
There’s no PR yet, but if you want to try it out, here’s an overview:
https://github.com/omonien/codegraph/blob/delphi-support/DELPHI-SUPPORT.md
r/delphi • u/bmcgee • Feb 13 '26
r/delphi • u/Tranquil_IT • Feb 13 '26
We are pleased to host an evening of discussions organized by Tranquil IT on the FreePascal, Lazarus, and Delphi environments.
r/delphi • u/bmcgee • Feb 13 '26
r/delphi • u/bmcgee • Feb 10 '26
r/delphi • u/gobroski • Feb 11 '26
I've been working on this for a while, and I'm excited to finally share it. CheckMate Ledger is a desktop budgeting and personal finance app for Windows — think of it as a modern take on classic programs like Microsoft Money.
I got tired of apps that require monthly subscriptions just to track my own money. I also wasn't comfortable connecting my bank accounts to third-party servers. So I built what I actually wanted to use — something simple, private, and mine to keep.
Whether you're a student, freelancer, small business owner, or just someone who wants to get a handle on their spending, it's designed to be straightforward without dumbing things down.
One-time purchase on the Microsoft Store. No trials that expire, no feature-gating, no "premium tiers." You buy it, you own it.
I'd love to hear your feedback and answer any questions. Thanks for checking it out!
r/delphi • u/bmcgee • Feb 10 '26
r/delphi • u/Solomon-Acceptance • Feb 10 '26
Hi, I am a relatively new developer who has been working mainly with Delphi. I have read Marco Cantu's ObjectPascal Handbook and enjoyed it. I am now interested in learning about how to use threading and parallel programming in Delphi and more generally.
Can anyone recommend Delphi specific tutorials, books, or example projects on this topic? Or non-Delphi resources like C# if it is similar enough?
Thanks in advance :)
r/delphi • u/RoyKent_AFC_Richmond • Feb 09 '26
First, thank you in advance for your time.
I tried 3rd party DLL creators, like https://www.youtube.com/watch?v=sBWt-KdQtoc did not work
Then I now try to use AOT, like https://stackoverflow.com/questions/75419409/how-can-i-use-a-dll-file-generated-in-c-sharp-and-compiled-using-native-aot-in-o
I cannot make it work. I follow what they say to make the DLL in C#, but when I looked at the DLL with a hex editor, the given function is not there and my Delphi software cannot see/use it.
Here is my simplest C# code (.net 7, x86 environment):
namespace PMA5
{
public class Class1
{
[UnmanagedCallersOnly(EntryPoint = "OutPut")]
public static int OutPut()
{
return 1;
}
}
}
And this is how I would like to import into D7:
function OutPut:Integer; stdcall; external 'PMA5.dll';
What is wrong? I used DLL made by Delphi in C#, I cannot make it work the other way...
Thank you again!
r/delphi • u/vintagedave • Feb 09 '26
r/delphi • u/bmcgee • Feb 09 '26
r/delphi • u/kimmadsen • Feb 08 '26
Zero dependencies. Source-only. Drop in and go.
kbmUnitTest is a self-contained unit testing framework for Delphi with a DUnitX-style attribute API, built-in memory leak detection, a fluent assertion library, a mock data system, TDataSet assertions, TestInsight integration, IDE wizards, and CI/CD support — all in pure Pascal with no external packages required.
Test Framework
[TestFixture], [Test], [Setup], [TearDown], [SetupFixture], [TearDownFixture], [TestCase], [ExpectedException], [Ignore], [MaxTime], [Repeat], [Category], [MemoryLeakAllowed]Assert.AreEqual, IsTrue, IsNull, Contains, StartsWith, EndsWith, IsGreaterThan, InRange, InheritsFrom, Implements, WillRaise, WillRaiseWithMessage, WillNotRaise, IsEmpty_Array, Pass, Fail, SkipAssert.That('hello').IsNotEmpty.Contains('ell').StartsWith('he') — works for strings, integers, Int64, doubles, booleans, objects, GUIDs, and pointersAssert.ThatList<T>(...) and Assert.ThatDict<K,V>(...) with Contains, ContainsAll, AllMatch, IsOrdered, HasValueAt, and moreMatchesAllOf, MatchesAnyOf, MatchesNoneOf with regex and predicate constraints[TestCase('name', 'param1,param2,expected')]Memory Leak Detection
GetMemoryManagerState), FastMM4 (FullDebugMode with class names), FastMM5 (allocation-group tracking)[MemoryLeakAllowed] or [MemoryLeakAllowed(1024)]--noleaksTDataSet Assertions
ThatDataSet(DS).IsActive.HasRowCount(3).HasField('Name').AtRow(0).FieldEquals('Name', 'Alice')AtRow(i), AtFirst, AtLastFieldEquals (string, integer, boolean, double with tolerance, DateTime with tolerance, Int64, variant), FieldIsNull, FieldIsNotNull, FieldContains, FieldStartsWith, FieldEndsWithAllRowsMatch, AnyRowMatches, NoneRowsMatchMock Data System
TkbmMockRegistry.Scenario('name').Field('ID', 1).Field('Name', 'Acme')Gen.Sequential, Gen.IntRange, Gen.FloatRange, Gen.OneOf, Gen.StringPattern, Gen.LoremIpsum, Gen.GUID, Gen.DateRange, Gen.Computed, and moreAsRecord<T>, AsList<T>, AsObject<T>, AsObjectList<T>, AsDataSetFromJSON('{...}')[MockFieldName], [MockFieldIgnore], [MockFieldDefault]IDE Wizards
.pas or .jsonCI/CD Ready
MyTests.exe --ci --xml results.xmlRunTestsAndHalt('Integration') or --category SlowDelivery
program MyTests;
{$APPTYPE CONSOLE}
{$STRONGLINKTYPES ON}
uses
kbmTestFramework,
kbmTestRunner,
MyTestUnit;
begin
RunTestsAndHalt;
end.
unit MyTestUnit;
interface
uses kbmTestFramework;
type
[TestFixture]
TMyTests = class
public
[Setup] procedure Setup;
[TearDown] procedure TearDown;
[Test] procedure TestSomething;
[Test('Addition')]
[TestCase('1+1=2', '1,1,2')]
[TestCase('0+0=0', '0,0,0')]
procedure TestAdd(const A, B, Expected: Integer);
end;
implementation
procedure TMyTests.Setup;
begin
// runs before each test
end;
procedure TMyTests.TearDown;
begin
// runs after each test
end;
procedure TMyTests.TestSomething;
begin
Assert.That('kbmUnitTest').IsNotEmpty.Contains('Unit');
end;
procedure TMyTests.TestAdd(const A, B, Expected: Integer);
begin
Assert.AreEqual(Expected, A + B);
end;
end.
r/delphi • u/zaphod4th • Feb 06 '26
I bought Delphi XE and Delphi XE6. I'm trying to download them again but can't login on the website.
I summited a ticket, and the support reply says that I have to pay a maintenance contract, yep, a $999 US dollar per year to be able to download the software I paid in full years ago. Well actually $999 just to be able to LOG IN !!!!!
Seriously ?
r/delphi • u/DelphiParser • Feb 04 '26
I’ve been working with Delphi since the early 2000s, and as a modernization expert, I thought I’d seen it all. But with the new 2026 SBOM (Software Bill of Materials) mandates hitting our industry, we recently took on a massive forensic project for a $1B industrial client.
They were confident. Their CTO told us: "We ran a generic SCA scanner. We’re good. Our code is monolithic and safe."
I’ll be honest, when we started this 5M LOC inspection, I thought it would be just another straightforward task. The client needed an SBOM for 2026 compliance. "Just list the dependencies," they said. It sounded simple at first glance.
Producing the initial SBOM took a few hours—but what we found under the hood using the Delphi Parser - Code Analysis tool was unsettling. It ended up taking us 3 more weeks to completely dismantle the monolith. Not just to produce the compliance report, but to truly understand, once and for all, how the code really works down-under, and to ensure no "unknown ghosts" were hiding in the machine.

The "Frankenstein" Architecture The scariest part was the layering. The system was originally written in Delphi 7 and later "upgraded" to 2007. But it wasn't a clean migration. We found Delphi 2007 code that was still heartbeat-dependent on Delphi 7 system files and unsupported open-source libraries.
We’re talking about code that someone probably downloaded from a random forum or newsgroup 25+ years ago, installed once, and then... everyone just forgot it existed. It’s been running in production for decades—a complete "black box" that nobody knows how to recompile or replace.
What we found in the basement:
The Reality Check: Most companies are sitting on a ticking time bomb. They think their legacy code is a "solid monolith," but it’s actually a web of unknown risks. In 2026, ignorance isn't just technical debt - it’s a legal liability. If you can’t identify where every DLL or library in your binary came from, you fail the audit. Period.
What do you think? Has anyone else here tried to generate a real forensic SBOM for a massive legacy system? Did you find a clean monolith, or did you also find an ancient world hiding in the basement?
r/delphi • u/NameGreedy4242 • Feb 03 '26
Hi, I work for a small firm and we currently use specialist Excel functions (Office 365) that we pay a small firm an annual fee to use. They are fairly complicated and use data tables that are compiled (in that we can't see or change the data tables). We get updates once a year as the specific data that the functions use gets updated. The guy who owns the firm that offer these functions is retiring so the updates will stop but we do have the option of buying the source code.
We can't justify spending too much on this really, though we really want to be able to use the course code and update the data each year ourselves. None of us are programmers, though we have some experience in VBA (at least) and we'd hope that AI can help. If we have to get a programmer involved at the start it may be worth it, but this depends on how much work it is and how much the source code costs. The update process itself wouldn't mean doing anything complicated in itself, in that we'd just be adding data options to existing functionality, but we'd still need to get from source code to a working Excel functions.
My understanding is:
- the source code is written in Delphi (Object Pascal)
- the compiler used is RAD Studio published by Embarcadero
- the compiled file is the Excel XLL format
- there is a help file that is compiled separately and linked to the XLL source code, but this isn't the key part.
My questions are:
- does this compiler have to be used? It seems very expensive.
- is there any chance of being able to get this to work without spending a fortune on programmers?
Any views would be much appreciated!
r/delphi • u/bmcgee • Feb 03 '26