1000分求救!!!!!!!!DBGrid多选择问题,小弟在线等,急 !!!! ( 积分: 300 )

  • 主题发起人 主题发起人 boy8899
  • 开始时间 开始时间
B

boy8899

Unregistered / Unconfirmed
GUEST, unregistred user!
请教富翁们如何在DBGrid多选的时候只选中符合条件的记录?不符合条件的记录出现提示后不选择?小弟在线等,急 最好详细一点说明或者有例程 小弟愚笨能否给个例程 小弟急!

主要是怎么取消选择!
 
这个问题我研究到这一步,已经满足要求了,而且不是提示,而是询问是否选择,
下一步就是检测是否符合条件,具体什么条件,搂主也没说,说了我都懒得理。
满意就加分,不要潜水,问其它问题,请另贴

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
ADOConnection1: TADOConnection;
procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ADOTable1BeforeScroll(DataSet: TDataSet);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ Private declarations }
F:Boolean;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with dbgrid1, dbgrid1.SelectedRows do
begin
if (CurrentRowSelected = true)
and (DataSource.Dataset.FieldValues['name'] = '烙铁') //询问条件
and (MessageDlg('你是否选择“烙铁”?', mtConfirmation, [mbYes, mbNo], 0) = mrNo) //询问过程
then
CurrentRowSelected := False;
end;
end;

procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
with dbgrid1, dbgrid1.SelectedRows do
begin
if (F = true)
and (DataSource.Dataset.FieldValues['name'] = '烙铁') //询问条件
and (MessageDlg('你是否选择“烙铁”?', mtConfirmation, [mbYes, mbNo], 0) = mrNo) //询问过程
then
CurrentRowSelected :=false;
end;
end;

procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
F:=dbgrid1.SelectedRows.CurrentRowSelected;
end;

end.
 
SelectedRows.CurrentRowSelected

我要的就是这一句,苦恼了许久,原来就是这么简单!我差点都发送Ctrl+鼠标左键消息了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部