Environment variables and macros in Delphi

Environment variables are strings defined by the IDE. Each environment variable serves a specific purpose. Some of them are fixed, others are changed dynamically depending on what/how you are compiling your project. For example, they provide dynamic paths that influence where files are stored, define default locations for binaries, define how projects are built, and […]

Environment variables and macros in Delphi Read More »

Breakpoints – Issues during debugging

For any debugging issue, make sure that the program is compiled under the “Debug” configuration, and that the “Debug” configuration is properly set, as explained in the “Debugger” chapter in my books. Don’t forget to build (instead of compile) after changing any project settings! Also, don’t put yourself in a dreadful situation by using 3rd

Breakpoints – Issues during debugging Read More »

Delphi breakpoints

Breakpoints A breakpoint tells the debugger to pause the program’s execution at the location (line of code) where the breakpoint is. We can set source breakpoints in the Code Editor before we run the program, but also while the program is already running. The places where we can place breakpoints are marked by a blue

Delphi breakpoints Read More »

Too many programmers don’t understand exceptions. Do you?

I am still amazed to see how many (even seasoned) Delphi programmer don’t understand exceptions. This post starts from a nice video posted by the Silver Coder. He states that exceptions are not the best idea and the reason mentioned in the short video is that try/except makes the code slow and difficult to read.

Too many programmers don’t understand exceptions. Do you? Read More »

Never create a new Delphi project – Use templates instead!

Note: This article is tightly connected to the “How to correctly set the compiler options” article.   Somebody asked how to set the default project options for a new Delphi project. I stopped years ago wasting time with this. Instead I have a folder where I store a “template” project. You can find this Delphi

Never create a new Delphi project – Use templates instead! Read More »

$(Auto) – One package to rule them all

Note: This page is an excerpt from my “Delphi in all its glory – Libraries” book.   $(Auto) is a new environment variable, introduced in Delphi 10.4. Embarcadero didn’t make a big show around it so it went unnoticed by most programmers. But don’t ignore it! It is extremely useful for packages, where it can

$(Auto) – One package to rule them all Read More »

Hardware – Cheap companies making cheap mainboards or “Why I hate laptops”

I have encountered quite a few computers where you could hear the CPU/GPU “accelerating” in the sound card. I never owned such a cheap board. Lucky me. Mainboard for enthusiasts are much better than those in the laptops and “large-scale” PC sales.The round up (https://www.techspot.com/review/2907-amd-x870-motherboards/) shows impressive values for all modern enthusiast mother boards.Again, today

Hardware – Cheap companies making cheap mainboards or “Why I hate laptops” Read More »

AI plugins for Delphi (a sad story)

My Experience with Cursor: The Promise and the Reality   This week, I had the opportunity (or perhaps the misfortune?) to try out Cursor, a new tool that promises to enhance productivity for programmers. As someone who primarily works in Delphi, I was curious to see how it would stack up. Cursor is an AI-powered

AI plugins for Delphi (a sad story) Read More »

Open source software licenses are complicated

Here is a summary (extracted from Wikipedia) of the most popular software open source license. License Latest ver Linking Distribution Modification Patent grant Private use Sublicensing TM grant Apache License 2.0 Permissive Permissive Permissive Yes Yes Permissive No BSD License 3.0 Permissive Permissive Permissive[ Manually Yes Permissive Manually Creative Commons Zero 1.0 Public Domain Public

Open source software licenses are complicated Read More »

Formatting tricks for StackOverflow and GitHib – Reinventing the text editor

Back in the early 90’s people invented a program called rich text editor. In it you could format text to be bold, italic. Paragraphs were also available. Then years went by, the rich editors got better and better until they culminated with really powerful and eye candy editors like MS Word. In parallel Linux came

Formatting tricks for StackOverflow and GitHib – Reinventing the text editor Read More »

One function to rule them all – Saving the whole GUI one single procedure call

We all created at one point some small utility to do some dirty job for us. It started as a 100 liner then became bigger and bigger. And then we decided to publish it so the whole world can enjoy it. And this is when disaster hits: the users start to ask more and more

One function to rule them all – Saving the whole GUI one single procedure call Read More »

Running a single instance of our program – Passing command line from one instance to another instance

01.2023 Some of my programs need to run as single instance. This means that if an instance of my program is already running and the user is trying to start another instance, the second instance should not run. However, before closing the second instance, I want to pass the command line parameters from that second

Running a single instance of our program – Passing command line from one instance to another instance Read More »

How to see who wakes up the harddrive (HDD) from sleep?

Usually I have my D: drive sleeping because it is too loud.But sometimes, without obvious reason somebody wakes it up. To see who does that, you need to  install the Sysinternals Process Monitor (Microsoft website).At startup you need to cancel the filter dialog that will be presented. In the program, under the Filter main menu,

How to see who wakes up the harddrive (HDD) from sleep? Read More »

PaintShop Pro won’t save images as JPG (Fixed)

Today I was not able to save anymore images in PainShop Pro as jpg (png will work). PainShop Pro will simply freeze if I try to do this. The issue: a clipboard monitor called PureText was conflicting with PainShop Pro. Closing the program solved the issue.   I have no clue why the programmers of PainShop

PaintShop Pro won’t save images as JPG (Fixed) Read More »

Can you tell if the machine on which you are running is a virtual machine installed secretly by some malware/hacker?

Somebody asked me: can you tell if the machine on which you are running is a virtual machine installed secretly by some malware/hacker? I thought about that question and the answer is SURE. Without any doubt. A virtual machine will consume some resources by itself (quite a lot). If you observe these missing resources you

Can you tell if the machine on which you are running is a virtual machine installed secretly by some malware/hacker? Read More »

KSDev CrossVCL – A framework that allows you to build multi-platform applications.

KSDev released this year CrossVCL – a framework that allows you to build multi-platform applications. What is the difference between Firemonkey and CrossVCL? If you want to make your current app multi platform, you need to port it to Firemonkey. With CrossVCL you don’t need anything!!! They really upgraded Delphi/C++ programming to a brand new

KSDev CrossVCL – A framework that allows you to build multi-platform applications. Read More »

Cool new features and functions in Delphi

 List of IDE features that are cool Search backwards – Ctrl+F to do a search in your code. F3 to go to the next position Shift+F3 to go to previous position. Move/Relocate/Rename project’s files directly from Project Manager Navigate to recently modified code – Ctrl+Shift+F7 and Ctrl+Shift+F8 Search for usage – Right click a variable

Cool new features and functions in Delphi Read More »

Scroll to Top