Open Source Projects

LaKraven Studios provides Open Source libraries, components and tools for RAD Studio and AppMethod.

Our GitHub

Game Development

More than just business programming: Learn about Video Game development here on OTAPI.

Learn more

Contact Us

Post a comment with your questions and they'll be answered ASAP, or you can find us on Google+

Google+ Profile

TLKCenteredList – An Array with...

TLKCenteredList - New Items on Left or Right
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 [...]

Plugin Spotlight – Bookmarks 1....

Bookmarks 1.2 - Rename Bookmark
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… [...]

Plugin Spotlight – MonkeyMixer ...

MonkeyMixer - VCL and FMX in the same Project
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 [...]

Plugin Spotlight – Bookmarks by...

Bookmarks Docking Window
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 [...]

App Tethering (Part 3) – Resour...

App Tethering Chat Demo - Running Demo
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. Previously… In the second part of this series of articles, we took a look at Resources in App Tetherin [...]

We’ve had a facelift!

OTAPI New Design Nov 2014
OTAPI New Design Nov 2014 New visitors to this website of course won’t notice, but for those of you whom have been here before, you may have noticed that our layout has drastically changed. We’ve attempted to make the site not only more appealing to look at, but easier to navigate as well. Our home page no longer displays the enti [...]

App Tethering (Part 2) – Resour...

App Tethering License Duplication Demo - Two Instances, Duplicate License Error Message
Previously… 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 [...]

App Tethering (Part 1) – Intero...

App Tethering AutoConnect Demo - Phase 1 - Two Instances
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 [...]

Book Review – Delphi Cookbook b...

Delphi Cookbook Cover
Delphi Cookbook Cover Full Disclosure 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 [...]

Threading Evolved… again –...

TLKPrecisionThread Properties
LKSL 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 [...]

Working with Multi-Touch Input in Del...

Multi-Touch Playground - Moving Controls
Previously… 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; [...]

Working with Multi-Touch Input in Del...

FireMonkey Form's OnTouch Event
Introduction 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 [...]

Game Engine Architecture (Part 1) ...

Improved Rate-Limited Game Loop
Introduction 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 [...]

Making Windows Icons for RAD Studio A...

My FireMonkey Icon Design
Following a recent discussion with Steve Maughan in which he was having difficulties with the Windows icon for his Delphi Applications, I’ve decided to assemble this tutorial on making proper Windows icons for your Applications. This tutorial will actually show you how to produce “multi-resolution icons”, covering all of the [...]

FireMonkey Enhancements – Cache...

FireMonkey Enhancements – Cached Text Rendering
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 [...]

How Game Development makes you a bett...

How Game Development makes you a better Application Developer
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 [...]