Powerful VCL Code Hooks in Delphi Athens on Windows

Published: 26 May 2024
Last Updated: 13 June 2024


Brief Introduction

Andy's VCL Fix Pack is a Delphi open-source unit that fixes VCL and RTL issues at runtime by patching the original functions.


Andy's Unit contains easy-to-use functions to update code that cannot be easily recompiled or changed.


If you try to change VCL sources (files in Source folder of your RadStudio, Delphi or C++ Builder installation) and attempt to recompile them within your project, you'll get multiple errors, such as: DCU mismatch, (file1.pas) is compiled with a newer version of (file2.pas). This occurs when source-code is compiled with a different file and needs to be fully recompiled.


The above errors may occur when source code is not present. This may occur, when a third-party library you brought, contains only DCU or DCP files.


Example

In the below example, I create a function. The code is redirected to another unit.



procedure TfrmSample.Update1; 
begin
  ShowMessage('Hello World');
end;

procedure TfrmSample.Button2Click(Sender: TObject);
begin
  Update1;
end; 


Using VCLFix.pas, I can redirect the TfrmSample.Update1 to another unit, so it shows "Bye World" instead!

undefined

Fixing QC15408

I'm using Andy's VCL Fix Pack to fix Delphi bug QC15408.


In Delphi QC15408, when VCL UI objects TButton, TEdit are disabled, hint is also disabled.


Seen below

undefined

In this fix, when the VCL UI objects TButton, TEdit are disabled, the hints are enabled.

undefined

This fix works by hooking code that's private in Controls.FindDragTarget and replacing it with code I've made.


Source code is at this git repository:

https://github.com/PolywickStudio/AndyVCLFIXPack


In this example, you can use Andy's VCLFixPack to create work-arounds for VCL bugs or resolve VCL issues.

Polywick Studio provides affordable,

efficient, quality app development

services for global companies.


© Polywick Studio 2018-2024.