Posted by on in Blogs
Zero based string sample
For those adventurous types who like to get down and dirty spelunking in the RTL source, you have undoubtedly noticed that there have been quite a few changes made to the runtime code. If you aren't the type to immediately diff the latest source code to the last release to see all the new "goodies", I'll try to provide a quick highlight of some of the more significant changes you might find. One of the most notable changes in the RTL is the addition of record helpers for simple types. Rodrigo Ruz did a nice job covering them in a recent blog post which you may want to read. There are several useful things that that record helpers provide: Code completion when typing a dot after a...
In my CodeRage talk,  Debugging Techniques for Delphi, I gave a short demo of using 2 different debug heap managers to help track down memory issues.  In the demo, I showed FastMM and another memory manager called SafeMM.  FastMM has been around for a number of years, and I'm sure many of you have used it in the "fulldebug" mode to help find memory errors.  SafeMM, on the other hand, has only been available publicly since my CodeRage session.  The source files are available on CodeCentral. SafeMM works by not immediately re-using freed blocks and using the page protection flags that are part of the operating system.  It does an excellent job of detecting reads and writes beyond the bounda...

Posted by on in Blogs
When last we met[1], I was reminiscing about my reunion with the very first release of Delphi.  I still get a thrill running "delphi.exe" and watching it just instantly appear. Of course time marches on, and today I'm sad to report that my old pal no longer runs on my current Windows 7 x64 development platform.  But that's OK, because with a few registry tweaks and a couple of command line switches, I've now got the new Delphi 2010 popping onscreen and running those same little apps and he's every bit as snappy as his 16 bit ancestor. Here is a quick little video of Delphi 1 running the "Hello World" app and Delphi 2010 doing a fantastic impersonation: [caption id="attachment_24...

Posted by on in Blogs
Mark Edington Delphi Quality Architect Boilerplate Registry Editing Warning: This article advocates editing your system registry (Oh No, not that!). If that is something that makes you squeamish then this article is probably not for you. If you decide to go ahead with any of the procedures I suggest below then you do so at your own risk. If something does go wrong, and it will make you feel better, you can blame me. On the other hand, I hope you will at least take comfort in the fact that I am not encouraging you to make modifications to the trigger mechanism of your shotgun collection. Borland Developer Studio 2006 is something I would qualify as a fairly “subst...

Posted by on in Blogs
I stopped by for a visit with an old friend today.  My long lost pal Delphi 1. You remember him, right?  Lightning fast hand optimized 16 bit assembly language Pascal compiler, wrapped in a slick little GUI IDE, that enabled even neophyte developers to effortlessly build COMPILED stand alone executables for Windows in just minutes.  Yeah, that's the guy. Boy the memories came flooding back.  I just typed "Delphi" and poof, he instantly appeared ready and waiting to do my bidding.  So I dropped down a button, gave a couple of quick clicks and tapped out "Caption := 'Hello World';".  Next I reached up and instinctively pressed F9 just like I've done so many, many ...

Posted by on in Blogs
Background Here's the dilemma: You've got some code in front of you that you know basically nothing about and it doesn't work. Well, actually, there's just one little part of it that doesn't work, but the trouble is you have absolutely no idea where or what that little part is. Your job is to fix it. Where do you start? I recently ran into this problem when trying to debug a drag and drop problem in Delphi 2006. I hadn't debugged drag and drop code, and I'm sure anyone who has appreciates the challenges of using the debugger to figure out what is going on during a drag operation. The big problem is that if you want to set a breakpoint in the code which executes when the drag operation ...

Posted by on in Blogs
2005 wasn't much of a blog year for me (boy is THAT an understatement!). Anyway, it's a new year and I've decided to try and start over and begin blogging again. I've got quite a number of things I want to write about so hopefully I'll find the time to crank out at least a few entries each month. No promises on that but I'm planning to give it a shot at least. To kick things off, I've written up an article that describes a new Delphi command line switch that is used to configure the IDE to startup with a single personality. This new switch, -p, will be quite handy if you want tailor the default configuration for the kind of development work you do. You will need to be prepared to roll u...

Posted by on in Blogs
Yikes!  My last post was August 3rd!  My only excuse is that there is a certain product we have been working on around here that has been chewing up a “little bit“ of my time.  I actually haven't been finding the time to READ blogs, let alone write them.  Anyway, now that things are winding down around here I'm starting to catch up on things I've been putting off. I'm really impressed with the Bloglines news aggregator, it works very well for my blog reading style and I think I will write a series of entries to go over what I think are some of it's strong points.  If you haven't checked it out I highly encourage you to take it for a spin.  If you are...
Tags: Blogging
An update has been posted to Code Central which addresses several bugs that were introduced in the original Delphi 7.1 update.  You can find the details here: http://bdn.borland.com/article/0,1410,32492,00.html Special thanks goes to Dave Rowntree (Quality Central sysop for Midas/Datasnap) for his help in identifying the issues and being patient while folks around here coordinated the release of this update.  Folks around here are working pretty hard on upcoming products, so it took a little longer than I would have liked to get this out there, but we pulled it off....
Tags: Database

Posted by on in Blogs
I've just uploaded an update to Code Central which fixes a couple of problems you may run into if you are using moderately complex XML schema documents with the XML Data Binding Wizard. Relative paths were not being handled correctly for “includes“ and there was also a problem with resolving types. Thanks to Dave Brown and Gary Conley for bringing these issues to my attention on the borland.public.delphi.xml newsgroup. Update: June 6th 2005 - Updated the link to the download on code central, please post a comment if you have any more problems with it....
Tags: XML