Monitoring Query Progress / termination

I am a New to Delphi and am trying to program a form which launches select
statements to a sql-server via a TQuery component.

In some cases the statements may take some time to return. Is there any way
to make execution of the query asynchronous, so that my form can check the
query status and keep the user informed, or give them the ability to cancel
the query if required?