Archive for the ‘Delphi XE2’ Category
Posted by jpluimers on 2015/02/10
Posted in .NET , .NET 2.0 , .NET 3.0 , .NET 3.5 , .NET 4.0 , .NET 4.5 , C# , C# 2.0 , C# 3.0 , C# 4.0 , C# 5.0 , Delphi , Delphi 5 , Delphi 6 , Delphi 7 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2015/02/03
Cool: this makes it way easier to do repeated Delphi installs for testing purposes:
Setup.exe /s LANGUAGE=English EN=TRUE DE=TRUE KEY1=XXXX KEY2=XXXXXX KEY3=XXXXXX KEY4=XXXX
There are many more parameters in Delphi sorcery: Unattended Delphi installation – how? , but the above is already a good start.
Thanks Stefan Glienke for having shared this!
–jeroen
via: Delphi sorcery: Unattended Delphi installation – how? .
Posted in Delphi , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Development , Software Development | 2 Comments »
Posted by jpluimers on 2015/02/02
Because of Delphi sorcery: New dynamic array type in Spring4D 1.2 , I updated this article from 2009: Delphi operator overloading: table of operators, names, and some notes on usage and ‘glitches’ .
When I wrote the original article in 2009 the in operator wasn’t documented to be overloadable.
It is overloadable, and newer documentation includes it: http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading_%28Delphi%29 .
In addition I clarified a few things better (like not needing to return Boolean for comparison and set operators) and fixed a few typos and links.
The glitches are still there, so I’ve kept those.
–jeroen
Posted in Delphi , 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 2015/01/20
This used to be a great Delphi-only feature that I missed in Visual Studio, but I found the downloadable free extension Favorite Documents extension .
It is a by Sergey Vlasov , who has a whole bunch of free and paid Visual Studio add-ins, extensions and tools .
–jeroen
Posted in Delphi , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Development , Software Development , Visual Studio 11 , Visual Studio 2010 , Visual Studio and tools | Leave a Comment »
Posted by jpluimers on 2015/01/14
One of the features that bites me over and over again is the ZEROBASEDSTRINGS that got introduced in Delphi XE3 and is by default ON in mobile compilers and OFF in Desktop compilers.
Back then, Mark Edington showed a small example of the effects:
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
procedure ZeroBasedTest;
const
S: string = '012';
begin
{$ZEROBASEDSTRINGS OFF}
Writeln(S[1]); // shows "0"
Writeln(S.Chars[1]); // shows "1"
{$ZEROBASEDSTRINGS ON}
Writeln(S[1]); // shows "1"
Writeln(S.Chars[1]); // shows "1"
end;
and then explained :
The XE3 RTL source code has been refactored to be string index base agnostic. In most cases this is done by utilizing string helper functions which are always zero based.
When it is necessary to traverse a string, the Char[] property is often used to access the individual characters without concern for the current state of the compiler with respect to zero based strings.
In addition, the “Low” and “High” standard functions can now be passed a string variable to provide further flexibility as needed.
When zero based strings are enabled, Low(string) will return 0, otherwise it will return 1. Likewise, High() returns a bounds adjusted length variation.
The problem is the non-existent forward compatibility of the other compilers (Delphi XE2 and lower).
So if you have library code that needs to work in Delphi versions, you cannot use the High and Low to make the code ZEROBASEDSTRINGS neutral.
Many Delphi developers regularly skip many Delphi versions, so these are still popular:
Delphi XE1 and XE2 (the last 2 compilers before Delphi really started to support mobile)
Delphi 2007 (the last non-Unicode Delphi compiler)
Delphi 7 (the last non-Galileo IDE)
The result is that library code is full of conditionan IF/IFDEF blocks like these:
Fix: this works only in XE3 or higher: “for Index := Low(input) to High(input) do // for ZEROBASEDSTRINGS”
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
{$ifdef GX_VER240_up}
for Index := Low(input) to High(input) do // for ZEROBASEDSTRINGS
{$else}
for Index := 1 to Length(input) do
{$endif GX_VER240_up}
–jeroen
via: Mark Edington’s Delphi Blog : XE3 RTL Changes: A closer look at TStringHelper .
Posted in Ansi , Delphi , Delphi 2007 , Delphi 7 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Development , Encoding , Software Development , Unicode | 8 Comments »
Posted by jpluimers on 2015/01/07
Posted in Delphi , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2015/01/05
A very nice thread around multi-threading in Delphi is evolving at Google Plus: Nick Hodges: Man, the chapter on Multi-threading is going to be seriously hard to write.… .
Note: you need to be member of that G+ group to read it, but Nick Hodges allows most people in…
–jeroen
(I also tagged it XE8, as by the time such a book arrives, that Delphi version has most likely come out given the past release frequency <g>)
Posted in Delphi , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | 7 Comments »
Posted by jpluimers on 2014/12/30
There is a nice Delphi memory thread at G+ initiated by Tommi Prami for which I added some links to the memory managers:
FastMM (No signs of the Version 5)
ScaleMM – Interesting (two versions)
SynScaleMM – Fork of the previous
SapMM – Just found out about this, but tries to tackle multithreading issue.
More interesting comments (most people seem to favour FastMM, as they can get very good performance out of it even in multi-threaded environments) at There have not been much of the Talk of MemoryManagers lately… .
Note there is also TBBMM based on TBB , but it seems unmaintained.
Barry Kelly’s memory manager is based on Boehm-Demers-Weiser GC .
–jeroen
Posted in Delphi , 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/12/20
Earlie this month, I wrote a review about Delphi Cookbook .
Well: as of last thursday, you can get that for USD 5 (or EUR 4.80, so better get yourself a USA account: just ensure your address is in the USA).
Heck: until januari 6th, you can get any eBook or Video on Packt for USD 5 .
Note there is even an x-Mas countdown on the way (with each day a free book that is readable/downloadable for 24 hours).
There’s over 2500+ books to choose from, so I’m grabbing this chance to learn a few things on OpenCV, Scala, and PowerShell.
–jeroen
via: Book review: Delphi Cookbook by Daniele Teti, Packt publishing .
Posted in .NET , CommandLine , Delphi , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Development , Java Platform , PowerShell , Scala , Scripting , Software Development | Tagged: Delphi Cookbook , Packt | Leave a Comment »
Posted by jpluimers on 2014/12/17
A small follow up on MVVM, MVP, MVC, OOD, etc: it is all about structure and using common sense :
When you want to do MVVM with Delphi, there is a great Delphi MVVM demo that Malcolm Groves gave at CodeRage 7 that is on YouTube .
A few resources you should look at after viewing that demo:
Some of it might work with Delphi XE2, but I think you need XE3 or younger for most of the demos.
–jeroen
Posted in Delphi , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Development , Software Development | 3 Comments »