Using the DelphiX collision detection procedure to check whether you've hit a wall is not the best way. Generally these games use a tilemap to check the position of, in this case, bomberman.

ie suppose your map looks like :
11111111111
1X000000X01
11010110101
1101B110001
11010111011
1100X000001
11111111111

where
1 = wall
0 = path
B = Bomberman
X = special bonus
First tile (top,left) at coordinates (0,0)=1
Each tile and bomberman itself is say 64x64 pixels big.

Now, you can check the coordinates of Bomberman in this map by dividing the x and y of bomberman by 64.

[pascal]
//tile record
type
TTile = record
image : TDirectDrawSurface;
wall : boolean;
bonus : boolean;
visible : boolean;
(..)
end;
(..)
var
Tilemap = array [0..20][0..20] of TTile;
(..)
if tilemap[bomberman.x div 64][bomberman.y div 64].wall = true then
//do something here, like stop moving or remove bonus etc
[/pascal]

I realize, all this doesn't help you with the collisions problems, but it will give you a better start and less problems (at least I hope so).
If you need more information about tiles, check the tutorials at my website.