Andy’s Blog and Tools

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

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.92 2009 (UP4) IDEFixPack2009Reg592.7z 178.64 KB 1094 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) 2010 (UP5) IDEFixPack2010Reg592.7z 174.62 KB 1610 times 2015-05-16 IDE Fix Pack 5.92 XE (UP1) IDEFixPackXEReg592.7z 160.94 KB 620 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE2 (UP4+HF1 IDEFixPackXE2Reg592.7z 233.92 KB 579 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE3 (UP2) IDEFixPackXE3Reg592.7z 186.52 KB 378 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE4 (UP1) IDEFixPackXE4Reg592.7z 187.13 KB 314 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE5 (UP2) IDEFixPackXE5Reg592.7z 186.26 KB 498 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE6 (UP1) IDEFixPackXE6Reg592.7z 304.41 KB 466 times 2015-05-16 IDE Fix Pack 5.92 XE7 (UP1) IDEFixPackXE7Reg592.7z 318.54 KB 1583 times 2015-05-16 IDE Fix Pack 5.92 XE8 IDEFixPackXE8Reg592.7z 311.5 KB 2230 times 2015-05-16

Download (fastdcc):

Name IDE Version File Size Downloads Added fastdcc 5.92 2009 (UP4) fastdcc2009v592.7z 76.36 KB 184 times 2015-05-16 fastdcc 5.92 (unsupported) 2010 (UP5) fastdcc2010v592.7z 80.6 KB 280 times 2015-05-16 fastdcc 5.92 XE (UP1) fastdccXEv592.7z 82.47 KB 205 times 2015-05-16 fastdcc 5.92 (unsupported) XE2 (UP4+HF1) fastdccXE2v592.7z 103.87 KB 185 times 2015-05-16 fastdcc 5.92 (unsupported) XE3 (UP2) fastdccXE3v592.7z 118.14 KB 151 times 2015-05-16 fastdcc 5.92 (unsupported) XE4 (UP1) fastdccXE4v592.7z 112.92 KB 145 times 2015-05-16 fastdcc 5.92 (unsupported) XE5 (UP2) fastdccXE5v592.7z 114.11 KB 177 times 2015-05-16 fastdcc 5.92 (unsupported) XE6 (UP1) fastdccXE6v592.7z 138.34 KB 193 times 2015-05-16 fastdcc 5.92 XE7 (UP1) fastdccXE7v592.7z 150.38 KB 377 times 2015-05-16 fastdcc 5.92 XE8 fastdccXE8v592.7z 146.87 KB 641 times 2015-05-16

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

IDE Fix Pack 5.91 – Bugfix release

Thu, 04/23/2015 - 11:35

There was a bug in the TStringList.IndexOf performance optimization that didn’t take into account that DB.TFlatList overrides GetCount and implements lacy loading. The optimization directly accessed TStringList.FCount which was zero because GetCount wasn’t called. This bug appeared when you tried to open a DataSet in the IDE.

Another problem was that the fastdcc*.exe files in the XE7 and XE8 fastdcc 7zip file were from a pre-XE3 version and used “fastdccXx.dll” instead of “fastdccXx.dllx” (that is necessary since XE3’s copy protection changes). This prevented the CompilerSpeedPack to be injected into the compiler’s process.

Changelog:

  • Fixed: IDEFixPack didn’t take into account that DB.TFlatList uses late loading through GetCount
  • Fixed: fastdcc32/64/aarm in XE7 and XE8 didn’t load the CompilerSpeedPack into the compiler’s process

IDE Fix Pack download:

Name IDE Version File Size Downloads Added IDE Fix Pack 5.92 2009 (UP4) IDEFixPack2009Reg592.7z 178.64 KB 1094 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) 2010 (UP5) IDEFixPack2010Reg592.7z 174.62 KB 1610 times 2015-05-16 IDE Fix Pack 5.92 XE (UP1) IDEFixPackXEReg592.7z 160.94 KB 620 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE2 (UP4+HF1 IDEFixPackXE2Reg592.7z 233.92 KB 579 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE3 (UP2) IDEFixPackXE3Reg592.7z 186.52 KB 378 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE4 (UP1) IDEFixPackXE4Reg592.7z 187.13 KB 314 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE5 (UP2) IDEFixPackXE5Reg592.7z 186.26 KB 498 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE6 (UP1) IDEFixPackXE6Reg592.7z 304.41 KB 466 times 2015-05-16 IDE Fix Pack 5.92 XE7 (UP1) IDEFixPackXE7Reg592.7z 318.54 KB 1583 times 2015-05-16 IDE Fix Pack 5.92 XE8 IDEFixPackXE8Reg592.7z 311.5 KB 2230 times 2015-05-16

fastdcc download:

Name IDE Version File Size Downloads Added fastdcc 5.92 2009 (UP4) fastdcc2009v592.7z 76.36 KB 184 times 2015-05-16 fastdcc 5.92 (unsupported) 2010 (UP5) fastdcc2010v592.7z 80.6 KB 280 times 2015-05-16 fastdcc 5.92 XE (UP1) fastdccXEv592.7z 82.47 KB 205 times 2015-05-16 fastdcc 5.92 (unsupported) XE2 (UP4+HF1) fastdccXE2v592.7z 103.87 KB 185 times 2015-05-16 fastdcc 5.92 (unsupported) XE3 (UP2) fastdccXE3v592.7z 118.14 KB 151 times 2015-05-16 fastdcc 5.92 (unsupported) XE4 (UP1) fastdccXE4v592.7z 112.92 KB 145 times 2015-05-16 fastdcc 5.92 (unsupported) XE5 (UP2) fastdccXE5v592.7z 114.11 KB 177 times 2015-05-16 fastdcc 5.92 (unsupported) XE6 (UP1) fastdccXE6v592.7z 138.34 KB 193 times 2015-05-16 fastdcc 5.92 XE7 (UP1) fastdccXE7v592.7z 150.38 KB 377 times 2015-05-16 fastdcc 5.92 XE8 fastdccXE8v592.7z 146.87 KB 641 times 2015-05-16
Categories: News, Blogs, and Tips

IDE Fix Pack 5.9 for RAD Studio 2009-XE8

Tue, 04/21/2015 - 11:29

The new IDE Fix Pack 5.9 adds support for RAD Studio XE8. It also fixes the long standing Code Insight bug QC 71270 (also 76338 and 76379) where the popup listbox doesn’t always show items with a double underscore or a “_Z”.

With XE8 the IDE comes with the Castalia IDE plugin. Unfortunately this causes the IDE to start a lot slower. IDE Fix Pack 5.9 addresses this performance bottleneck as you can see here.

Changelog:

  • Fixed: FieldAddress optimization could fail if a published field name was also used in an ancestor
  • Added: XE8 support
  • Added: TStringList.IndexOfName optimization
  • Added: Castalia XE8 startup optimization (XE8)
  • Added: Fix for QC 71270, 76338 and 76379. “CodeInsight doesn’t like the underscore”.

IDE Fix Pack download:

Name IDE Version File Size Downloads Added IDE Fix Pack 5.92 2009 (UP4) IDEFixPack2009Reg592.7z 178.64 KB 1094 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) 2010 (UP5) IDEFixPack2010Reg592.7z 174.62 KB 1610 times 2015-05-16 IDE Fix Pack 5.92 XE (UP1) IDEFixPackXEReg592.7z 160.94 KB 620 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE2 (UP4+HF1 IDEFixPackXE2Reg592.7z 233.92 KB 579 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE3 (UP2) IDEFixPackXE3Reg592.7z 186.52 KB 378 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE4 (UP1) IDEFixPackXE4Reg592.7z 187.13 KB 314 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE5 (UP2) IDEFixPackXE5Reg592.7z 186.26 KB 498 times 2015-05-16 IDE Fix Pack 5.92 (unsupported) XE6 (UP1) IDEFixPackXE6Reg592.7z 304.41 KB 466 times 2015-05-16 IDE Fix Pack 5.92 XE7 (UP1) IDEFixPackXE7Reg592.7z 318.54 KB 1583 times 2015-05-16 IDE Fix Pack 5.92 XE8 IDEFixPackXE8Reg592.7z 311.5 KB 2230 times 2015-05-16

fastdcc download:

Name IDE Version File Size Downloads Added fastdcc 5.92 2009 (UP4) fastdcc2009v592.7z 76.36 KB 184 times 2015-05-16 fastdcc 5.92 (unsupported) 2010 (UP5) fastdcc2010v592.7z 80.6 KB 280 times 2015-05-16 fastdcc 5.92 XE (UP1) fastdccXEv592.7z 82.47 KB 205 times 2015-05-16 fastdcc 5.92 (unsupported) XE2 (UP4+HF1) fastdccXE2v592.7z 103.87 KB 185 times 2015-05-16 fastdcc 5.92 (unsupported) XE3 (UP2) fastdccXE3v592.7z 118.14 KB 151 times 2015-05-16 fastdcc 5.92 (unsupported) XE4 (UP1) fastdccXE4v592.7z 112.92 KB 145 times 2015-05-16 fastdcc 5.92 (unsupported) XE5 (UP2) fastdccXE5v592.7z 114.11 KB 177 times 2015-05-16 fastdcc 5.92 (unsupported) XE6 (UP1) fastdccXE6v592.7z 138.34 KB 193 times 2015-05-16 fastdcc 5.92 XE7 (UP1) fastdccXE7v592.7z 150.38 KB 377 times 2015-05-16 fastdcc 5.92 XE8 fastdccXE8v592.7z 146.87 KB 641 times 2015-05-16
Categories: News, Blogs, and Tips

DDevExtensions 2.83 for XE8 released

Tue, 04/21/2015 - 10:11

The DDevExtensions 2.83 IDE plugin is now available for RAD Studio XE8.

The only change compared to 2.82 is that XE8 is supported.

DDevExtensions download:

Name IDE Version File Size Downloads Added DDevExtensions 1.61 5-2007 DDevExtensions161Setup.zip 734.07 KB 15768 times 2009-01-10 DDevExtensions 2.8 Features PDF DDevExtensionsFeatures.pdf 602.92 KB 5616 times 2014-12-27 DDevExtensions 2.4 7, 2007 DDevExtensions24Setup7_2007.zip 535.41 KB 7399 times 2011-07-25 DDevExtensions 2.6 (legacy) XE2+UP3 DDevExtensionsSetup26.zip 800.68 KB 599 times 2013-11-28 DDevExtensions 2.83 2009-XE8 DDevExtensions283.7z 991.84 KB 2794 times 2015-04-21

Categories: News, Blogs, and Tips

IDE Fix Pack XE8 preview – Castalia’s slow initialization

Sat, 04/11/2015 - 03:51

A short screen capture video of XE8’s splash screen. It shows how fast the Castalia IDE plugin starts if the upcoming IDE Fix Pack for XE8 is installed.

Categories: News, Blogs, and Tips

Byte-Strings for XE8’s mobile compilers

Tue, 04/07/2015 - 13:21

Delphi’s NextGen compiler (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 731 times 2013-10-23 System.ByteStrings XE5 UP2 only XE5Up2ByteStrings.7z 2.85 KB 653 times 2013-12-20 System.ByteStrings XE6 XE6ByteStrings.7z 2.89 KB 517 times 2014-04-16 System.ByteStrings XE7 XE7ByteStrings.7z 2.89 KB 485 times 2015-01-20 System.ByteStrings XE8 XE8ByteStrings.7z 3.69 KB 422 times 2015-04-16
Categories: News, Blogs, and Tips

XE8 – Get rid of the wrong font size and blue toolbar

Tue, 04/07/2015 - 12:24

With the new RAD Studio XE8, Embarcadero thought that Delphi looked too modern and the old CDE/Motif Java Swing style would look much more appropriate. XE8 also increased the font size of the main form including the menu bar, structure pane, object inspector, project manager, tool palette, call stack, …

Thanks to Daniel Wolf’s German blog post, I was able to restore the XE7 style. Unfortunately there is no simple configuration dialog in the IDE, so you have to make some changes to the registry by hand or download Daniel’s “wuppdi·StylerXE8” tool.

  1. Quit XE8
  2. Create a new file XE7StyleForXE8.reg file and paste the following content into it Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\ModernTheme] "FontName"="Segoe UI" "FontSize"=dword:00000009 "MainToolBarColor"="clBtnFace"
  3. Save the file and double click it so that the registry changes are applied to XE8.
  4. Start XE8

The IDE uses the following default values if the “ModernTheme” registry key doesn’t exist.

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\ModernTheme] "FontName"="Segoe UI" "FontSize"=dword:0000000a "MainToolBarColor"="clGradientActiveCaption"

This is also described in the DocWiki.

Before:

After:

Categories: News, Blogs, and Tips