The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Email Subscription

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 716 other subscribers

Archive for the ‘Delphi’ Category

Curious to this: Sonde — Arriving soon

Posted by jpluimers on 2026/10/08

A friend is starting a new business, so I am curious to what [Wayback/Archive] Sonde — Arriving soon will bring (or brought if this post scheduling arrives later than their release).

Looking at the taglines below, I think is that this is an intelligent (unlike LLM “intelligent”) source analysis/probing tool.

The Arrival animation sequence at [Wayback/Archive] Sonde — Arrival attributes the software development past in 29 stages, all the way back from FORTRAN till the more recent Swift until finally showing the moon, hopefully indicating a release before the Artemis IV will land people on the moon:

Read the rest of this entry »

Posted in .NET, AI and ML; Artificial Intelligence & Machine Learning, bash, BASIC, C, C#, C++, COBOL, CSS, Dart, Database Development, dBase, Delphi, Development, Elixir, Erlang, F#, Fortran, Functional Programming, Generative AI, Go (golang), Groovy, Haskell, History, Java, Java Platform, JavaScript/ECMAScript, Kotlin, Less (Less language), Lightweight markup language, LLM, MarkDown, ObjectiveC, Pascal, PHP, Python, R (R lang), Ruby, Rust, Scala, Scripting, SCSS, Software Development, Swift, Turbo Pascal, TypeScript, VB.NET, VB6, Visual BASIC, Web Development, xBase | Leave a Comment »

delphi – Is it wise to create composite controls? – Stack Overflow

Posted by jpluimers on 2026/09/10

Reminder to self to one day create a conference session on Delphi and composite controls: [Wayback/Archive] delphi – Is it wise to create composite controls? – Stack Overflow.

Too few, even die-hard, Delph developers realise the meaning of these concepts:

  • Forms
  • Frames
  • Panels
  • Controls
  • Component templates
  • Controls that can and cannot have focus
  • Parentship
  • Ownership

Even fewer understand you can use frames as hosts to create composite controls; the only thing you need is the undocumented sprig feature on which I blogged before in Delphi – Frames as visual Components – don’t forget your Sprig!.

A good example would be a TLabeledEdit in both VCL and FMX which can be extended to any labeled component.

--jeroen

Posted in Component Development, Delphi, Designer Development, Development, FireMonkey, Package Development, Software Development, Undocumented Delphi | Leave a Comment »

No, the Delphi IfThen functions do perform do lazy evaluation

Posted by jpluimers on 2026/07/30

Ever since introduction of the IfThen functions introduced in Delphi Delphi 2007 in both the Math and StrUtils units (see WayBack radstudio2007 HUpdate4 EN delphivclwin32.pdf ¹), I have been telling people that these do not perform lazy evaluation of the then and else parts which the if/then/else statement provides.

The newly introduced if/then/else ternary conditional operator in Delphi 13 ² (of which I am not a fan, not even of the generic workaround³) – despite the unlucky number – luckily also provides lazy evaluation of the then and else parts.

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

Wayback Machine search string for either docwiki, Delphi 2007 or Delphi 2009 docs

Posted by jpluimers on 2026/07/21

A long time ago, I wrote about Google Search string for either docwiki, Delphi 2007 or Delphi 2009 docs.

Well, not long after Embarcadero totally messed up their DocWiki installation, ditched all DocWiki history cand causing a multi-day DocWiki outage (see The Delphi documentation site docwiki.embarcadero.com has been down/up oscillating for 4 days is now down for almost a day.), they also killed their (then still working) Docs server (containing all the Delphi 2007 and Delphi 2009 documentation).

That means the search strings in my previous blog post mentioned above do not work any more. The only way to find back that kind of documentation is through old blog posts (those usually are in the various Web Search Engine indexes), or through the Wayback Machine.

What Embarcadero also did not do is cooperate with the people at the Internet Archive to ensure the docs server was completely archived in the Wayback Machine. Since about Delphi 2010, their behaviour has been ticking boxes in the product feature matrices instead of tickling their users with great user experience including understanding what ensuring history is available actually means.

Read the rest of this entry »

Posted in Delphi, Delphi 2007, Delphi 2009, Development, Internet, InternetArchive, Power User, Software Development, WayBack machine | Leave a Comment »

GitHub – paolo-rossi/delphi-neon: JSON Serialization library for Delphi

Posted by jpluimers on 2026/06/30

Like many of the post Delphi 2007 Delphi RTL features, replacements are so much better in functionality and stability.

One of those replacement examples is [Wayback/Archive] GitHub – paolo-rossi/delphi-neon: JSON Serialization library for Delphi

It reminds me of

[Wayback/Archive] GitHub – JamesNK/Newtonsoft.Json: Json.NET is a popular high-performance JSON framework for .NET which was way better than the original .NET JSON support. The .NET framework has improved greatly since then. Delphi JSON support hasn’t.

Via: [Wayback/Archive] Serialize/Deserialize Enums with no RTTI – RTL and Delphi Object Pascal – Delphi-PRAXiS [en]

