Hi and welcome to this board!
First of all, one basic hint: hexadecimal, decimal, binary, octal or whatever you want, are only different ways to display values. The values themself are always the same but the display differs. You also shows this in your question, because 546869732070726F6772616D is the same as "This program", only the display format differs.
Due this fact: don't care about the display format, just look for the values. So whatever you want to search, convert all inputs (in what display format it ever is entered) to the values it self and search for the given value.
For looking in a binary file, take a look in the help about
TFilestream. This class will offer you all needed for this.