Archive for the ‘Delphi XE5’ Category
Posted by jpluimers on 2014/11/07
While researching the manifest problem I will post about next week, I made a short list of free Windows Resource Editors:
All other resource editors I found were not free, and someof them not maintained for an even longer period than the free ones.
–jeroen
Posted in Delphi, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Power User, Software Development, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | 4 Comments »
Posted by jpluimers on 2014/11/06
The last couple of weeks I taught two sessions at both ITDevCon 2014 in Milano, Italy and EKON 2014 in Köln, Germany.
The EKON materials are slightly more up to date and elaborate (sessions there were 75 minutes), so below are all the links.
Notes:
- I’ve switched to Markdown for presenting as that is very version control friendly
- GitHub very good at handling relative links from your Markdown files to other resources, that I’ve switched the Conference repository to GitHub from BitBucket.
- Somewhere over the next few months, the BeSharp.net repository will convert from Mercurial to Git and also move to GitHub.
Read the rest of this entry »
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, Software Development | 1 Comment »
Posted by jpluimers on 2014/11/06
Two interesting links today about Delphi and Batch files.
–jeroen
PS: If you want to see some serious Batch file and PowerShell related scripts, then read through the Build Automation part of my session materials I posted to ITDevCon and EKON session materials on Delphi Unit Testing + Build Automation and Continuous Integration on-line.
More details are in the batch files here:
and PowerShell scripts here:
Posted in Batch-Files, 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, QC, Scripting, Software Development | 7 Comments »
Posted by jpluimers on 2014/11/05
Vin Colgin posted on G+:

