Archive for the ‘Delphi’ Category
Posted by jpluimers on 2015/04/21
Especially when using Delphi 2007 on Windows x64 system (8.x, 7, Vista, 2012 Server, 2008 Server, …), the Delphi specific .Targets files used by msbuild are simply installed to the wrong location.
A better warning for this is in my BeSharp.net repository: Run-Dependend-rsvars-From-Path.bat thanks to David Millington who wrote this:
If you copy
- Borland.Common.Targets
- Borland.Cpp.Targets
- Borland.Delphi.Targets
- Borland.Group.Targets
from
- %windir%\Microsoft.NET\Framework\v2.0.50727
to
- %windir%\Microsoft.NET\Framework64\v2.0.50727
then building via the command line works.
The rsvars.bat file is correct.
Note that my batch file checks for all target file sets:
Delphi 2007:
set requiredTargets=Borland.Common.Targets Borland.Cpp.Targets Borland.Delphi.Targets Borland.Group.Targets
Delphi 2009 and up:
set requiredTargets=CodeGear.Common.Targets CodeGear.Cpp.Targets CodeGear.Delphi.Targets CodeGear.Deployment.Targets CodeGear.Group.Targets CodeGear.Idl.Targets CodeGear.Profiles.Targets
if %bdsVersion%==8 set requiredTargets=CodeGear.Common.Targets CodeGear.Cpp.Targets CodeGear.Delphi.Targets CodeGear.Group.Targets CodeGear.Idl.Targets
if %bdsVersion%==13 set requiredTargets=CodeGear.Common.Targets CodeGear.Cpp.Targets CodeGear.Delphi.Targets CodeGear.Deployment.Targets CodeGear.Group.Targets CodeGear.Profiles.Targets
–jeroen
via [WayBack] QualityCentral: Project compiles fine under IDE, but not using MSBuild.
Posted in Delphi, Delphi 2007, Delphi 2009, Delphi 2010, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, QC, Software Development | 3 Comments »
Posted by jpluimers on 2015/04/15
- It has CHM help. Yay! The best new feature in XE8 can be seen by pressing F1. Oh, how did I miss a….
- GetIt is cool. Not NuGet level yet, but a good start. Is there any way to change the default GetIt URL for the Rest API….
- App Analytics is nice. Finally someone listened to Why Software Sucks by David S Platt and introduced some measurement.
- You need to pay for hotfixes. From the FAQ: Can I obtain updates and hotfixes without a subscription? An….
- This is causing some stir. Hello! I tried to add a new XE8 to the cart (I don’t actually have the money….
- Still ambivalent to VCS support in the IDE, but there are now Git Integration enhancements in RAD Studio XE8.
- Always install the full RAD studio; installing only limited personalities forgets a file: Do you have lib\iOSDevice64\Release\libsqlite.a in your XE8 installation? Or….
- Generics and arrays are slower. FireDAC has some incompatibilities: XE8 Findings Found some minor tweaks in XE8. Will add to this post as I find….
- Sort of transcript of the XE8 webinar: The Embarcadero webinar for what’s new in XE8 will start in about a minute.….
- Maybe Delphi apps become less design centric and easier to maintain:
- F0248 error sometimes means you wrote invalid code: Porting from XE7 to XE8: Internal Compiler Error F2048 using a interface in a….
- DBField optimisations can make your data centric apps a lot faster: Happy about DBField optimization in XE8 … This leads to a 25% performance….
{$IF defined(MSWINDOWS) and not defined(NEXTGEN)} – XE8 first impressions Installed RadStudio XE8 (Pro) last night and these are….
- If they’d documented the #1 as being Unicode U+0001 START OF HEADING it would have made this much more clear: are you kidding me ? for years Embarcadero says that String is not a place to….
- Spring4D 1.2 will introduce the WeakReference type that does all that. Igor Belyh – Google+.
- Better disable Castalia for now. Anyone knows how to disable castalia in XE8? A lot of errors, IDE becomes….
- wuppdi·StylerXE8 tool for XE8 – Get rid of the wrong font size and blue toolbar | Andy’s Blog and Tools.
- DCU patches to get Byte-Strings for XE8’s mobile compilers | Andy’s Blog and Tools.
- TerraData connection is called TData. Good that FireDAC and IBX support ChangeViews. Database updates in Delphi XE8 & C++ Builder XE8.
- Nice Blog post “What’s New in Delphi XE8 for VCL developers” at….
- Not all “Work-as-Expected” resolutions actually fix the problem: Can someone please check if following issues still exist in XE8. JSON….
- No torrents, though publishing these with good SHA-1 hashes could make downloads a lot faster. Delphi Insider: Download Links for Delphi XE8, RAD Studio XE8 and C++Builder XE8.
- FMX Application termination doesn’t fully terminate… I’ve just noticed that IFMXApplicationService.Terminate doesn’t….
- Interface and Generic Class Helper support for Delphi are still wanted.
- Few memory leaks fixed when compiling large projects so the people having Very very annoying, XE7 is unusable! Out of memory, exceptions, very slow, etc.… need to wait longer.
- Castalia in XE8 does less than the full version for XE7 so What exactly are features in Castalia better than those in CnPack? but be careful: in XE8, CnPack 1.0.6.705 can bite Castalia: I have installed XE8 Trial ver. When starting XE8 I get an AV in….
- XE8 fixes the const string folding introduced in XE7: Is it already known that the XE7 Delphi compiler doesn’t collapse duplicate….
- REST.JSON (JsonObject) now breaks on Generic Lists with an
EConversionError ‘Internal: Type tkPointer is not currently supported’: it seems in the DataSnap XE 8 transfer of TList class crashed, the problem….
Components and tools that work with XE8:
Appmethod
--jeroen
Posted in Castalia, Delphi, Delphi XE8, Development, Software Development | Tagged: 1, Delphi, UniDAC, XE8 | 3 Comments »
Posted by jpluimers on 2015/04/14
A few people asked, so below is a picture of just a piece of my books closet.
From left to right:
- Object Professional 1.0 manuals volume 1-3
- BTree Filer 5.0 manual
- Turbo Professional manual (from 1985!)
- Borland Paradox Engine 3.0 manuals
- Crystal Reports Developers Edition
- Borland Open Architecture Handbook for Pascal
- Turbo Pascal 5.5 OOP Guide
- Turbo Pascal 5.5 Reference Guide
- Turbo Pascal 5.5 User’s Guide
- Turbo Pascal Quick Reference
- Programming with Turbo Vision
This is only the front-left portion of one shelve. Most shelves are two deep and about 4 times as wide as what you see here (:
I have floppies somewhere in my archive too. Need to dig them up some day.
–jeroen
via:
Read the rest of this entry »
Posted in Delphi, Delphi XE8, Development, History, Pascal, Software Development, Turbo Pascal | 6 Comments »
Posted by jpluimers on 2015/04/09
A while ago I wrote about Delphi XE7 is out with version 21.0.17017.3725; Spring4D is almost ready, now I can repeat parts of it for XE8.
The download links for Delphi XE8, C++Builder XE8 and RAD Studio XE8 are there: ftpd and altd. A whopping 7,217,184,768 bytes (compare that to XE7 update 1 at 5,649,917,952 bytes: almost 30% increase) that has been seeded a few days ago with the version time stamped at the end of last month (like xe7), here is the version number: 22.0.19027.8951.
Before installing, note that in addition to the below documentation links:
Be sure to have at least 70 gigabytes of free disk space before you attempt to install.
This in addition to the almost 7 GiB ISO file (:
The download is fast as altd is on akamai: the 7 GiB downloaded in about 16 minutes. Google can do the math.
XE8 doc links
Spring4D
On the Spring4D side, Stefan and Honza have added XE8 support, so a new release of that can be near.
–jeroen
Posted in Delphi, Delphi XE8, Development, Software Development | 9 Comments »
Posted by jpluimers on 2015/04/07
During any software life cycle, you will want to phase out some code, and most likely want to mark code to be phased out in the future.
So here are two examples on how to do that in C# and in Delphi that just shows the effects of obsoleting/deprecating code.
Read the rest of this entry »
Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development | 6 Comments »
Posted by jpluimers on 2015/04/01
A lot of the stuff on the Embarcadero docwiki hurts. For instance most of the REST stuff (I’m not calling it documentation) is just generated scaffolding. Like REST.Json.TJson.
But the TRESTResponseDataSetAdapter has some amazing documenation. About TComponent that is:
TComponent is the common ancestor of all component classes.
TComponent is the base class for all components. Components are persistent objects that have the following capabilities:
IDE integration. The ability to appear on an IDE palette and be manipulated in a Form Designer.
Ownership. The ability to manage other components. If component A owns component B, then A is responsible for destroying B when A is destroyed.
Streaming and filing. Enhancements of the persistence features inherited from TPersistent.
…
To assist the doc team: this is a query for all pages containing “TComponent is the common ancestor of all component classes.”. Feel free to [WayBack] QC or QP it.
–jeroen
via: REST.Response.Adapter.TRESTResponseDataSetAdapter – RAD Studio API Documentation.
Posted in Delphi, Development, Fun, QC, Software Development | 2 Comments »
Posted by jpluimers on 2015/03/30
For anyone keeping up with Pascal history, these uploads are new:
–jeroen
via: Index of /pdf/pascalNews.
Posted in Apple Pascal, BitSavers.org, DEC Pascal, Delphi, Development, History, IBM Pascal, Pascal, Software Development, Standard Pascal, Turbo Pascal, UCSD Pascal | Leave a Comment »
Posted by jpluimers on 2015/03/28
New Delphi related RSS feed: Delphi Pipe “A collection of Delphi related RSS streams” which works perfectly fine in Feedly.
You can get the source through http://pipes.yahoo.com/delphipipe/thepipe
The source is sooo simple, that I now definitely need to make some time to really do some Yahoo Pipes research:
Since Delphi Feeds doesn’t list my blog any more and generally isn’t very fast in responding to requests for adding or removing feeds, I have created my own aggregated feed: Delphi Pipe. It’s done with Yahoo Pipes and currently contains the following feeds (most important first ;-) ):
Oh and thanks Thomas Mueller for listing my feed second (;
Bug him on G+ to get added.
Later he showed how easy it is to convert your G+ stream to an RSS feed: Using Google+ as input for Yahoo Pipes.
Then how to read a CSV file (which is hosted on his site) as input to the RSS generation.
–jeroen
via: Delphi Pipe » twm’s blog.
Posted in Delphi, Development, Software Development | 8 Comments »
Posted by jpluimers on 2015/03/24
Paul Thornton posted a nice question on G+ two weeks ago:
Interfaces are great, but they can be a pain to debug. Forgetting one weak link can lead to Access Violation hell. I seem to remember a utility that would let you visualise the links between interfaced objects, but can’t remember what it was called. Anybody know?
Do you have any clever interface debugging tips or tricks?
Mixing object and interface references leads to complex situations, especially when some classes make refcounting go away (not limited to UI components) so refactoring is a good idea, it at all possible:
Lars Dybdahl:
Refactor them away :-)
When the mix of interface reference counting and TObject gets so complex, that the source code is no longer obvious, maintenance costs sometimes become too high and another solution might be better.
Nicholas Ring:
+Lars Dybdahl Totally agree and it is even worse when reference counting is disabled (like adding an interface reference to an UI component).
There is not much tooling, this thread only mentioned RefCountTracer and FastMM:
Steffen Binas:
There is this: https://github.com/AquaSoftGmbH/RefCountTracer
It helps you find memoryleaks, but also could show you if a refcount goes below 0.
Paul Thornton:
This link was very useful. It also points to a good FastMM tutorial.
Which reminded me I totally forgot to post that tutorial on my blog so here it is:
Read the rest of this entry »
Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | 2 Comments »
Posted by jpluimers on 2015/03/17
Thanks to the answers for .net – What is a dependency property? – Stack Overflow, I came across this really nice WPF Tutorial | Dependency Properties.
It has one of the best explanations on Dependency Properties I’ve ever seen, and it is available online for free (:
And yes, this post is also tagged Delphi, as DSharp provides http://delphisorcery.googlecode.com/svn/trunk/Source/Core/DSharp.Core.DependencyProperty.pas.
So Dependency Properties are not just .NET any more (:
–jeroen
Posted in .NET, Delphi, Development, Software Development | Leave a Comment »