- Added main menu.
- Added build mode: “Continue build”. If build process stopped with error, you can resolve problem and continue to compile only packages that were not built.
- Added search (Ctrl+F) for packages tree and installation log.
- Added: “Recently opened files” support.
- Added: in /debug mode, print packages list in the same order they will be compiled.
- Fixed: Access Violation on start on the computer where Delphi XE2/Pulsar installed.
- New: If build process stopped with error, ProgressBar color will be changed to red.
- Fixed: in packages tree selected record is lost on refresh.
- Display time in Installation Log
- New: in packages tree option Check all required packages.
- Build settings Dialog:
- Show Warning if checkbox Clear out dirs is checked, but output dir for BPL files is default for IDE.
- Added Hints
- Event handlers for buttons near Edits
- In Directories Tab, button Save to profile was added to save settings to current profile. (in case of need to change settings without running build).
- Fixed: Enviroinment and custom variables were processed with errors when used in relative paths.
- Fixed: no need to click in Log to enable scrolling.
- Added: Remove files from Recycle Bin in packages tree.
- Changed: settings .ini filename does not depends on the name of exe file. Always used: LazyDelphiBuilderGUI.ini.
Note: to compile FireMonkey project with Pulsar Beta, there should be defined dcc param –default-namespace:system in Build Settings dialog.
Download in downloads section or here.
Created Redmine project on free Redmine hosting HostedRedmine. I am not sure that I will use it frequently (I’m just too lazy to register Issues for every item from my TODO list
), but I’ll try.
You can find it here: http://www.hostedredmine.com/projects/lazy/
p.s. registration is needed to register bug, so if you don’t want to register, mail me, or report bug in comments – I will register it by myself.
It’s funny (and a little bit upsetting) when during the job interview I hear a question "Why do you want to work for us?", before I actually get a chance to know details about the job I’m applying to.
The original post in Russian can be found here: Переход с RxLib на JVCL в деталях. Список пропавших в JVCL свойств и методов Rx-компонентов.
My previous post doesn’t provide full information about differences between RxLib and JVCL components. So here is full list of all public and published properties and methods, which are missing in JVCL-components. For every component.
Ante Scriptum: I definitely like new RTTI in Delphi 2010. =)
I created small program that compares properties and methods for each component using Delphi 2010 RTTI.
Program has 3 units:
- uRxJvComponents.pas – contains list of Rx and Jv classes. Creating this list was the only unpleasant part of this work.
- uCompareClasses.pas – class that compares Rx and JVCL components.
- RxJvCompareMainFormU.pas – main form. Can run comparison and show results in text/html format.
You can download: Rx and Jvcl Compare util.zip here
Remark: program can be compiled in Delphi 2010+. To compile you need to install both RxLib and JVCL.
Read more…
This is translation of my post in Russian: Переход с RxLib на JVCL. Какие изменения? Original post was published in February 2010.
This article is written for those developers who still uses RxLib library in non-unicode Delphi and is thinking about going to Unicode.
In year 2002 RxLib was officially merged with Jedi Visual Component Library. JVCL has special tool for rapid conversion of all Rx components, functions and units to according JVCL code. See previous post Jvcl Dev Tools: JvclConvert.
Why not to stay with RxLib, and move to JVCL?
- JVCL is maintained. Bugs are fixed. You’ll always have JVCL version with newest Delphi IDE support.
- RxLib is abandoned. There are few enthusiasts who try to release patches, but they are not coordinated. Most of existing RxLib versions for Delphi 2009, 2010 and XE has its own unique code changes. Most of them have bugs either. Even version that was released in “official” RxLib project on SourceForge has bugs.
- JVCL supports Windows themes, RxLib is not.
This post contains list of all Rx components with according Jvcl component, package name, and short list of differences. You can find more detailed list in the next article “From RxLib to JVCL: details”.
Read more…
Do you need to work with the same code in Delphi 7 and Delphi 2010 in parallel? Need to delete some properties from dfm-files? Or maybe you want to replace all Rx-components and functions with JVCL code? Or maybe you want to create dpk-files for all existing Delphi versions with a single click?
If you answered yes at least one time, then you might be interested to know about JVCL developer tools.
JVCL (Jedi Visual Component Library) contains few great utilities, that can help to improve component development process. These utilities located in JVCL\devtools folder. Most of utilities described in file devtools.txt. This post adds few comments to those descriptions.
Most interesting utility is JVCLConvert, which allows easily converting project from RxLib to JVCL. Developers of component libraries may be interested in PackagesGenerator tool, which can create project files (dpr and dpk) and project group files for different Delphi versions.
To compile utilities, file CompileDevTools.bat should be run. However, if you have several Delphi versions installed on your PC, it’s better to compile utilities manually in IDE. You can open all utilities projects via devtools.bpg project group.
I ran into situation, when form processed with DFMCleaner couldn’t be opened in Delphi 6. I think it happened (I didn’t research for actual reasons), because DFMCleaner was compiled using Delphi 2010 compiler when via CompileDevTools.bat. After I recompiled DFMCleaner manually in Delphi 6, it worked fine.
Warning: before using any of tools, make backup copy of your sources. Or better use version control system (f.e. Subversion).
Read more…

