if exist PostBuild.bat call PostBuild.bat $(Platform) $(Config) $(OutputDir)
And then the PostBuild.bat script calls a Python script so that I can write my scripts in a real language.
I actually impose the build actions in a shared option set that I reference from all of my projects. That way I enforce consistency and predictability.
I know others use tools like FinalBuilder but building is so important that I feel it’s worth my effort in rolling my own tooling.
– David Heffernan Feb 14 at 20:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Yes, SQL Parameter names will probably less than 1000 characters, but then the 1000literal should be a constant with a meaningful name, and the '@' literal should be too. Read the rest of this entry »
One more of the “Missed Schedule” series, this time it was originally scheduled for October 1st, (2013 that is).
Delphi XE2 and up introduced the FrameworkType and FormType elements in the .dproj files to distinguish between VCL and different flavours of FireMonkey.
Actually, Delphi XE1 already had the value None for FrameworkType, so some cross-platform changes trickled into the Delphi builds early.
There is no documentation about the values in the .dproj files. the only places I could find were these about FrameworkType in combination with [Wayback/Archive] Actions:
Defines whether an action is created for the VCL or FireMonkey (FMX) framework. The default of this parameter is VCL (for compatibility with legacy applications).
This parameter is used to avoid situations when VCL actions are used in FireMonkey applications and inversely; this can lead to a serious increase in an application’s size and to execution errors, for example, calling of Windows API under MacOS.
Sometimes a naming convention has been in place for quite a while, then new functionality breaks it.
One of the naming conventions in the JVCL is that all Delphi design-time packages follow the naming pattern *Design##.bpl
Until a package with run-time design functionality came along named (for Delphi XE3) as JvRuntimeDesign170.bpl. The actual design-time package for that is JvRuntimeDesignDesign170.bpl (:
I guess some of the reporting tools bumped into the same thing when they added run-time design support as well.
Each version, Delphi gets more features, and grows bigger.
Especially in testing environments (where you want to have a cut-down base machine you can clone from), it is wise to cut down on the installation size.
A few directories you might want to consider compressing for your Delphi installation:
C:\Users\All Users\{*}
The directories with GUID names contain the installer cache. You can ditch the whole installer cache if you keep ISO images of all installations. I prefer just to compress these directories.
Compressing usually saves 50% of the storage there, which can count for 5+ gigabyte of savings for the newest Delphi version.
C:\Users\Public\Documents\RAD Studio
Contains (among others) the help files and SVN examples, and (for the most recent version) the Platforms SDKs.
Saving is usually a couple of 100 megabytes for less recent Delphi versions until about 1 gigabyte for the most recent.
C:\Program Files (x86)\Embarcadero\RAD Studio\#.0\lib
This contains all the precompiled files. Since they are readonly in nature, it pays of compressing them, usually saving 50% or more.
Saves 5+ gigabytes for the most recent Delphi version.
If you an error like below when compiling Delphi XE5 .dproj files using msbuild … then note the documentation for Debug information (Delphi) – RAD Studio. has not been updated yet as it still lists the values {$D+} or {$D-}{$DEBUGINFO ON} or {$DEBUGINFO OFF}.
Good that stackoverflow user Anton Zhuchkov found out the cause himself: his answer indicates the Precision Control (and rounding) part of the FPU state got hosed by wrongly initializing the Direct3D device.
I edited his answer with some extra links to documentation.
Otherwise, without that flag, all floating point operations are performed with single precision. As the TDateTime is a simple Double, and Now() functions is consist of simple addition of date value to time value, it all get messed up by DirectX “smart” override.
Still a C# 4.0 / .NET 4 feature that I need to investigate more deeply: ExpandoObject, partially because I had very bad memories of Variant support in Delphi.
So here are a few links.
First of all: since VB.NET already does late binding with the Object keyword, you cannot use ExpandoObject with Strict On in VB.NET 10.0 and up:
Those articles do not contain two things I had’t found about yet though that are important when you do RTTI using NEXTGEN in Delphi XE4: Read the rest of this entry »
Namespace ” is not available to be referenced in this schema.
Visual Studio (which I normally use for editing XSD) would only throw this error on these elements: <xsd:element ...>
So it would not throw them on nodes using the empty namespace.
That was really confusing!