The kind of text that the Delphi IDE often removes in a .dpr file.
FastMM4 and lines in the *.dpr
I’ve got an old problem, in which the IDE will take the lines required out of the “uses” clause in the *.dpr. Something I’m sure we’re all aware of, but is there a solution to keep it from doing it?
The comments indicate the problem is less severe in more recent Delphi versions:
Daniela Osterhagen Actually it has become much better. The IDE doesn’t meddle as much with the DPR files as it used to.
One option for solving this issue is adding a new unit as the first entry that permanently stays there and moving the ifdef to that unit.
That’s what I did a long time ago and even put on-line, and even put it on-line at CodePlex as FastMM4BootstrapUnit.pas (now moved to bitbucket as FastMM4BootstrapUnit.pas). Too bad CodePlex and BitBucket are not indexed on Google, so I commented this:
I’m using a FastMM4BootstrapUnit for that at the top of my DPR; it looks like this […]
It will eventually end up at my BeSharp.net repository any way.Let me know if you need it there soon, and I can probably get something published after the Entwickler Konferenz next week.
So various people are now using this:
- Vin Colgin: very nice. Thanks for the tip!
- Warren Postma: This works fine for me in xe6 and up.
- Bruce McGee: Nice. May I steal this? And by “steal”, I mean giving credit in the code comments.
Since I could use this unit during my EKON 2014 talk about Delphi Unit Testing, I expedited the publication:
https://bitbucket.org/jeroenp/besharp.net/src/tip/Native/Delphi/Library/FastMM/FastMM4BootstrapUnit.pas
And explained the usage in this Unit testing session session materials.
Note: this file isn’t indexed either (as BitBucket doesn’t allow it), but since the repository will be git based in the foreseeable future anyway, I can then move it to GitHub which does allow Google to crawl the master branch.
–jeroen
via FastMM4 and lines in the *.dpr I’ve got an old problem, in which the IDE….
Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | 5 Comments »
Posted by jpluimers on 2014/11/04
Normally you would not want to use a reserved word as an identifier. But sometimes it can be very convenient, for instance for a code generator that wraps remoting calls or does ORM.
Both Delphi and C# have an escape for this:
The prefixes are to tell the compiler knows you really know what you are doing, and are using a reserved word as an identifier.
The cool thing: in the Run Time Type Information (Delphi) or Reflection (C# and VB.NET) you will see the names without the prefix.
Some examples from StackOverflow: 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, Conference Topics, Conferences, Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Event, Jon Skeet, Software Development, VB.NET, VB.NET 10.0, VB.NET 11.0, VB.NET 7.0, VB.NET 7.1, VB.NET 8.0, VB.NET 9.0 | Leave a Comment »
Posted by jpluimers on 2014/10/23
Posted in Delphi, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | 2 Comments »
Posted by jpluimers on 2014/10/22
It is always nice to see one of the compiler engineers write down how something was implemented.
In this case, Barry Kelly explains in comp.compilers on Implementing Closures in Delphi 2009. The post is about 4.5 years old, but still very relevant.
About 9 months earlier, he participated in a Reddit thread about a similar topic. Worth reading too!
–jeroen
via: Implementing Closures – Google Groups.
Posted in Delphi, Delphi 2009, Delphi 2010, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | 5 Comments »
Posted by jpluimers on 2014/10/15
The Delphi MESSAGE directive is a very powerful one, you can generate compiler hints, warnings and errors with it, even fatal ones that abort compilation.
The compiler will return error codes H1054 (hint), W1054 (warning), E1054 (error) or F1054 (fatal error), which in the documentation are known under the catch-all x1054.
You need to take a bit of care with message directives, especially with the quotes. For instance
{$Message Error 'Not implemented'}
gives you the error below, but continues compiling:
[DCC Error] E1054 Not implemented
However, if you forget the single quotes
{$Message Error Not implemented}
it gives you error E1030 (not x1054), which is a bit confusing as it is a catch-all for invalid directives:
[DCC Error] E1030 Invalid compiler directive: 'message'
Here is a full example (now moved to bitbucket) of all the message directives and compiler reactions you can get: Read the rest of this entry »
Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/09/15
Simon Stuart yesterday posted a very interesting post on G+ that explains on this (edited) topic:
#Rendering I was having a conversation last night … with +David Berneda regarding rendering performance improvements for FireMonkey applications.
Specifically, custom drawing/rendering on a FireMonkey Canvas.
I just want to summarize the points I raised, and some of the conclusions I’ve come to having been working with rendering in FireMonkey since the end of June this year.
–jeroen
via: Simon Stuart rendering performance improvements for FireMonkey applications. Specifically, custom drawing/rendering on a FireMonkey Canvas.
Posted in Delphi, Delphi XE5, Delphi XE6, Delphi XE7, Development, FireMonkey, OS X FMX, Software Development | 3 Comments »
Posted by jpluimers on 2014/09/10
I’m really happy that Continua CI Version 1.5 got released a few hours ago as per the Continua 1.5 released announcement.
It means that my Build Automation Session during the Dutch Delphi 2014 conference tomorrow can range from:
- build using MSbuild from the command-line
- build batch files
- build using a custom front-end
- build using Continuous Integration front-end
The session will explain lots of details about what various Delphi versions do, how to cope with dependencies, etc.
In the mean time, the preliminary Spring4D work on build automation is visible to guest users. Those include building for Delphi XE7 for the Win32, Win64 and OSX32 targets (in Debug and Release mode).
There is a huge list of Version 1.5 History @ Continua CI changes, which is partially quoted below.
For me these are the most important:
- in-place upgrade without having to do any changes on my part
- truckload of new features (including Delphi XE7, NuGet and Fake F# support)
- smaller
- faster
(as a side note: also FinalBuilder 7 was recently updated to support Delphi XE7)
In general, I like Continua CI a lot, most importantly because:
- it is very stable
- it has native support for a wide range of software development tools (including Delphi, Visual Studio and much more)
- supports DVCS (like Git/Mercurial) just as you expect it to
- if something breaks, you get a response and fix very very soon
You can download the new version through the Downloads @ Continua CI. These are the direct links:
For a breaking issue, there has been an important bug fix, so the new downloads are:
I created an RSS feed through Page2RSS to watch any new releases of Continua CI.
Parts of the changes in 1.5.0.268 1.5.0.278
The full list of changes are at Version 1.5 History @ Continua CI.
Be sure to also look at the official Continua 1.5 released announcement.
Read the rest of this entry »
Posted in .NET, Continua CI, Continuous Integration, Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development, Spring4D | 5 Comments »