1. Tech

Your suggestion is on its way!

An email with a link to:


was emailed to:

Thanks for sharing About.com with others!

Readers Respond: What Is Your Most Common Delphi Programming D'Oh - Coding Error Moment?

Responses: 31


Never mind your 1, 4, 6, or 10+ years in coding Delphi applications! When you code you make compile and logic errors in your code. Some errors are easy to handle some will take you some time.

The fact is that no matter how careful you are, a program you are currently developing will probably contain some bugs.

Take a look at this piece of code:

if 3 > 5 then;
  ShowMessage('3 is greater than 5!!');

It took me a few minutes to figure out why the ShowMessage was always executing!

Do you make mistakes when coding in Delphi? What are your most common errors - "D'Ohs"?

Syntax checking

I can say that I was always saved by the Castalia software. It is unbelievable what this can prevent. I am by no ways affiliated with Castalia, but take a look to that amazing software.


This used to happen more often, but I 've programmed myself to put the .next inside the block immediately after writing "while not xxx.eof do". It's just like I have programmed myself to immediately attach an attachment to an email when I write something like "Attached is".

for i := 0 to Count

It seems to happen most often when I process the items of a TStrings or TStringList. When it gets to that last iteration - boom!

if then ... D'Oh

I wanted to write a simple if then statement, that became a nightmare when I added a semicolon right after then. I took me two hours to see it, in fact after two hours of what I believed to be a magic intervention a collegue told me "weird your semicolon after 'then'" D'Oh :(
—Guest Shy one

Code completion with CleanupInstance

I had random AV's in my app for about four years which I could never track down. It turned out that a stringlist I was trying to clear somewhere deep in the bowels of the code had sl.CleanupInstance instead of sl.Clear. I only found it when I created an interface wrapper IStringList which did not expose the CleanupInstance method.
—Guest G

Var Parameters

I still get caught every now and again by neglecting to prefix a parameter to a procedure that I expect to change with "VAR". On a bad day it might sometimes take me 5-10 minutes of "why isn't this working?" before I have the head-slapping "D'oh" moment. Stephen Posey stephenlposey@earthlink.net

Forgetting The "Dataset.Next"

Almost my database development errors are similar to this: While not Table1.EOF do begin List1.Items[0] := Table1.Fields[0].AsString; //without having Table1.Next here end; All of those lines end on a crash...

Full indenting without begin..end

I inherited an application, and had to fix one of its errors. Took some time until figured what it is: there was no begin..end after the if..then, but it was properly indented (some 50 statements).
—Guest Andras

infinite loop

so many.. my favourite is infinite loop becaue the stop condition is never met in a while or repeat loop.
—Guest batman

List index out of bounds

The most common and annoying error i always seem to encounter!
—Guest Manjari

using with "With" with no mercy!

sometimes I have code like: object1.property1 := '1'; object2.property2 := '2'; property3 := '3'; object4.property4 := '4'; So I happily (and stupidly ) change it to: with object1 do begin property1 := '1'; property2 := '2'; property3 := '3'; property4 := '4' end; Sometimes, property3 exists in object1 and Self (which was the intended meaning) and after introducing the "with" I have introduced a subtle bug :@. Always check before introducing a "with", and keep´em short! Be careful when nesting´em
—Guest Alvaro Castiello

Forgetting Next

I sometimes get in a hurry when traversing a database and might use something like While not database.eof do begin Do something here end; All the while forgetting to put the Database.next in the loop... OOPS!
—Guest Robert Smith

i for idiot

I spent half a day trying to figure out why one of my loops kept blowing up. I've done a million and never had a problem, what the heck, just couldn't see it..... FINALLY realized I was defining i as a WORD and the loop was starting as a negative number. I was trying to save space by using Word instead of Integer...NEVER AGAIN.

birthday finding

Once I have been confused when my software to find customers with birthday in given interval found nothing.. )) A little debug, type match check, etc, I realized that there is really no one who was born in last few days! :-)))) (Comparing dates with an year portion) D'ooooh! )
—Guest Mch

Simple Failure

I was tired while coding an application, it was an EXTREMELY long one. I compiled it for the first time, and realised I'd forgotten every single semi-colon. It took a lot of replacing.
—Guest Joshuzzz

Zarko Gajic
About.com Delphi

Explore Delphi
By Category
    delphiDelphicomputeTechb0503636f2000405a6811db6b0503636f2000505a680411ahttp://delphi.about.comod526F6F743522terminatedZarko Gajicdelphiguide36W00062zNIP11970-01-0110/od/index.htm0526F6F741approved/od
  1. About.com
  2. Tech
  3. Delphi
  4. Essential Tools and Utils
  5. Fun Info Humor
  6. What Is Your Most Common Delphi Programming D'Oh - Coding Error Moment?

©2015 About.com. All rights reserved.