Why set the transparency? Doesn't this change the bitmap?
Why not just apply a mask if you want to drop the alpha part? Seems more sensible, and you don't need to set the data.

Searchcol := SearchCol and 0xFFFFFF00;
...

if LongWord(FData[c]) and 0xFFFFFF00) ==  SearchCol

Yes/No?