Monthly Archives: June 2007

Delphi IDE Wisdom

It’s Wednesday so here’s my list for the Delphi IDE:

  • Learn the difference between design-time and run-time packages
  • Use incremental search
  • Learn to create/install/deploy your own components
  • Learn to build your project from the command line
  • Use View as Text
  • Learn to import a type library, from the command line
  • Use the History tab
  • Learn to partition your application to use packages
  • Use a debug desktop
  • Use “Automatically close on successful compile”
  • Learn to use the call stack
  • Learn to use the thread view
  • Learn to step in the CPU view
  • Use conditional breakpoints
  • Use the ExtraUnits registry key
  • Watch my video
  • Watch Nick’s videos
  • Use component palette filtering
  • Learn all the shortcuts for your keybinding
  • Use selective symbol table loading to debug large packaged applications
  • Don’t ignore hints and warnings
  • Use Syntax Check

My Other Lists
Delphi RTL and Language Wisdom
Delphi VCL Wisdom

What’s your IDE list look like?

Using Google Maps from VCL sample application

VCL application using Google Maps

As promised, I finally got a chance to clean up the code and wrap up a nice little example of calling into and out of the WebBrowser control hosted in a VCL application. The code is available here. Be sure to read this post as well as this post for additional details. If you find this of interest you’ll also want to check out this post from Allen Bauer as well as this post from Marco Cantu.

The source code of this example uses the same Automation.pas unit that Allen distributed with his code.


[UPDATE: April 25, 2008] Related posts:

Delphi RTL and Language Wisdom

It’s Tuesday and following up my VCL list from yesterday, here my list for the RTL and Object Pascal language:

  • Learn to create your own TList descendants
  • Learn to write your own TCollection/TCollectionItem descendants
  • Use Format
  • Learn TThread then, understand TThread.Synchronize
  • Use TFileStream, TStringStream, TMemoryStream
  • Learn how to use the classes in SyncObjs.pas
  • Learn to call a function from a dynamically loaded DLL
  • Use exceptions
  • Learn when to use stdcall
  • Learn to use open array parameters
  • Use the *utils.pas units, DateUtils, StrUtils, MaskUtils, ConvUtils, VarUtils etc.
  • Learn the Math unit
  • Use SafeMM
  • Learn which exceptions the RTL throws
  • Use try…finally
  • Read the comments in SysUtils.pas
  • Call FindClose after calling FindFirst
  • Learn how to load packages dynamically
  • Use FindCmdLineSwitch
  • Just because it’s not in Windows.pas doesn’t mean it can’t be called from Delphi
  • Learn function inlining
  • Be careful using “with”
  • Learn to use interfaces
  • Use dynamic arrays
  • Read the Language Reference manual

What am I missing?

Delphi VCL wisdom

I thought it might be fun as I wind down my last week at CodeGear to post a few $l(Baz Luhrmann)-esque lists on various Delphi product areas. So here’s the first list relating to VCL:

  • Learn to use Actions then, learn to write action descendents
  • Learn how to create controls dynamically
  • Learn the difference/relationship between Parent and Owner
  • Learn how to handle a Windows messages
  • Learn how to use the OnCreateXXX methods in ComCtrls.pas
  • Use TCustomTreeView.ChangeDelay
  • Use TTreeNode.Data, TListItem.Data, TStringList.Objects
  • Learn how to use TMenuItems dynamically
  • Use Visual Form Inheritance
  • Use a custom icon for your application
  • Learn TScreen, TMonitor, TMouse, TClipboard
  • Use TApplicationEvents
  • Learn to use Align = alCustom
  • Learn when to override CreateParams
  • Learn when to use DoubleBuffered
  • Use frames
  • Learn to use packages

So, perhaps this can spread this through the Delphi blogsphere. If your a Delphi blogger let’s see your list.

My hosting provider response to a DDOS attack

The last two days has meant a lot of down time for my domain as a result of a DDOS attack against my hosting provider DiscountASP.NET. In the response below is a link to an explanation of what happened as well as some graphs of the traffic spike.

Dear Customer,

We experienced a network-wide outage Thursday morning and late evening
as the result of a distributed denial of service attack. You can read
details related to the outage here:

We would like to take this opportunity to make you aware of the
DiscountASP.NET status page, located at

In the event of any future network-wide outage, the status page will be
updated to provide you with as much information as possible. We hope
such a page will allow us to communicate more effectively during an
emergency situation, or when normal support office channels are affected by
an outage.

Our goal is to provide the highest quality, uninterrupted service
available anywhere. We hope that we rarely have to utilize the status page,
but we also want to be prepared to communicate during any possible
emergency situations.

Thank you for your continued support,


How is it possible Google Reader doesn't have search??

I was searching for this post by Jeff Atwood and this got me thinking that it’s crazy Google Reader doesn’t have search! I think when you start using Google Reader you should automatically, and behind the scenes, get a Google Co-op search engine that tracks the sites you are subscribed to and let’s you search only those sites.

Ah ha! It just so happens you can do this yourself. All you need to do is:

  1. Export your Google Reader OPML
  2. Create your own Custom Search Engine (CSE)
  3. Import your OPML file into your CSE
    1. Browse to Google Coop
    2. Click the control panel for your CSE
    3. Click the Advanced link
    4. Under “Annotations” browse to your OPML file and click Uplolad

Presto! You now have a now have a Google Search Engine of your subscribed blogs. Let’s see how well it works on the aforementioned post.

Search from


Search with Google Custom Search Engine (CSE)


Sweet! Worked like a charm, now if Google would just do the leg work for us. 🙂

My blog and

Recently, I contacted the guys at Gurock Software who run and requested my blog no longer be aggregated. The decision is in part related to my new plans although it’s one I’ve been considering for awhile particularly after Tobias Gurock blogged about moderating non-Delphi related items. I think his post may have been partly instigated by a number of my “off-topic” posts as I was blogging about my Western Digital experience among others. I tend to be at the high end when it comes to post count and Delphi bloggers so a lot more of my “off-topic” content was appearing there.

In case you’re not already subscribed, here is what you need to know.

Blog outage caused by hosting provider DOS attack

I just learned via email from my provider, that they’ve suffered a major DOS attack accounting for the reason I couldn’t reach my domain nor log into my hosting account. It appears as though they’ve at mitigated the attack as I’m able to post and login once again.

I’ve mentioned it before but I really like Their service is very good and I got a reply from support via email after I inquired within a very reasonable period of time considering the cirrcumstances regarding the situation.