如果说我要得到一个clistctrl里的item的总数,
我可以这样.int nItemCount = ::SendMessage(hWnd, LVM_GETITEMCOUNT, (WPARAM)0, (LPARAM)0);但是如果我想得到dephi中的tdbgrid里面的item的总数?应该sendmessage(hwnd,这儿应该是什么消息?
多谢.
我可以这样.int nItemCount = ::SendMessage(hWnd, LVM_GETITEMCOUNT, (WPARAM)0, (LPARAM)0);但是如果我想得到dephi中的tdbgrid里面的item的总数?应该sendmessage(hwnd,这儿应该是什么消息?
多谢.
解决方案 »
- 有用delphi做图像处理的兄弟吗,进来帮帮忙
- 对RzShellList或RzShellList熟悉的请进
- 又一个简单问题,要分的进来噢,解决马上结贴
- 我只能用D5,我在用NMUDP控件的时候发现有两个问题,一是不能广播,二是同一机器的同一端口的两个程序不能同时接收据,请高手帮个忙,或
- 关于数据录入与修改问题(急!)
- 在dbgrid里,当鼠标点中一条记录的时候,我要通过点击按钮来打开一个窗口,显示该记录的信息,然后修改之。
- 郁闷呐,,为什么getprinter得到的打印机的状态都是0啊。。。
- 高分请教 , 用MSComm控件发送到COM口的16进制数在VB中可以表示成0x3E 这种形式 ,在Delphi中如何表示 ?
- 谁有delphi6.0的中文帮助,谢谢
- 急!请朋友帮助,在DELPHI5(DBGrid)中怎样删除多条记录?(现已选中多条)多谢谢!!!
- 各位高手看过来,关于从二层结构到三层结构的转变?在线等待!
- form2.edit2.text:=form1.edit1.text //这种方法是不是妥当
说白了,就是我想在别外一个程序里得到dephi中tdbgrid里item的总数.
我已经实现在得到其他程序(是vb编的用的是clistctrl里所有的内容).就是发送LVM_GETITEMCOUNT,但对于dephi的tdbgrid里这个LVM_GETITEMCOUNT应该变成什么值?
因为我没有dephi,所以只好向各位大大求救了.
楼主是想通过发送消息得到ROM的值!(虽然可以通过属性得到)
for exampleprocedure TForm1.Button1Click(Sender: TObject);
var
Linecount: Integer;
begin
Linecount := sendmessage(memo1.Handle,EM_GETLINECOUNT, $FFFF, 0);
showmessage(IntToStr(Linecount));
end;
你就不能通过其他手段达到你的目的吗?要知道
“条条大道通罗马”,应该有其他的解决方案,不要吊死
在一棵树上!!
ComCtrls单元里:
function TListItems.GetCount: Integer;
begin
if Owner.HandleAllocated then Result := ListView_GetItemCount(Handle)
else Result := 0;
end;
Commctrl单元里:
function ListView_GetItemCount(hWnd: HWND): Integer;
begin
Result := SendMessage(hWnd, LVM_GETITEMCOUNT, 0, 0);
end;
首先,DBGrid中的行数永远是你当前看到的行数,因为它根本不保存任何数据,只是在需要数据时根据DataSource从相应的DataSet中获得。这与TStringGrid一样,希望得到的行数与数据有关,而与看到的窗口行数无关。
第二,楼主显然想获得的是数据的行数而不是DBGrid的行数,俺猜想恐怕就Delphi目前提供的TDBGrid组件尚不能直接实现。
第三,楼主以VB中的类来推断Delphi中外观相似的类的特征,忽略了前提,那就是楼主列举的类,其数据存储在类的内部,应该是私有成员吧,而Delphi中的TDBGrid中显示的数据全部从DataSource、DataSet中获得,根本不保存任何来自数据集的数据。更何况楼主列举的类来源于Windows,而TDBGrid根本与TEdit、TListView等控件不是一回事(后面列举的控件,在Windows中响应什么消息,在Delphi中同样响应什么消息,因为它们来源于Windows)。
根本不保存任何来自数据集的数据?这个有点疑问.
不管怎么说,tdbgrid总要把数据缓存在自己的类空间里吧.比方说我拖动tdbgrid的滚动条,这个时侯tdbgrid肯定响应wm_paint吧哈.应该更新屏幕内容吧,如果让我来设制这个类的话,我不会在响应一次wm_paint,就向数据库提交一次申请吧哈.而是把一次提交的内容包存在自己的私有空间(暂时这么叫吧哈).不过你分析得挺有道理的.pfpf.哪天我想学dephi,教教我好不好.
我承认,单纯采用sendmessage不可能得到itemcount;(如果类本来就没这个消息,发送这个消息也没用哈).
sorry.结贴,给分。