Blog

The most recent entries from DelphiDabbler's Programming Blog are summarised below.

Subscribe to the Blog news feed

Add to My Yahoo! Add to Google Reader or HomePage Subscribe with Bloglines

Subscribe in a reader Subscribe in a reader

CodeSnip v4 Preview Now Available
By the skin of my teeth I've kept the promise I made in my earlier post to release an alpha, or preview, version of CodeSnip v4 by the end of 2011 - with 20 mins to spare! Phew.The main new feature of the program is that snippets etc. can now be ...
Sat, 31 Dec 2011 23:57:00 +0000
CodeSnip v4: progress at last
Back in December 2010 I announced I'd started work on CodeSnip v4 and expected to release a new beta in a "few months". Now, nearly eleven months later I've made some noticable progress and am considering an alpha release! I'm hoping to get this out ...
Mon, 24 Oct 2011 10:44:00 +0000
Help with Delphi XE2 program paths please
I've just updated CodeSnip to v3.9.0 to allow code snippets to be test compiled by Delphi XE2 (32 bit only). But I've had to make some educated guesses in adding that support because I don't yet have XE2. I'm hoping you can help by either ...
Thu, 08 Sep 2011 13:53:00 +0000
Curious bug in CodeSnip???
A user of my CodeSnip program has reported a strange bug where, after using the Snippets Editor to add a new snippet, the editor dialog box refuses to close, hanging the program. Apparently this happens only sometimes, and affects v3.8.9 and some ...
Thu, 19 May 2011 23:04:00 +0000
Delphi, Javascript and Floating Point Parameters
I recently came across an interesting little problem when using Delphi to call JavaScript in an HTML document loaded into a TWebBrowser control. The code used the execScript method of the IHTMLWindow interface, which requires that a string ...
Thu, 05 May 2011 12:26:00 +0000
New host for DelphiDabbler (part 2)
The site on the old server has now been taken down, so if you are getting any "can't find server" errors when accessing www.delphidabbler.com its time to flush your DNS cache. The migration seems to have gone well and I've cleared up what glitches ...
Fri, 22 Apr 2011 12:48:00 +0000
New New Wiki Wiki
Forgot to mention before, but there's now a wiki at wiki.delphidabbler.com. It's currently being used for a series of FAQs about some of my Delphi Library components and units. The hope is that others may add to it. You can also leave new questions ...
Tue, 12 Apr 2011 07:54:00 +0000
New host for DelphiDabbler
As of today DelphiDabbler.com has moved to a new web host. The nameservers have been updated and the relocated site should start to appear over the next couple of days. Why the move?. Down to money really. This is a non commercial site with falling ...
Mon, 11 Apr 2011 21:26:00 +0000
RIP DelphiDabbler Mailing Lists
If you have been a subscriber to my mailing lists you may have noticed that there have been no mailings since about June 2010. That's because I've decided to stop producing newsletters. The reason? I'm afraid I just don't have the time. There are ...
Thu, 16 Dec 2010 17:28:00 +0000
CodeSnip v4
I've started development of version 4 of CodeSnip, the Delphi source code snippets editor and viewer. I am inviting suggestions for new features. If you have any ideas please use the project's Feature Tracker on SourceForge. If you prefer to ...
Mon, 06 Dec 2010 11:54:00 +0000
Concatenating Dynamic Arrays
Another day another unit test and another extension to my little TArrayEx class. This time I found myself having to concatenate some dynamic arrays. After solving the problem for the particular array type I decided to produce a generic solution. ...
Fri, 05 Nov 2010 00:44:00 +0000
DelphiDabbler Code Library help
Some users of the components and units from the DelphiDabbler Code Library have contacted me to ask if the library's help is available in HTML help format because WinHelp format I used for the library won't work by default on Windows Vista and ...
Sat, 11 Sep 2010 12:49:00 +0000
Initialising dynamic arrays - take 2
In my earlier post on this subject I presented some methods to use to initialise and clone dynamic arrays. Some comments to that post suggested a simpler approach using compiler features I didn't know existed. In this post I've simply collected the ...
Sat, 11 Sep 2010 12:15:00 +0000
Deleting elements from a dynamic array
In my blog "Initialising Dynamic Arrays" I mentioned I have been writing some unit tests that needed numerous repetative array initialisation operations. Well, one of the other common operations I found myself writing was the deletion of items from ...
Thu, 24 Jun 2010 21:27:00 +0000
Initialising dynamic arrays
When writing some unit tests a while ago I found myself needing to initialise some dynamic arrays with test data. It would be nice if we could do something like this: var A: array of Integer; begin A := (1,2,3,4); // !! WRONG end; but we ...
Wed, 23 Jun 2010 01:46:00 +0000
Being dim #2: No generic global procedures
The other day I was writing some unit tests and needed some helper functions to look up some array elements of in arrays of different base types. I had several overloaded functions to do the job, like this: function IndexOf(const Item: string; ...
Tue, 22 Jun 2010 13:29:00 +0000
Being dim #1: Array and set enumerators
One of my favourite additions to Delphi over the past years has been the for..in construct and the associated enumerators. I just love the way we can do var Ch: Char; S: string; begin S := 'Some text'; for Ch in S do // Do something ...
Tue, 22 Jun 2010 10:28:00 +0000
Top Secret Code Snippets Test Code
For about three months now I've had some code that tests and exercises some of the snippets in the Code Snippets Database. But, if you don't get the Code Snippets newsletter, you won't know about it because I forgot to tell anyone else! Anyhow, the ...
Thu, 27 May 2010 21:14:00 +0000
Decoding Base 64 encoded data
A while ago someone asked me how to go about decoding Base 64 encoded code in a single routine. Here's what I came up with. It uses the Indy internet component suite to do the grunt work and simply wraps the various Indy calls into a ...
Thu, 27 May 2010 14:54:00 +0000
Delphi Tips Editor Virus???
There have been a few reports of a possible virus in the third party Delphi Tips Editor published on DelphiDabbler.com. Just to let everyone know that this is likely (but not guaranteed) to have been a false positive due to the exe compressor used ...
Sun, 09 May 2010 12:13:00 +0000
Singletons
For a long time now I've been looking for a nice singleton implementation that meets my needs. I want a singleton that: Can't be created more than once. Can't be freed until the program terminates. Can be used as a common base class for all the ...
Mon, 05 Apr 2010 00:09:00 +0000
CodeSnip problems, problems, problems
Arrgh! I've been having a lot of problems with the CodeSnip program's database update code - it's been working for some and not for others. All this has happened since I converted the program to Unicode and compiled with Delphi 2010. I'm posting ...
Thu, 25 Mar 2010 11:16:00 +0000
Delphi Tips News
There's now another new RSS feed that provides news of changes to the Delphi Tips section of DelphiDabbler.com. Subscribe.
Tue, 16 Mar 2010 02:51:00 +0000
 
URL Decoding revisited
Time to complete the set. So far in this series I have presented URIEncode, URIDecode and URIEncodeQueryString. So here's the missing piece of the jigsaw: URIDecodeQueryString. This routine decodes a query string that has been ...
Sun, 14 Mar 2010 11:58:00 +0000
URL Decoding
To complement the code of my URL Encoding post, I've now developed a URIDecode routine. It attempts to decode URIs that were percent-encoded according to RFC 3986. It also allows for some malformed percent-encoded URIs, i.e. those that contain ...
Wed, 10 Mar 2010 13:00:00 +0000