マルチスレッドが答えです。標準的な Delphi アプリケーションは、基本的に、一度に 1 つのことを実行できるシングル スレッド アプリケーションです。したがって、GUI ロックアップは、何か他のことをしている場合、応答性を維持できません。
レスポンシブ GUI が必要であると同時に重い作業を行う場合は、別のスレッドで重い作業を行う必要があります。このようにして、メイン スレッドは応答性の高いプログラムを実現し、ワーカー スレッドは面倒な作業を行うことができます。これは、重いデータベースの作業に適していますが、たとえばファイルのダウンロードや、たとえばリモート サーバーの応答に時間がかかる状況にも適しています。
しかし、マルチスレッドの使用方法を説明すると、この質問の説明が大きすぎるため、この回答はおそらく回答よりも多くの質問を提供します。
ただし、もう 1 つ: データベース コードを詳しく調べてください。データベースからレコードをどのように取得していますか、データベースに適切なインデックスがあるかなどなど。マルチスレッドについて考え始める前に、このコードを最適化することで非常に高速な速度を得ることができます。
http://cc.embarcadero.com/item/14809から写真付きでダウンロードできる次のリソースを見つけました: http://thaddy.co.uk/threads/非常に役立つスレッド化チュートリアルです。