Andy’s Blog and Tools

Syndicate content
Delphi, C++Builder and other thoughts
Updated: 7 min 8 sec ago

Byte-Strings for Delphi 10 Seattle’s mobile compilers

Tue, 09/01/2015 - 14:53

Delphi’s NextGen compilers (Android, IOS) removed support for UTF8String, AnsiString and RawByteString. But if you look into System.pas you see that those types are still there but Embarcadero makes them inaccessible from outside of System.pas by prefixing them with an underscore that the compiler converts to the at-sign. And you can’t write “@UTF8String” as it is not a valid identifier.

By patching DCU files it is possible to make those hidden types accessible. And guess what, the compiler generates correct code for the “unsupported” strings.

The unit System.ByteStrings reintroduces:

  • ShortString
  • AnsiString
  • AnsiChar
  • PAnsiChar
  • PPAnsiChar
  • UTF8String
  • PUTF8String
  • RawByteString
  • PRawByteString

Usage:
Add the System.ByteStrings.dcu’s path to the compiler’s search path and add the unit to your uses clauses.

There is no *.PAS file because the DCU is patched with a hex editor to get access to the hidden types.
Name IDE Version File Size Downloads Added System.ByteStrings XE5 RTM/UP1 only XE5ByteStrings.7z 2.45 KB 751 times 2013-10-23 System.ByteStrings XE5 UP2 only XE5Up2ByteStrings.7z 2.85 KB 667 times 2013-12-20 System.ByteStrings XE6 XE6ByteStrings.7z 2.89 KB 541 times 2014-04-16 System.ByteStrings XE7 XE7ByteStrings.7z 2.89 KB 526 times 2015-01-20 System.ByteStrings XE8 XE8ByteStrings.7z 3.69 KB 523 times 2015-04-16 System.ByteStrings 10 Seattle D10ByteStrings.7z 3.67 KB 3 times 2015-09-01

Categories: News, Blogs, and Tips

IDE Fix Pack 4.4 for Delphi 2007 – Windows 10 Edition

Tue, 08/04/2015 - 14:45

For all developers that got stuck at Delphi 2007 and who want to upgrade to Windows 10 can now use the special “Windows 10 Edition” of IDE Fix Pack 4.4 for Delphi 2007. The “Windows 10 Edition” also supports Windows 8.1.

Requirement: Delphi 2007 December Update.

Download:
Name IDE Version File Size Downloads Added IDE Fix Pack 2007 4.3 (may work with Windows 8) 2007 IDEFixPack2007Reg43.zip 59.74 KB 4796 times 2011-08-20 IDE Fix Pack 2007 4.4 (Win8 is not supported) 2007 IDEFixPack2007Reg44.zip 61.85 KB 10556 times 2011-08-28 IDE Fix Pack XE2 4.5 XE2 UP2 only IDEFixPackXE2Reg45.zip 125.47 KB 2194 times 2011-11-02 IDE Fix Pack XE2 4.6.6 XE2 UP3 only IDEFixPackXE2Reg466.zip 152.4 KB 3453 times 2012-01-04 IDE Fix Pack 2007 4.4 Windows 10 Edition 2007 Dec.Update IDEFixPack2007Reg44Win10.7z 88.51 KB 493 times 2015-08-04

Categories: News, Blogs, and Tips

IDE Fix Pack 5.93 – Windows 10 support

Mon, 08/03/2015 - 11:48

Those who tried to use IDE Fix Pack on Windows 10 got the uncritical error message “failed: Faster IDE startup [IDE.Startup.Fast]” that appeared on every IDE start. The problem is that a byte sequence changed that IDE Fix Pack tries to find. Windows 10 uses “INT3” instead of “NOP” instructions to align functions and IDE Fix Pack 5.92 and earlier looked for “NOP”. The new 5.93 now allows both instructions.

IDE Fix Pack 5.93 only adds support for Windows 10 otherwise it is the same as 5.92.

