DBGridのPicListを1クリックで表示させるには

解決


Flying kong  2003-09-06 20:38:29  No: 4686

Flying kongです。
DBソフトをはじめて作成中ですが、プルダウンリスト(▼マーク)
が2回目のクリックで表示されます。
この部分は数量を入力する項目ですが、1回で▼マークが表示
することは可能でしょうか?

また、1回のセル項目クリックで▼マークを押さなくてもリストが
表示され選択可能になるすごい方法はありますか?
procedure TForm2.DBGrid1CellClick(Column: TColumn);
var
  i : integer ;
begin
   if not (Column.Index = 1) then Exit;
   DBGrid1.Columns[1].PickList.Clear;
   for i :=0 to 10 do
   DBGrid1.Columns[1].PickList.add(IntToStr(i));
end;


masayan  2003-09-10 01:20:57  No: 4687

DBGridのOptionプロパティのdgAlwaysShowEditorをTrueにしてみてください。

プルダウンボタンは、編集モードの時しか表示されません。dgAlwaysShowEditorがFalseの場合、1回目のクリックでそのセルに移動、2回目で編集モードになります。dgAlwaysShowEditorをTrueにすると常に編集モードになるので1回のクリックでプルダウンボタンが出てくると思います。


Flying Kong  2003-09-13 06:45:52  No: 4688

masayanさん、Flying kongです。レスありがとうございます。

dgAlwaysShowEditorをTrueに早速してみました。
すぐ入力可能状態になりますが、プルダウンボタンは逆に
何べんクリックしてもでなくなりました。
戻すと2回クリックするとプルダウンボタンが表示されます。

なかなか難しそうなので、いったん解決にします。


masayan  2003-09-13 23:10:56  No: 4689

Flying kongさん あきらめるのは早いです。

DBGridのOnCellClickでプルダウンの内容を設定しているようですが、OnColEnterに変えてみてください。多分プルダウンボタンが表示されると思います。

procedure TForm2.DBGrid1ColEnter(Sender: TObject);
var
  i : integer ;
begin
// if not (Column.Index = 1) then Exit;
// ▲ここでは、カラム位置を判定できないので削除
   DBGrid1.Columns[1].PickList.Clear;
   for i :=0 to 10 do
   DBGrid1.Columns[1].PickList.add(IntToStr(i));
end;

もし、プルダウンリストの内容が常に固定であれば、設計時にPickListを設定するかFormのOnCreateで設定した方がいいと思います。また、実行時にレコード(行)毎に(項目の内容に応じて...)変えたいのであれば、データセットのAfterScrollで設定するといいと思います。(AfterScrollは試していません...)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加