掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DBGridで、任意のレコードを削除するには? (ID:6837)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例えば、グリッド上でダブルクリックにより選択した行を非表示にするとします 除外する行をテストで確認しながらするとして、フォーム上にリストボックスを 配置してください。 先ず、データセットのFilteredプロパティをTrueにします、 これでOnFilterRecordのイベントが実行されるようになります。 procedure TForm1.DBGrid1DblClick(Sender: TObject); begin //得意先コードをインデックスとし、除外する行を追加 ListBox1.Items.Add(Query1.FieldByName('得意先コード').AsString); //フィルターレコードで検証させる Query1.FindNext; end; procedure TForm1.Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin //該当するレコードの得意先コードが除外リストにあればレコードを表示しない Accept := ListBox1.Items.IndexOf(DataSet.FieldByName('得意先コード').AsString) = -1; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin { この処理は、プログラムの作り方によっては必要ありませんが、 フォームを閉じる際に、例で試用しているリストボックスがフォーム上から 消された後に、FilterRecordのイベントが実行される為、フォームを閉じる 時にはFilterRecordのイベントを実行しないように制御しているだけです } Query1.Filtered := False; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.