在dbgrid上,当按下鼠标左键移动鼠标至松下鼠标左键,鼠标经过的所有记录都被选择上,怎样实现?
解决方案 »
- 关于stringgrid的滚动条问题?如何在不改变定位行的前提下,实现滚动效果?
- 怎样把一个控件从一个TPanel里拖到另一个TPanel里
- 关于界面控件的使用问题,请各位帮忙.谢谢
- 如何控制mdichild子窗体在屏幕中间显示??
- 高分求助,分不够再加
- delphi中使用opencv进行bmp转pIplimage的问题.
- 哪里可以找到各种云台解码器的详细资料?
- 有关数据库路径问题,????????????????
- ##### 20 分#####如何知道CURSOR在当前的STRINGGRID的CELLS的位置
- 菜鸟问题,关于数据库
- sql server处理并行操作的问题!!在线等
- 求助:实现一个excel功能的控件
procedure TFrm_StockSelect.Action_AddStockExecute(Sender: TObject);
var
noselected: boolean;
i,Selectrow_Count : integer;
begin
noselected := false;
if DM.ADOQuery_StockSearch.recordcount > 0 then
if Adoquery_SelectBook = nil then
begin //如果这里为真的话,那么选择器将无法使用!
Application.MessageBox('程序出现致命错误,请与经销商联系!','提示',MB_ICONWarning + MB_OK);
exit;
Application.Terminate;
end
else
begin
with DM.ADOQuery_StockSearch do
begin
DisableControls;
Filter := '';
end;
selectrow_count := DBGridEh_Stock.SelectedRows.Count;
IF selectrow_count < 1 then
begin
selectrow_count := 1;
noselected := true;
end
else
begin
DM.ADOQuery_StockSearch.first;
end;
with Adoquery_SelectBook do
if not Active then
try if not ControlsDisabled then disablecontrols;
try
if Selectrow_Count >0 then
for i:= 0 to Selectrow_Count - 1 do
begin
Active := true;
if (state in [dsedit,dsinsert]) then cancel;
if not noselected then
DM.ADOQuery_StockSearch.GotoBook(pointer(DBGridEh_Stock.SelectedRows.Items[i])); if SearchBookForDataset(DM.ADOQuery_StockSearch.FieldByName('Stock_Serial').ASSTring) then
begin
append; //为的是不让在第一条
end
else
append;
//------------------------------------分类给数据---------------------------
if OperType = 'Loan' then
begin
//向明细表中添加选择得数据
fieldbyname('Stock_Serial').value :=DM.ADOQuery_StockSearch.FieldValues['Stock_Serial'];
fieldbyname('Book_Name').value :=DM.ADOQuery_StockSearch.FieldValues['Stock_BookName'];
fieldbyname('Book_Type').value :=DM.ADOQuery_StockSearch.FieldValues['Book_Type'];
fieldbyname('Book_Price').value :=DM.ADOQuery_StockSearch.FieldValues['Book_Price'];
with DM.ADOQuery_StockType do //通过类型找到每日租金
begin
close;
sql.clear;
sql.add('select * from stockType where StockType_Name = :StockType');
Parameters.ParamValues['StockType'] := DM.ADOQuery_StockSearch.FieldValues['Book_Type'];
open;
end; fieldbyname('Book_Hire').value := DM.ADOQuery_StockType.FieldValues['StockType_Money'];
fieldbyname('Loan_Date').value := formatdatetime('yyyy-mm-dd',Now);
fieldbyname('Loan_code').value := Frm_Loan.Edit_LoanCode.text;
end; if OperType = 'Sale' then
begin
fieldbyname('Stock_Serial').value :=DM.ADOQuery_StockSearch.FieldValues['Stock_Serial'];
fieldbyname('Stock_BookName').value :=DM.ADOQuery_StockSearch.FieldValues['Stock_BookName'];
fieldbyname('Book_Type').value :=DM.ADOQuery_StockSearch.FieldValues['Book_Type'];
fieldbyname('Book_Inprice').value :=DM.ADOQuery_StockSearch.FieldValues['Book_Price'];
Fieldbyname('Sale_Code').Value := Trim(Frm_StockSale.Edit_SaleCode.text);
FieldByName('Sale_Date').Value := FormatDateTime('yyyy-mm-dd',now);
end;
//--------------------------------------------------------------------------
if (state in [dsEdit,dsInsert]) then
begin
post;
active := false;
end;
end;
except
raise;
end;
finally
EnableControls;
end; end;end;