SHFileOperation を利用すると、エクスプローラのように履歴を残しながらのコピーと移動が行えます。
さらにコピーのアニメーションまでします。応用でゴミ箱にファイルを削除することも可能です。
Shell 関係の API を利用するので、ShellAPI を uses に追加する必要があります。
2025年5月 2日(金) 23:06 JST
SHFileOperation を利用すると、エクスプローラのように履歴を残しながらのコピーと移動が行えます。
さらにコピーのアニメーションまでします。応用でゴミ箱にファイルを削除することも可能です。
Shell 関係の API を利用するので、ShellAPI を uses に追加する必要があります。
SHGetSpecialFolderLocationとSHGetPathFromIDListのコンビネーションです。
実際のフォルダの作成には、CreateDirectoryを使っています。
DBGrid で入力中の文字列はどうすれば確認できるでしょうか?DBGrid から確定されて DataSet にデータが更新されたら Field の値を確認できるんですが。
DBGrid で入力中の文字列は DBGrid にある InplaceEditor に保持されています。
ですからキー押されて文字が入力されたときに InplaceEditorの値をとってきて確認します。
この機能を実現するには2つの方法があります。
1つはTable側で新規レコードを追加させないようにする方法 と DBGrid側でチェックする方法があります。
本当はDBGrid本体で新規レコード行を表示しないようできると便利だと思うのですが、
コンポーネントを修正しないとだめなので簡単にできる方法を紹介します。
Atomを使う方法 FindWindow を使う方法などアプリケーションの多重起動防止方法にはいろいろありますが、 ここではもっとも実装が簡単だと思われるMutexを使った方法をご紹介します。
Windows APIの CreateMutex を使用して Mutex を作成します。すでに同じ名前を持つ Mutex が作成されていた場合、 CreateMutex は「ERROR_ALREADY_EXISTS」を返します。この場合実行を進めると二重起動となるので、 すぐに RelaseMutex で Mutex を開放して終了します。その他の場合には、通常通りプログラムを起動します。
※注意 CreateMutex を使用するには、uses 節に Windows ユニットを追加する必要があります。