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,860 other subscribers

Archive for the ‘Delphi’ Category

Delphi poor mans debugging trick: approximate the source location of an exception address

Posted by jpluimers on 2014/09/24

A while ago, I had a client with an exception on a workstation.

There was no permission to run a debugger on their system, or use something like MadExcept or Exceptional Magic in their code base.

The exception looked like this:

---------------------------
Application Error
---------------------------
Exception EInOutError in module MyApplication.exe at 001656B1.File access denied.
---------------------------
OK
---------------------------

These are the steps to get at the source line in an x86 Delphi program (I still have to try the x64, but presume it works similarly): 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, Development, Software Development | 3 Comments »

Abstract syntax tree builder for Delphi

Posted by jpluimers on 2014/09/20

So I won’t forget: Abstract syntax tree builder for Delphi.

Abstract syntax tree builder for Delphi
DelphiAST Announce
roman.yankovsky.me

Based on CastaliaDelphiParser. Published with MPL license.

–jeroen

via: Does anyone know of a way to get an AST of a Delphi unit? Out of the various….

Posted in Delphi, Development, Software Development | Leave a Comment »

ModelMaker Tools released Code Explorer v 11.1.0 with Delphi XE7 support (via: ModelMaker Code Explorer: Refactoring made Easy! – Class Explorer, Refactoring Browser for Delphi.)

Posted by jpluimers on 2014/09/18

Nice!

On September 17th 2014 ModelMaker Tools released Code Explorer v 11.1.0 This update includes Delphi XE7 support.

–jeroen

via ModelMaker Code Explorer: Refactoring made Easy! – Class Explorer, Refactoring Browser for Delphi..

Posted in Delphi, Delphi XE7, Development, Software Development | Leave a Comment »

Continua CI – v1.5.0.295 Released. Critical bug fix for Git; requires resetting your Git repositories

Posted by jpluimers on 2014/09/18

If you run Continua CI 1.5.x.y and use Git then make sure you upgrade to at least Continua CI 1.5.0.295 (get it from the Continua CI download page).

Click on the shield icon, followed by

Click on the shield icon, followed by “CI Server”

After that, reset all your Git repositories in ContinuaCI.

To view all the repositories on the server, follow either of these steps:

  • A:
    1. Logon as an administrator with the rights to view all repositories on the Continua CI server.
    2. Click on the shield icon in the top bar.
    3. Then click on “CI Server”.
    4. In the list on the left, scroll down and click “Repositories”.
  • B:
    1. Logon as an administrator with the rights to view all repositories on the Continua CI server.
    2. Note the URL in the address bar of your browser (for instance http://localhost:8080/ci).
    3. Replace the /ci part of your URL with /administration/ci/repositories (so you end up at something like http://localhost:8080/administration/ci/repositories).
    4. Go to that URL.

Now you are in the repositories section, where you see all the repositories configured on the Continua CI. Each repository has a [Reset] link in the right most column.

Then follow these steps: Read the rest of this entry »

Posted in .NET, Continua CI, Continuous Integration, Delphi, Development, Software Development | Leave a Comment »

Delphi: considerations regarding rendering performance improvements for FireMonkey applications (via: +Simon Stuart)

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 »

Continua CI Update 1.5.0.278 for breaking change (via: Version 1.5 History | Continua CI)

Posted by jpluimers on 2014/09/11

For a breaking issue, there has been an important bug fix to Coninua CI. From the downloads page:

From the change log:

Read the rest of this entry »

Posted in .NET, Continua CI, Continuous Integration, Delphi, Development, DVCS - Distributed Version Control, git, Mercurial/Hg, Software Development, Subversion/SVN | Leave a Comment »

Reminder to Self: write Eurekalog article about finding cause for hard to catch Access Violations in Delphi

Posted by jpluimers on 2014/09/11

Reminder to Self: write Eurekalog article about finding cause for hard to catch Access Violations in Delphi

–jeroen

via: web services – Access Violation (Delphi) – except the first run – Stack Overflow.

Posted in Delphi, Development, Software Development | Leave a Comment »

Continua CI Version 1.5 has been released (build 1.5.0.268); smaller, faster, loads of new features; Spring4D XE7 builds automated

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 »

Revisited from the .NET side: Why doesn’t WINWORD.EXE quit after Closing the document from Delphi? (via: Stack Overflow)

Posted by jpluimers on 2014/09/08

I long time ago, I asked about  [WayBack] Why doesn’t WINWORD.EXE quit after Closing the document from Delphi?.

It turns out that question is a lot harder in .NET than it is in Delphi. I already had a gut feeling of this when at clients I saw many more .NET applications leaking WINWORD.EXE stray processes than Delphi applications, even though both kinds were calling Quit on the Word application object.

Delphi has a deterministic way of coping with interfaces (hence you can do a One-liner RAII in Delphi, or make a memento): Interface references are released at the end of their scope.

.NET has non-deterministic finalization of the Common Language Runtime (CLR) and has Runtime Callable Wrappers (RCWs) around your COM references which are sometimes created “on the fly”.

The combination of non-deterministic finalization and RCWs can be very confusing, so lets start with the parts first. Read the rest of this entry »

Posted in .NET, Delphi, Development, Software Development | 2 Comments »

Posted by jpluimers on 2014/09/07

Nostalgia:

dec :: vax :: vaxeln :: 2.0 :: AA-EU39A-TE VAXELN Pascal Language Reference Manual Mar85 http://bitsavers.trailing-edge.com/pdf/dec/vax/vaxeln/2.0/AA-EU39A-TE_VAXELN_Pascal_Language_Reference_Manual_Mar85.pdf

Posted in DEC Pascal, Delphi, Development, Pascal, Software Development | Leave a Comment »