按住shift键可统计选中行的数量,点中某列知道列名

解决方案 »

  1.   

    被選擇的行...
    SelectedRows: TBookList 
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
    i, j: Integer; 
    s: string; 
    begin 
    if DBGrid1.SelectedRows.Count>0 then 
       with DBGrid1.DataSource.DataSet do 
         for i:=0 to DBGrid1.SelectedRows.Count-1 do 
         begin 
           GotoBook(pointer(DBGrid1.SelectedRows.Items)); 
           for j := 0 to FieldCount-1 do 
           begin 
             if (j>0) then s:=s+', '; 
             s:=s+Fields[j].AsString; 
           end; 
           Listbox1.Items.Add(s); 
           s:= ''; 
         end; 
    end;  
      

  2.   

    dbgrideh.selectedrows記載了所有被選擇行的book;利用SelectedRows和GotoBook完成。代碼如下: (得到選擇的行,怎樣操作都行如插入一張表中)自己研究一下procedure TForm1.Button1Click(Sender: TObject); 
    var 
    i, j: Integer; 
    s: string; 
    begin 
    if DBGrid1.SelectedRows.Count>0 then 
       with DBGrid1.DataSource.DataSet do 
         for i:=0 to DBGrid1.SelectedRows.Count-1 do 
         begin 
           GotoBook(pointer(DBGrid1.SelectedRows.Items)); 
           for j := 0 to FieldCount-1 do 
           begin 
             if (j>0) then s:=s+', '; 
             s:=s+Fields[j].AsString; 
           end; 
           Listbox1.Items.Add(s); 
           s:= ''; 
         end; 
    end;
      

  3.   

    第一个问题不知道你要操作什么procedure TForm1.DBGridEh1CellClick(Column: TColumnEh);
    begin
    //字段名
      ShowMessage(Column.FieldName);
    //标题名
      ShowMessage(Column.Title.Caption);
    end;
      

  4.   

    1.统计行的数量
      DBGridEh.SelectedRows.Count;
    2.点中某列知道列名
      Column.FieldName;
      

  5.   

    当dbgrideh.selectedrows 设为True时,可知道DBGrid1.SelectedRows.Count的值,即可统计数量,
    但无法知道我选中的列名,永远是第一列。
    当dbgrideh.selectedrows 设为False时,可知道我选中的列名,但无法统计数量。
    怎么办???