vielleicht funktioniert es so:
SearchFor := pAnsiChar(StrAlloc(Length(SearchString) + 1));
Das mag vielleicht "erstmal" so halbwegs gehen, aber richtig ist es so
SearchFor := AnsiStrAlloc(Length(SearchString) + 1);
.
Außerdem noch StrPCopy zu StrPCopy
A usw.