SHGetSpecialFolderLocationとSHGetPathFromIDListのコンビネーションです。
実際のフォルダの作成には、CreateDirectoryを使っています。
2025年5月 2日(金) 22:00 JST
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 ユニットを追加する必要があります。
ボタンのキャプションを2行表示したいと思ったことはありませんか?
実はボタンのキャプションを2行にするのはすごく簡単です。しかし、コンポーネントにしないで実現することは難しいのでコンポーネントを作成してみます。
作り方は、TButtonを継承したボタンを作成します。このボタンのCreateParamをオーバーライドします。
ここでウィンドウ作成パラメータ(Style)にBS_MULTILINEという値を付けl加えることで、2行表示ができるようになります。
注 コンポーネントの作成は[コンポーネント]メニューの新規作成から行えます。