この機能を実現するには2つの方法があります。
1つはTable側で新規レコードを追加させないようにする方法 と DBGrid側でチェックする方法があります。
本当はDBGrid本体で新規レコード行を表示しないようできると便利だと思うのですが、
コンポーネントを修正しないとだめなので簡単にできる方法を紹介します。
2025年5月 3日(土) 00:14 JST
この機能を実現するには2つの方法があります。
1つはTable側で新規レコードを追加させないようにする方法 と DBGrid側でチェックする方法があります。
本当はDBGrid本体で新規レコード行を表示しないようできると便利だと思うのですが、
コンポーネントを修正しないとだめなので簡単にできる方法を紹介します。
Atomを使う方法 FindWindow を使う方法などアプリケーションの多重起動防止方法にはいろいろありますが、 ここではもっとも実装が簡単だと思われるMutexを使った方法をご紹介します。
Windows APIの CreateMutex を使用して Mutex を作成します。すでに同じ名前を持つ Mutex が作成されていた場合、 CreateMutex は「ERROR_ALREADY_EXISTS」を返します。この場合実行を進めると二重起動となるので、 すぐに RelaseMutex で Mutex を開放して終了します。その他の場合には、通常通りプログラムを起動します。
※注意 CreateMutex を使用するには、uses 節に Windows ユニットを追加する必要があります。
MinimizeName 関数を使用します。
インストール画面などでよく見かける、ファイル名の途中を...で省略した文字列を作成するために、DelphiではMinimizeName関数が用意されています。
注意 この関数を使用するためには、usesにFilectrlユニットを追加する必要があります。
Windows APIをいくつか使って移動行数を計算し移動しています。
2行表示のリストを作成するには、OnDrawItem イベントと OnMeasureItem イベントを使用します。
以下のステップで行います。
この方法は、TCheckListBox でも使用できます。(2行目が固定で“2行目”になっているので、お好みに合わせて変更してください。 また、Styleを「lbOwnerDrawVariable」に変更するのを忘れないでください。)