The wait statement is used to wait in a particular loop but it is not synthesized as in real time in hardware there in no wait state.
Use a counter equal to the time you want the wait statement to execute. Keep on incrementing the counter and write a if loop or a condition that unless your counter is reached specified value be in loop.
the wait statement can be synthesized as follows but only one time in process as follows:
wait until rising_edge(clk);
for delay you have to use clock divider, which divides the on-board clock freq say 24MHz to you required frequency say 1KHz generating clock pulse with 1ms time period(delay) .
You can use the code synthesized by me on my blog. it is completely synthesizable.