Lazy Delphi Builder 1.4.0.175 is out.
Funny stuff: everyone, who seen poster from the previous post asked me “why the gallows?”. Indeed it was the crane pulling delphi work up.
Few words on project. LazyDB was designed as instrument to simplify project/components compilation. It scans folders, find all source files. Asks you what do you want to compile. Let you specify build settings and output folders. It will compile everything, and even copy all resource files to one folder. Then it will save your settings to disk and allow to run them later, even from console. It can replace path parts with variables. It can use enviroinment variables: system, Delphi, internal. It can override variable values. All settings are stored in text files (ini format).
During last week, I was working on new version, spending several hours per day. I polished console version. I added “fast compile just for test” mode. And I implemented variable value define for console version. Got no time to work on documentation, although.
Changes:
- Console version: All errors should be handled properly now. In case of error in proram, %ERRORLEVEL% will be set to 1. Improved error description.
- Added build modes. New build mode: TestBuild. It allows to quickly run build process with all output files created in Temporary directory (%TEMP%). These files will be deleted on Lazy Delphi Builder exit. This mode allows to ensure, that current config can be compiled. For console version there is new cmd switch /tb. For GUI version there is a button in Build settings dialog. Settings for TestBuild mode will not be saved in profile.
- Added verification of command line switches on program start. If LazyDB will not recognize any param it will show error message (console version will stop). But you can bypass that check by specifying /by cmd parameter.
- Now paths shortening (replace absolute paths with relative, and long file/folder names with short) is enabled only if Delphi version prior to 2005 is used. Also, added cmd param /sp – (Short Paths) that allows to enable/disable use of short paths for any Delphi version.
- Fixed: don’t work buttons in Build settings dialog.
- Fixed: Scan New Folder.. error in packages tree for virtual folders “Resources”, “Sources”.
- Fixed: hanging when open “Browse for Folder” dialog.
- Packages tree: show Shell Context menu for any file or folder.
- Packages tree: fixed errors in popup menu for items in Recycle Bin.
- For /verbose and /debug modes, full list of specified command line parameters (and values) is displayed now. Added to ease debugging when program run from scripts.
- Console version: updated /help command output.
- Console version: Allow define/redefine environment options from command line using /ev <EnvVarName=Value[;EnvVar2=Valu2]> switch. It can override variables stored in Lazy Profile, Delphi environment variables, and also system environment variables in paths. Works only for variables, that were defined in format $(EnvVar).
- Still not fixed: incorrect .dproj files parsing. Waiting for a fix from JCL team.
Plans.
- Simplify workflow
- Documentation writing

Lazy Delphi Builder 1.3.0.163 arrived.
Changes:
- Added Delphi XE support.
- Fixed bug that allowed randomly to get compilation error without any details in error log.
- More debug messages in /debug mode.
- Check that dcc32.exe is functional (not trial) before compile. In earlier versions, Lazy Delphi Builder did nothing, displaying text: Compiled success.
- Build settings dialog completely reworked. Now with wizard. Before running build process it displays short summary with full description of jobs to be done (which folders will be used, what will be compiled, what not).
- Fixed: “Ignore IDE Paths” value was not saved.
- Files tree: Scan new folder action now changes $(variable) to actual folder.
- Debug output text is displayed in different color (gray in GUI, cyan in console).
- Additional log in main window is now hidden.
- Changed icon and logo.
- Added option to ignore settings from .dproj, .bdsproj, .dof files. (.cfg were ignored in all versions).
- Known issue: Lazy Delphi Builder incorrectly parses .dproj files. Settings for every configuration but the Base are ignored.
Development plan
- work on manual
- allow rapid build to temporary folder (to check, that compilation will be successful)
- maybe rework algorythm to compile first in temporary folder, and only then copy to destionation Output folders.
- increase amount of checks executed before build
- maybe allow to generate .bat that will compile everything
- command line parameters check
- test that console version returns error codes
Need help
- In testing.
- Writing documentation.
- Need information on how to add support of CBuilder. Output and input files descriptions. How do components installed to CBuilder. What’s the difference from Delphi.
Awaken by the spring, I’m working on new version of Lazy Delphi Builder. I fixed serious bug which led to compilation failure without any error message. Now working on Delphi XE support.
Curious thing is that, Delphi XE has two new system Enviroinment variables (all hail to crossplatform compilation): $(BDSLIB) and $(platform), which aren’t documented, and seems to be unsupported by dcc32.exe. Version will be ready when I fix these variables substitution. And after some testing, new version will be deployed.
In parallel, I’m working on russian/english documentation. English manual will take more time.
If you have any ideas, suggestions on improvement, feel free to report here.
Recent Comments