"Wenn es nicht da ist, dann gib es frei"
. Ich glaube kaum, dass Du das so gemeint hast.
[edit] Um noch einen Tipp loszuwerden: statt
bmp1.Free;
besser
FreeAndNil(bmp1);
verwenden, dann sollte es beim finalen Free keinen Fehler mehr geben, da Free prüft, ob das Objekt nil ist. [/edit]