A multicast event is an event that can have multiple listeners (or event handlers). Some languages (such as .NET languages) have built-in support for multicast events. This article shows an implementation for Delphi. This implementation is very lightweight. In fact, it takes no more resources than a regular Delphi event if there is just a… Continue reading Lightweight Multicast Events
This week is Delphi’s 27th anniversary and the team here at Grijjy is excited about all the great things that have happened over the past year in the Delphi world. Just seeing the thousands of attendees this week for the Delphi 27th webinar was amazing, but we can really feel the growing momentum in the… Continue reading Delphi’s 27th anniversary! Startup settings and parameters revisited
This curious little pattern can be helpful for certain problems that involve generics. We’ll look at what it is, and at a couple of use cases for it. What is it? The Curiously Recurring Generic Pattern (CRGP) is a pattern where a class TFoo derives from a generic class, using the class TFoo itself as… Continue reading The Curiously Recurring Generic Pattern
It’s been five years since we started the Grijjy Blog! Thank you to everyone who has taken the time to read our blog articles and use our code and examples. The articles on the site have been viewed over 250K times since we started from all over the world. I have spoken to many of… Continue reading Grijjy’s 5th Anniversary!
Best wishes to all fellow Delphi developers and the team behind Delphi! Let’s have some fun with FireMonkey! The little video above is a recording of a small (3D) FireMonkey app. You can test it out yourself by cloning our JustAddCode repo. There, you will find it in the HappyNewYear subdirectory. For those of you… Continue reading Happy New Year from Team Grijjy!
A while ago, I started a small series about trapping exceptions and turning them into an error report for consumption by your development team. This enables you to get information about errors that happen out “in the field”. The first part focused on the iOS platform and the second part on Android. In this part… Continue reading Build your own Error Reporter – Part 3: macOS Intel
If Single and Double precision floating-point types don’t cut it for you, then the Neslib.MultiPrecision library may be just the thing. It provides up to 4 times the precision, while still being pretty fast compared to arbitrary precision libraries. Neslib.MultiPrecision Neslib.MultiPrecision is a personal project that adds two additional floating-point types for use with Delphi.… Continue reading High-Precision Floating-Point Types for Delphi
Delphi is known for its fast build speeds, at least for Win32 apps. But when you compile your same FireMonkey app for other platforms, the build time increases dramatically and can be up to 15 times slower. Granted, it is still much faster than most C++ compilers, but when you are used to blazing fast… Continue reading Decrease Your Build Time
The Grijjy Deployment Manager (DeployMan) is a tool to simplify the deployment of files and folders for iOS and Android apps written in Delphi. It is especially useful if you need to deploy a lot of files, such as 3rd party SDKs. Information and Usage The Deployment Manager (DeployMan) was first introduced in the blog… Continue reading Deployment Manager now Open Source
In this post, I will show you how to take full advantage of the GPU by creating custom shaders. Shaders are used in two places in the FireMonkey framework: for creating materials that you can apply to 3D objects, and for creating filter effects that you can apply to bitmaps. I will focus mostly on… Continue reading Introduction to Shader Programming