For the next IDE Fix Pack I’ll work on the Delphi Win64 compiler’s performance. (not the generated code)

Download:
Name IDE Version File Size Downloads Added IDE Fix Pack 5.93 2009 (UP4) IDEFixPack2009Reg593.7z 178.74 KB 454 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) 2010 (UP5) IDEFixPack2010Reg593.7z 174.78 KB 610 times 2015-08-03 IDE Fix Pack 5.93 XE (UP1) IDEFixPackXEReg593.7z 160.8 KB 277 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE2 (UP4+HF1) IDEFixPackXE2Reg593.7z 233.96 KB 261 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE3 (UP2) IDEFixPackXE3Reg593.7z 186.49 KB 222 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE4 (UP1) IDEFixPackXE4Reg593.7z 187.14 KB 161 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE5 (UP2) IDEFixPackXE5Reg593.7z 186.47 KB 281 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE6 (UP1) IDEFixPackXE6Reg593.7z 304.67 KB 291 times 2015-08-03 IDE Fix Pack 5.93 XE7 (UP1) IDEFixPackXE7Reg593.7z 318.33 KB 758 times 2015-08-03 IDE Fix Pack 5.93 XE8 (UP1) IDEFixPackXE8Reg593.7z 312.48 KB 1281 times 2015-08-03

Download (fastdcc):
Name IDE Version File Size Downloads Added fastdcc 5.93 2009 (UP4) fastdcc2009v593.7z 76.52 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) 2010 (UP5) fastdcc2010v593.7z 80.62 KB 130 times 2015-08-03 fastdcc 5.93 XE (UP1) fastdccXEv593.7z 82.5 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) XE2 (UP4+HF1) fastdccXE2v593.7z 103.83 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) XE3 (UP2) fastdccXE3v593.7z 118.1 KB 78 times 2015-08-03 fastdcc 5.93 (unsupported) XE4 (UP1) fastdccXE4v593.7z 112.86 KB 61 times 2015-08-03 fastdcc 5.93 (unsupported) XE5 (UP2) fastdccXE5v593.7z 114.16 KB 82 times 2015-08-03 fastdcc 5.93 (unsupported) XE6 (UP1) fastdccXE6v593.7z 138.49 KB 86 times 2015-08-03 fastdcc 5.93 XE7 (UP1) fastdccXE7v593.7z 150.56 KB 185 times 2015-08-03 fastdcc 5.93 XE8 (UP1) fastdccXE8v593.7z 147.1 KB 324 times 2015-08-03

Changelog:

  • Added: Support for Windows 10
Categories: News, Blogs, and Tips

IDE Fix Pack dev-snapshot supports Windows 10 Insider Preview

Thu, 07/09/2015 - 11:12

On of the IDE Fix Pack patches (IDE.Startup.Fast) fails if it is used in the Windows 10 Insider Preview. The newest development snapshot now supports the Preview. The incompatibility was caused by Windows 10 Insider Preview using “int3” ($CC) instead of “nop” ($90) for code alignment. It looks like Mircosoft uses a kind of debug build. The patch now supports both opcodes so it should be fine if Microsoft should revert to “nop”.

Categories: News, Blogs, and Tips

PDFium Delphi VCL example control

Sat, 07/04/2015 - 12:05

I’ve uploaded the PDFium Delphi VCL control code that was sitting on my disk for 2 months to GitHub. It contains the DLL bindings, an abstraction layer and an example VCL control.

Categories: News, Blogs, and Tips

DLangExtensions legacy code base on GitHub

Mon, 06/29/2015 - 14:43

Due to many requests to get the source code of the DLangExtensions Delphi preprocessor, I decided to upload the code base, as it was in 2009 when the project was discontinued, to GitHub.

The project is still discontinued and not resumed. This means no support from me. Only the main project was migrated to Delphi 2009, the command line tools are still written in Delphi 2007 and may not compile at all.

