DBGridのセルにボタンを表示する

 DBGridのセルの中に小さいボタンを表示する方法です。

Query、Table などの項目を追加します。 Query , Table をダブルクリックして項目エディタを起動し、さらに右クリックのポップアップメニューから「全ての項目を追加」を選びます。

 

次に DBGrid の Columns を設定します。DBGrid をダブルクリックして Columns ウィンドウを表示し、右クリックのポップアップウィンドウから「すべての項目を追加」を選びます。

 

ボタンを表示したいフィールドを選択してオブジェクトインスペクタで ButtonStyle プロパティを "cbsEllipsis" に設定します。

 

以上で設定は完了です。実行すると以下のようにボタンが表示されます。

ボタンを押された場合のイベントは DBGrid の OnEditButtonClick に記述します。このボタンを複数のフィールドに設定することができますが、イベント内ではどのフィールドのボタンを押されたかが分かりません。ですので現在選択されているフィールドを DBGridの SelectedField で判断してください。

■ DBGrid のボタンを押した場合の処理例
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
  if  (DBGrid1.SelectedField = Query1.FieldByName('ARTISTNAME')) then  
  begin
    ShowMessage('ほげーー');
  end else
  if  (DBGrid1.SelectedField = Query1.FieldByName('BIRTHYEAR')) then
  begin
    ShowMessage('もけーー');
  end;
end;