Uncategorized · Tips & Tricks · Libraries · Optimization

An XML DOM with just 8 bytes per node

I present a small XML library that parses or creates XML documents with an extremely light-weight DOM that uses just 8 bytes per node. This post shows some of the interesting algorithms that make this possible. Another XML Library? I know what you are thinking: not another XML library! And you would be right, especially… Continue reading An XML DOM with just 8 bytes per node

Libraries · Tips & Tricks · Uncategorized

Wrapping C(++) APIs with Custom Managed Records

Delphi 10.4 introduced Custom Managed Records. In this post we show how you can use this new language feature to wrap third party C(++) APIs in an easy to use model. We also compare this method to some other ways you may have interfaced with C(++) in the past. Ways to interface with C(++) For… Continue reading Wrapping C(++) APIs with Custom Managed Records

Optimization · Tips & Tricks · Uncategorized

Boost Mac performance with Metal and Delphi 10.4

Is your Mac app a little unresponsive or does it feel sluggish? Does your MacBook laptop turn into a lap-heater when running your app? Then the new Metal support in Delphi 10.4 may be just the thing for you and your customers! I have been given permission by Embarcadero to blog about this new feature… Continue reading Boost Mac performance with Metal and Delphi 10.4

Patterns · Tips & Tricks · Uncategorized

Mapping Delphi Types to Indices at Compile Time

Say what now? In this post I will show you how you can use generics and class variables to generate unique incrementing indices for any Delphi type. For example, the Integer type could map to index 1 and the TStream type to index 2 etc. The values of these indices will be determined (partially) at… Continue reading Mapping Delphi Types to Indices at Compile Time