delphi的dbgrideh中有个区域选中数据的功能。怎样才能知道 选中区域的最上面的行和最下面的行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi的dbgrideh中有个区域选中数据的功能。怎样才能知道 选中区域的最上面的行和最下面的行?相关的知识,希望对你有一定的参考价值。

delphi的 dbgrideh中有个 区域选中数据 的功能(就是鼠标左键按住不放,一拉,能选一大块的那功能)。我想问下,怎样才能知道 选中区域的最上面的行和最下面的行? 或者 知道左上角第一个选中的cell也行。 不是多行选中。是区域选中。

在grid中的node属性里面有列的属性啊,即node.Column[i].selected = true
不过需要从头开始,即,GRID1.COLUMN[0],COLUMN[0].SELECTED = TRUE
然后从0,0的头开始查找哪个节点开始被选中了。
简单一点的,你就显查找到哪行被选中了,取到此行,添加进NODE,然后一列一列的查哪个selected到了。
参考技术A <怎样才能知道 选中区域的最上面的行和最下面的行? >

procedure TForm1.ge2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
yy:=ge2.DataSource.DataSet.RecNo;
end;

procedure TForm1.ge2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
showmessage(inttostr(yy)+'->'+inttostr(ge2.DataSource.DataSet.RecNo));
end;

delphi 如何判断多个checkbox是不是选中

参考技术A 不太明白你的意思,既然你表内有多个复选框,就说明表不是空的。复选框在dbgrideh中就是一个boolean类型的字段值,该值为true,则选中,为false,则未选中。所以,你只需判断该dbgrideh所在列的值就行了。 参考技术B 方法1:对每个checkbox做依次的判断,是否checked=true.多的话,就麻烦了。
方法2:首先创建数组,大小根据checkbox的个数来定夺,然后在每个checkbox的click事件中,在数组的相应下标下,对于checked,或者uncheck的值填充,完了之后,在你需要判断的地方,对数组进行循环,就可以得出你需要的答案了。此方法最活
方法3:对compement做with循环,判断是否位checkbox控件,是的话,检查checked属性,跟方法1想类似,但简单明了与方法1,代码量也相对方法1少
给分!

以上是关于delphi的dbgrideh中有个区域选中数据的功能。怎样才能知道 选中区域的最上面的行和最下面的行?的主要内容,如果未能解决你的问题,请参考以下文章

delphi DBGridEH控件的checkbox如何判断是不是选中,求指导 !

delphi DBGridEh的checkbox怎么实现勾选即代表选中这一行

delphi, 怎样让dbgrideh只剩下已选行?

delphi:dbgrideh中设置了checkbox列,不能勾选

delphi 如何判断多个checkbox是不是选中

delphi 把EXCEL数据导入到DBGRIDEH