The DDevExtensions 2.83 and the DFMCheck 1.5 are re-released for RAD Studio 10 Seattle. No changes or new features except for the RAD Studio 10 Seattle support are included, so the version number doesn’t change. It is a simple recompile.
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:
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.
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.
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)
- Added: Support for Windows 10
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”.
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.
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.
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.
- 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
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.
- 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:
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.
- 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: