Here is the Q&A part for the “Mid” one (I will edit later): Read the rest of this entry »
Archive for the ‘Delphi XE3’ Category
Q&A log for the “RAD-in-Action Webinar Unit Testing in Delphi featuring Nick Hodges”
Posted by jpluimers on 2014/02/12
Posted in Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | 2 Comments »
Don’t forget to register: RAD-in-Action Webinar Unit Testing in Delphi featuring Nick Hodges
Posted by jpluimers on 2014/02/12
Do not forget to register for the RAD-in-Action Webinar Unit Testing in Delphi featuring Nick Hodges.
If you cannot watch it live: register anyway, as that will give you the URL for the replay download.
Very interesting stuff (I attended his sessions during the German EKON Conference) and a very entertaining speaker.
He is going to cover a lot in this seminar, and it is a great addition to the material in his Coding in Delphi book (Warren Postma wrote a nice review). You get the electronic edition of the book free when you have Delphi XE5, a hard-copy should be available soon. Read the rest of this entry »
Posted in Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | Tagged: Delphi, nick hodges, Warren Postma | 1 Comment »
Delphi: some notes on running the RADPAServer/PAServer debugger platform assistant
Posted by jpluimers on 2014/02/12
Just as a few small notes as a reminder to myself:
- bash profile shortcuts to the right PAServer or paserver
- PAServer command-line options
- example output of PAServer commands
Lets get started: Read the rest of this entry »
Posted in Delphi, Delphi XE3, Delphi XE4, Development, Software Development | Leave a Comment »
delphi – With a class operator is an implicit typecast to itself allowed? – Stack Overflow
Posted by jpluimers on 2014/01/29
In the series “interesting stuff you can do with Implicit operators”: delphi – With a class operator is an implicit typecast to itself allowed? – Stack Overflow.
Be careful though, as Implicit assignment will allow more code paths to the compiler than you expect at first sight (:
–jeroen
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 »
Pre-build trick does not work to circumvent [BRCC32 Error] xxx.vrc(1): error creating xxx.res (via: Embarcadero Discussion Forums & StackOverflow)
Posted by jpluimers on 2014/01/10
Ever since around Delphi 2007, it started to use temporary .VRC files to re-build the project .RES file.
It confuses people, and with reason as the only public information about it on the dockwiki seems to be in the Version Info page (though there is more on the other embarcadero sites).
The reason is that parts of the .RES file are no more leading in the process of getting them from your project options to the final binary (EXE/DLL/BPL/…) of your project.
Delphi XE3 for instance can have these resource structures in the .VRC file:
- VERSIONINFO (usually called “1”)
- ICON (called “MAINICON”)
- 24 (called “1”; 24 is in fact a numeric alias for MANIFEST)
- RCDATA (called “PLATFORMTARGETS“)
Except for type 24, Delphi XE2 seems to have the same kinds of resource types.
All in all, most if not all of the .RES files are being auto-generated for at least a couple of years now so there is less and less need to put it under version control.
The problem is that if for one reason or the other, your project .RES file becomes readonly, and you get errors like mentioned in Why does a projects res file need to ….
[BRCC32 Error] xxx.vrc(1): error creating xxx.res
.RES in VCS or not?
Posted in Conference Topics, Conferences, Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Event, QC, Resource Files and Scripts (.res/.rc), Software Development | Leave a Comment »
Delphi SOAP: some reminders to Self
Posted by jpluimers on 2014/01/04
Hadn’t been doing SOAP in Delphi for a while, and needed to send some Delphi data structures over the write where both Client and Server were going to be Delphi.
These links helped me:
- Soap.InvokeRegistry.TRemotable – RAD Studio API Documentation.
- Soap.InvokeRegistry.ERemotableException – RAD Studio API Documentation.
- Any descendants of the above need to be registered on the client and server using Soap.InvokeRegistry.TRemotableTypeRegistry.RegisterXSClass – RAD Studio API Documentation; see also Registering Nonscalar Types – RAD Studio.
- Server side registration of the class goes through Soap.InvokeRegistry.TInvokableClassRegistry.RegisterInvokableClass – RAD Studio API Documentation.
- Client and server side of the interface goes through Soap.InvokeRegistry.TInvokableClassRegistry.RegisterInterface – RAD Studio API Documentation.
- More links are at Using Web Services Index – RAD Studio.
- When passing around arrays of complex types: Delphi SOAP arrays problem – Stack Overflow.
- When using Delphi 2007 or earlier, ERemotableException descendants are not handled on the client properly. See Dr.Bob Examines… #102: Win32 SOAP and Exceptions.
- When manually serialising/deserialising TRemotable descendants, read De-Serializing TRemotable problems – Google Groups.
If both client and server are Delphi, you can share the interface units and registration.
Note: since native Delphi SOAP support uses old-skool RTTI, so any property you want to go over the wire needs to be published, not public.
If you want to go beyond that, or use other protocols than SOAP, use libraries for Delphi like RemObjects SDK.
–jeroen
Posted in Conference Topics, Conferences, Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Development, Event, Software Development | Leave a Comment »
Delphi and LLVM: what is your take on this?
Posted by jpluimers on 2013/12/27
One more for the weekend (:
I wrote about Some links on the Delphi compiler and the LLVM Compiler Infrastructure Project about a year and a half ago which caused a short discussion on the embarcadero forums. A few month later Robert Love showed his views in a response to Tim Anderson writing about Clang and LLVM in the C++ side of the toolchain. Tim Anderson wrote more about LLVM in the Delphi tool chain in September 2012, then it went quiet for a while.
Since then the LLVM tool chain has integrated itself into both the C++ and Delphi toolchains and Wired wrote about LLVM.
Gunsmoker – who works at EurekaLog – wrote up some interesting comments in Russian (I hope the English Google translation is good enough).
In my view, the LLVM tool chain opens a lot more possibilities (shared back-end for Delphi and C++, coverage of more platforms, better optimization), but is also a lot slower and makes the debugging part a lot harder as the debugger is – symbol wise – much further away from the compiler than in the traditional setting (hence the 3 levels of debugging information that got introduced in Delphi XE5 and the compatibility problem that came with it).
I’m wondering what other users in the Delphi community think about the LVVM chain: is it working good enough for you? Should it be integrated further into the Windows/OSX parts of the chain?
–jeroen
Posted in Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | 26 Comments »
DelphiSpec Library Announce « Роман.Янковский.me
Posted by jpluimers on 2013/12/22
Cool stuff: DelphiSpec library, inspired by Cucumber. It runs on top of DUnit.
via DelphiSpec Library Announce « Роман.Янковский.me.
A similar one in the .NET realm: SpecFlow – Pragmatic BDD for .NET.
–jeroen
Posted in .NET, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 3.0, C# 4.0, C# 5.0, Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | Leave a Comment »
Delphi XE3/XE4: removing empty .VLB files; XE5 update 2 and special offers are out. #codingindelphi
Posted by jpluimers on 2013/12/19
Even when not using Visual Live Binding, Delphi generates empty .VLB files in both Delphi XE3 (virtually always) and Delphi XE4 (most of the time).
Visual Live Binding is one way of binding data to UI in FireMonkey and can also be used in VCL, but does not have to (Alister Christie made a nice video ▶ Delphi Training Tutorial #77 – Visual Live Bindings – YouTube about it).
Empty VLB files, and a batch file to delete them
The “empty” VLB files are almost empty, as they are exactly 3 bytes long and contain the byte sequence EF BB BF which is the Unicode BOM (byte order mark) for the UTF-8 encoding. Read the rest of this entry »
Posted in Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Development, Encoding, QC, Software Development, Unicode, UTF-8, UTF8 | Tagged: Delphi, VLB | Leave a Comment »
XOR swap/exchange: nowadays an almost extinct means to exchange two distinct variables of the same size
Posted by jpluimers on 2013/12/19
Almost a year ago, a thread on “premature Delphi optimization” came by on G+ about this code:
procedure ExchangeInteger(var AValue1, AValue2: Integer); begin AValue1 := AValue1 xor AValue2; AValue2 := AValue1 xor AValue2; AValue1 := AValue1 xor AValue2; end;
I don’t think that was premature optimization, just some code from an old fart that had already been programming in the era where processors had reasons to use it:
- limited instruction set
- few registers
- limited amount of RAM.
Back then, the only efficient way to exchange two variables of the same data type was using the XOR swap algorithm.
Nowadays you have more options, and this is where the fun in that thread began, which I will show in a minute.
First a bit of history
The XOR swap algorithm was widely known in the 80s of last century and before, especially because the 6502 processor (oh the days of LISA Assembler) was vastly popular, as was the Z80. Together, they powered the majority of the home computers in the 70s and 80s.
Posted in Borland Pascal, Delphi, Delphi 1, 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, Development, History, Pascal, Software Development, Turbo Pascal, UCSD Pascal | 7 Comments »