A copy of the required CompileInterceptorW.dll that supports Delphi 2009-XE8, is in the repository. Newer DLLs can be extracted from DDevExtensions.

Categories: News, Blogs, and Tips

IDE Fix Pack 5.92 released

Sat, 05/16/2015 - 06:37

The new version 5.92 fixes a bug in the TStringList optimization that caused UniDAC’s designtime editor to crash. It also binds the Ctrl+Alt+Enter shortcut to the “Find References” action. The IDE’s original behavior is to toggle the shortcut between “Find References” and “Find Local References” in the action’s OnUpdate handler, depending on the ErrorInsight parser’s result. This mechanism was broken by IDE Fix Pack when it removed all ErrorInsight parser calls from the menu’s OnUpdate handlers to prevent its execution in the main thread, blocking the UI.
The new version 5.92 now binds Ctrl+Alt+Enter to “Find References” and introduces Shift+Ctrl+Alt+Enter for “Find Local References”. No shortcut toggling anymore.

Download:
Name IDE Version File Size Downloads Added IDE Fix Pack 5.93 2009 (UP4) IDEFixPack2009Reg593.7z 178.74 KB 454 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) 2010 (UP5) IDEFixPack2010Reg593.7z 174.78 KB 610 times 2015-08-03 IDE Fix Pack 5.93 XE (UP1) IDEFixPackXEReg593.7z 160.8 KB 277 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE2 (UP4+HF1) IDEFixPackXE2Reg593.7z 233.96 KB 261 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE3 (UP2) IDEFixPackXE3Reg593.7z 186.49 KB 222 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE4 (UP1) IDEFixPackXE4Reg593.7z 187.14 KB 161 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE5 (UP2) IDEFixPackXE5Reg593.7z 186.47 KB 281 times 2015-08-03 IDE Fix Pack 5.93 (unsupported) XE6 (UP1) IDEFixPackXE6Reg593.7z 304.67 KB 291 times 2015-08-03 IDE Fix Pack 5.93 XE7 (UP1) IDEFixPackXE7Reg593.7z 318.33 KB 758 times 2015-08-03 IDE Fix Pack 5.93 XE8 (UP1) IDEFixPackXE8Reg593.7z 312.48 KB 1281 times 2015-08-03

Download (fastdcc):
Name IDE Version File Size Downloads Added fastdcc 5.93 2009 (UP4) fastdcc2009v593.7z 76.52 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) 2010 (UP5) fastdcc2010v593.7z 80.62 KB 130 times 2015-08-03 fastdcc 5.93 XE (UP1) fastdccXEv593.7z 82.5 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) XE2 (UP4+HF1) fastdccXE2v593.7z 103.83 KB 93 times 2015-08-03 fastdcc 5.93 (unsupported) XE3 (UP2) fastdccXE3v593.7z 118.1 KB 78 times 2015-08-03 fastdcc 5.93 (unsupported) XE4 (UP1) fastdccXE4v593.7z 112.86 KB 61 times 2015-08-03 fastdcc 5.93 (unsupported) XE5 (UP2) fastdccXE5v593.7z 114.16 KB 82 times 2015-08-03 fastdcc 5.93 (unsupported) XE6 (UP1) fastdccXE6v593.7z 138.49 KB 86 times 2015-08-03 fastdcc 5.93 XE7 (UP1) fastdccXE7v593.7z 150.56 KB 185 times 2015-08-03 fastdcc 5.93 XE8 (UP1) fastdccXE8v593.7z 147.1 KB 324 times 2015-08-03

Changelog:

  • Fixed: TStringList.IndexOfName optimization broke UniDAC’s designtime editor
  • Fixed: “Find References” shortcut was assigned to “Find Local References” unless the search menu was opened
  • Added: “Find Local References” shortcut Shift+Ctrl+Alt+Enter
Categories: News, Blogs, and Tips