Have you ever wanted (or, more likely, needed) to assign items to the left-hand side of an Array, and had to deal with the nuisance of shifting all elements to the right in order to squeeze the new item in (a process with the annoying exponential performance degradation of O(n))?
Well, the LKSL introduces a new class to eliminate these issues [...]
Following up on my (very) recent spotlight feature on David Millington‘s Bookmarks plugin, I’m pleased to see that David has released Bookmarks 1.2, an update providing bug fixes and new (useful) features.
Updating (for existing users)
Pretty simple, really. Just download the updated installer, and run it.
You’re done… [...]
In this article, we’re going to take a look at the MonkeyMixer IDE Plugin from LaKraven Studios Ltd (that’s us, in case you didn’t know).
What is “MonkeyMixer”?
MonkeyMixer is an IDE extension for Delphi XE2 to XE7 (and beyond) enabling you to use both VCL and FireMonkey Forms/Frames in the same project, at the s [...]
In this article, we’re going to take a look at a wonderful RAD Studio IDE Plugin from David Millington called “Bookmarks”.
What is “Bookmarks”?
Bookmarks is a radical re-imagining of the way we navigate between important areas in our code.
While the RAD Studio IDE has its own Bookmark system built-in, it’s [...]
This article contains a viable solution to a critical flaw in App Tethering, which now means that you can reliably and safely iterate through all currently-connected Remote Profiles to read Remote Resources, and execute Remote Actions.
In the second part of this series of articles, we took a look at Resources in App Tetherin [...]
In the first part of this series of articles, we took a look at Interoperable Systems as a concept, followed by App Tethering – a recent addition to Delphi enabling us to quickly and easily produce Interoperable Systems – finishing off with two introductory sample projects demonstrating how to implement App Tethe [...]
What are “Interoperable Systems”
To begin this series of articles, let’s explain what an Interoperable System is and why you should care.
“Interoperation” (and synonyms such as “Interoperate”, “Interoperable” and “Interoperability”) refer to systems (any kind of system, not jus [...]
Delphi Cookbook Cover
In the interests of transparency, I want to make it clear from the outset that I expressed an interest in reading and reviewing Delphi Cookbook, and was sent a copy free of charge from the publisher (Packt Publishing).
The only condition of this agreement was that I publish a review for Delphi Cookbook he [...]
This article uses the LaKraven Studios Standard Library[LKSL]. If you wish to follow along with the code snips provided herein, you should download the latest version from the GitHub repository, and run the LKSLInstaller.exe program to configure the RAD Studio IDE so that you can easily use the LKSL units in your programs.
You will also [...]
In the first part of this series of articles, we took a look at how the OnTouch event introduced in XE7 works, and discovered some potential stumbling blocks when it comes to taking advantage of this new feature.
In this part of the series, we’re going to look at potential “workarounds” for these problems; [...]
Before the release of XE7, handling multi-touch inputs in Delphi (and C++ Builder) applications was quite a complicated affair. While Delphi 2010 introduced “Gesture” support, this solution was less than ideal for real-time multi-touch input handling, as an action bound to a Gesture only executed after the Gesture had [...]
When it comes to developing a game engine (whether it be reusable or the engine powering a single specific game) there are many alternative approaches that can be taken at almost every single stage of the design.
For this reason (and I say this from personal experience) the single most critical part of the development process is [...]
Slow Text Rendering
Rendering text in FireMonkey is slow. There’s no “nice” way to say that, it’s just the way it is.
Now, one significant way of improving FireMonkey’s text rendering performance is to cache each text element, paired with the attributes used to render it, so that all subsequent requests for that [...]
In the beginning…
When I began programming as a child, it was for one purpose and one purpose only: to make my own video games.
What the new generation of developers today have to keep in mind is that, back in the ’80s and ’90s, you couldn’t just fire up Steam, spend a little bit of money on some bargain sale, and enjo [...]