with dbgrid1.DataSource.DataSet do
for i:=0 to dbgrid1.SelectedRows.Count-1 do
begin
gotobook(pointer(dbgrid1.SelectedRows.items[i]));
dbgrid1.DataSource.DataSet.Delete;
end;
end;
这是在点击删除按钮的代码,当用鼠标选中某条或某几条来删除并没问题,问题是当运行删除后,dbgrid焦点会自动移上或移下,这时我如果直接再按一下删除按钮就出错了
for i:=0 to dbgrid1.SelectedRows.Count-1 do
begin
gotobook(pointer(dbgrid1.SelectedRows.items[i]));
dbgrid1.DataSource.DataSet.Delete;
end;
end;
这是在点击删除按钮的代码,当用鼠标选中某条或某几条来删除并没问题,问题是当运行删除后,dbgrid焦点会自动移上或移下,这时我如果直接再按一下删除按钮就出错了
DATASET.PRIOR;
這是我的做法,用dbgrid的Locate方法就可以了;
QRY_CARD是dbgrid對應的數據集;
'CARD_ID',數據集中的一個欄位;
(EDT_CARD_ID.Text)是'CARD_ID'等於的值;
上面語句的含義就是讓dbgrid的當前指定的記錄為:CARD_ID=EDT_CARD_ID.Text的那條記錄;
Locate的用法在DELPHI的幫助中有詳細介紹!!
dbgrid2.SelectedRows.Clear;
虽然还是有焦点存在,让用户误认是已经选中的,但总比出错好