Archive for the ‘Delphi’ Category
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 »
Posted by jpluimers on 2015/03/11
I missed EKON 16 as both they and we moved outside the regular conference season.
So I missed this session: EKON 16: MSBuild // Speaker Deck that has these GitHub source examples: gingters/EKON16_MSBuild.
Thanks Sebastian Gingter for pointing me at this!
msbuild is used by both Visual Studio and Delphi for building projects, and this session gave me some good ideas to improve the Continuous Integration projects I already had into place.
–jeroen
Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, Continuous Integration, Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, msbuild, Software Development | Leave a Comment »
Posted by jpluimers on 2015/03/10
Stuff I found out myself:
- OpenSSL does not like to have a period (dot) at the end of a S/MIME message (like many .EML files have as SMTP basically requires a period to terminate an email message.
- Indy sometimes changes the ContentType of S/MIME messages; you can reproduce this using the CopyEml demos; preliminary fix is in IdMessageHelperUnit.pas.
They should reorganize their site to make the most current version more findable; these links help me to track down what’s new:
- Make sure your tools
- accept the old RSA MIME types:
- application/x-pkcs7-mime
- application/x-pkcs7-signature
- application/x-pkcs10
- but emit the new RFC 2311+ MIME types:
- application/pkcs7-mime
- application/pkcs7-signature
- application/pkcs10
- emit the new RFC MIME types:
Some links I found useful: Read the rest of this entry »
Posted in Delphi, Development, OpenSSL, Power User, Security, Software Development | 3 Comments »
Posted by jpluimers on 2015/03/05
When the suggestions from Out-of-Memory in RAD XE7 and -noparser from Tried to patch BDS.exe fails to, then this suggestion by Brian Hamilton on G+ might work:
From a post in the EMB forum, a work around for XE7 is
I follow the hint of Thomas Grusche renaming the following files:
- Borland.Studio.Delphi.dll
- Borland.Studio.Refactoring.dll
- refactoride210.bpl
This makes the XE7 IDE usable again.
Just the refactoring feature aren’t available anymore.
Read the rest of this entry »
Posted in Delphi, Delphi XE6, Delphi XE7, Development, QC, Software Development | 6 Comments »
Posted by jpluimers on 2015/03/03
Markus Joos started a nice G+ thread on anonymous method formatting which ended up into a discussion of functional programming and a peek into what Spring4D 1.3 can offer.
Note you might need to be part of the G+ Delphi Developers Community to read the thread.
–jeroen
Posted in Delphi, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development, Spring4D | Leave a Comment »
Posted by jpluimers on 2015/03/03
Odd that the RAD Studio 2015 Roadmap on the Embarcadero site got published by Brian Alexakis which is relatively unknown in the Delphi community.
I wish that ARC for Windows and Linux x86/x64 were on the list: the first since it makes it so much easier to solve ARC problems in libraries, the second since Kylix had a Linux x86 compiler and an RTL (yes, Kylix didn’t have Unicode nor Generics, but maybe the Linux and OS X targets might be too far apart).
I like that there is a roadmap for 2015. And glad with what is on it: 4K support (hopefully also done for the IDE), C++ LLVM compiler, IDE large memory (though I wonder how they do that), native HTTP (hopefully WinHTTP for SOAP and REST).
In the mean time, Kris Houser has indicated XE8 is in beta. Which is good know as well.
–jeroen
via: RAD Studio 2015 Roadmap
Posted in Delphi, Delphi XE8, Development, Software Development | 4 Comments »
Posted by jpluimers on 2015/02/26
When developing mail sending software, you don’t want all your test mails to proliferate in the world.
Luckily there are some SMTP servers and services that allow incoming mail, but don’t forward them:
I got two of them from the interesting Stack Overflow question How to Debug/Monitor SMTP Communications? and later I also found about development smtp server for windows.
Note that I also like smtp-cli that Tripp Lilley suggested in his answer: though not a server, it is a nice command-line tool for testing SMTP servers (for instance to see if you got the above servers/services configured right on your client side, or if you have configured your own SMTP server correctly).
The cross platform monitoring tools tcpdump and wireshark (formerly etherreal) are great tools, they are usually way too deep for most of the SMTP problems I encountered. But when the going gets tough they are invaluable, especially Wireshark as it has a great feature Following TCP streams.
I wish there were similar servers and services for POP3, that would have helped a lot with a Delphi Indy project I developed a while ago (:
–jeroen
Posted in Communications Development, Delphi, Development, Internet protocol suite, SMTP, Software Development | 6 Comments »
Posted by jpluimers on 2015/02/21
This is the way a wiki should work:
List of Delphi language features and version in which they were introduced/deprecated – Stack Overflow.
Thanks Simon Stuart for asking, and many others (especially Johan) for providing the info.
Note the version that is missing (;
–jeroen
Posted in Delphi, Delphi 1, 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, Software Development | Leave a Comment »
Posted by jpluimers on 2015/02/15
Talking about Delphi 2007 stuff:
I needed to generate a bunch of groupproj files for Delphi 2007 (I wrote about legacy yesterday), but found out that my GenerateGroupProjConsoleProject was generating too good XML.
So here is the change-set:
Allow generating Delphi 2007 .groupproj files (uses a string search/replace hack as Delphi 2007 uses xmlns=”” which you cannot set manually through the normal IXMLNode ways especially not with ADOM).
TODO: verify if/how the GroupProj.xsd can be adopted to this not so nice XML that Delphi 2007 uses.
–jeroen
via jeroenp / BeSharp.net / commit / f7c23ffe4cb1 — Bitbucket.
Posted in Delphi, Delphi 2007, Development, Software Development | Leave a Comment »