--jeroen

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

Delphi/C# reencode textfiles: some links as I thought I published sources, but didn’t

Posted by jpluimers on 2026/06/30

A long time ago (likely around 2009) I remember writing some code to re-encode text files in both Delphi and C#.

Somehow I thought I had published both, but I could only find parts of the C# code back in .NET/C# – converting UTF8 to ASCII (yes, you can loose information with this) using System.Text.Encoding.

So here are some links just in case I ever want to reproduce it in Delphi too (and a reminder to always perform this using TStream derivatives, never use TStrings or derivatives like TStringList for this):

Read the rest of this entry »

Posted in .NET, Ansi, ASCII, C#, Delphi, Development, Encoding, Mojibake, Software Development, UCS-2, UTF-16, UTF-32, UTF-8, UTF16, UTF32, UTF8, Windows-1252 | Leave a Comment »

Some notes on Delphi Debugger Visualizers

Posted by jpluimers on 2026/06/16

Ever since Chris Hesik spoke on “RAD Studio 2010 what’s new in the IDE debugger”, wanted to write a blog post about it.

Still haven’t found time to do that in depth, but it’s important to at least jot a few notes, so let’s start with the 20111020 conference session notes.

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development, Software Heritage | Leave a Comment »

When you bump into Mojibake in your development, don’t use table-based solutions to solve it

Posted by jpluimers on 2026/05/14

A while ago I bumped into [Wayback/Archive] Unicode weirdness – VCL – Delphi-PRAXiS [en].

This sketched a mojibake problem where PDF to text converted files had odd looking character sequences.

The solution – replacing these sequences with more correctly looking text – worked at first, but then failed because the underlying source code got “corrected” from containing the Mojibake character sequences into the correct Unicode text.

A better solution is to figure out what series of encoding/decoding steps will give the correct text.

This is where – again – [Wayback/Archive] Home – ftfy: fixes text for you comes up: a still indispensable tool.

–jeroen

Posted in Delphi, Development, Encoding, Mojibake, PDF, Software Development | Leave a Comment »

Know your TypeScript/JavaScript operators… or why having little ceremony sometimes makes programmers life harder

Posted by jpluimers on 2026/05/12

const a = undefined; const result1 = a ?? 0 + 10; const b = 100; const result2 = b ?? 0 + 10;Take this cool example I extended from [Wayback/Archive] Thomas 🅰️🇨🇵 on Twitter: “#Typescript quizz What will be the value of result1 and result2 ?” which lacked alt-badge, so I [Wayback/Archive] responded with the image on the right that has alt-text.

Based on that, I added a bit of logging:

const a = undefined;
const result1 = a ?? 0 + 10;

const b = 100;
const result2 = b ?? 0 + 10;

console.log(result1);
console.log(result2);

Two questions:

  1. What is the output of both log lines?

Read the rest of this entry »

Posted in .NET, C#, Conference Topics, Conferences, Continuous Integration, Delphi, Development, Event, Java, Java Platform, JavaScript/ECMAScript, Maven, Scripting, Software Development, TypeScript | Leave a Comment »

Online tools to test JSONPath Queries (plus a small list of Amazon top level domains)

Posted by jpluimers on 2026/04/15

I wanted to parse some JSON being sent back during an XMLHttpRequest (what a wrongly named call is that!) of which I grabbed the content using the web development tools of my Chromium based browser.

Input

I got this list of amazon top level domain names from research I did for my blog post Download your Kindle books soon, because Amazon will block them after February 25, 2025 . The source is [Wayback/Archive] Amazon operating domains by country. · GitHub [Wayback/Archive] in the file amazon-domains.json:

{
    "us": "https://www.amazon.com",
    "uk": "https://www.amazon.co.uk",
    "ca": "https://www.amazon.ca",
    "de": "https://www.amazon.de",
    "es": "https://www.amazon.es",
    "fr": "https://www.amazon.fr",
    "it": "https://www.amazon.it",
    "jp": "https://www.amazon.co.jp",
    "in": "https://www.amazon.in",
    "cn": "https://www.amazon.cn",
    "sg": "https://www.amazon.com.sg",
    "mx": "https://www.amazon.com.mx",
    "ae": "https://www.amazon.ae",
    "br": "https://www.amazon.com.br",
    "nl": "https://www.amazon.nl",
    "au": "https://www.amazon.com.au",
    "tr": "https://www.amazon.com.tr",
    "sa": "https://www.amazon.sa",
    "se": "https://www.amazon.se",
    "pl": "https://www.amazon.pl"
}

The list is far from complete, so tomorrow I will post some more sources in Some pages that have lists of Amazon toplevel domains.

The queries and results show you that the original JSONPath (2007) and its RFC 9535 definition (2024, just 2 years ago) do not support getting the key names of the above list the ~ part in the first query below fails, and only the second query works.

This means that finding the right tooling is important.

Example

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, JavaScript/ECMAScript, JSON, JSONPath, PHP, Python, Scripting, Software Development, TypeScript, Web Development | Tagged: | Leave a Comment »