Just to echo something that was said earlier...

Whenever you use the condition:

If SomePointerReference <> Nil Then

it is much better (more portable, readable, etc) if you use this instead:

If Assigned(SomePointerReference) Then

It is an inline function/macro, so it shouldn't be less efficient.