The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,854 other subscribers

Archive for the ‘Delphi’ Category

Marking code as obsolete/deprecated in C# and Delphi

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 »

When Delphi documentation hurts: REST.Response.Adapter.TRESTResponseDataSetAdapter – RAD Studio API Documentation

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 »

BitSavers.org just added 7 missing scans of PascalNews newsletters (1975…1983)

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 »

Delphi Pipe – Delphi related RSS feed running on Yahoo Pipes – via twm’s blog

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 »

Interfaces are great, but they can be a pain to debug. Forgetting one weak link can lead to Access Violation hell…

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 »

WPF Tutorial | Dependency Properties

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 »

Interesting presentation at EKON 16: MSBuild Inside the Microsoft Build Engine from Sebastian Gingter

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 »

Some notes on OpenSSL, S/MIME, email, various RFC standards and their relations.

Posted by jpluimers on 2015/03/10

Stuff I found out myself:

Some links I found useful: Read the rest of this entry »

Posted in Delphi, Development, OpenSSL, Power User, Security, Software Development | 3 Comments »

Brutal way to prevent memory errors in Delphi XE7: rename DLLs, loose part of the functionality, but less memory issues – via G+

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 »

Delphi anonymous method formatting thread going into the direction of functional programming – via: Markus Joos – Google+

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 »