如何判断鼠标右键按下时,是点击了DBGrid中的标题栏还是数据行,请各位大哥帮帮忙!谢谢! 实现的功能是:当鼠标右键按在DBGrid的标题栏时弹出一个菜单,当按在数据行时又弹出另一菜单,这个要如何实现?请帮帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.DBGrid1TitleClick(Column: TColumn);begin showmessage('你按了标题栏') ; DBGrid1.PopupMenu := PopupMenu1;end;procedure TForm1.DBGrid1CellClick(Column: TColumn);beginshowmessage('单元格'); DBGrid1.PopupMenu := PopupMenu2;end; 楼上的正解procedure TForm1.DBGrid1TitleClick(Column: TColumn);begin showmessage('你按了标题栏') ; DBGrid1.PopupMenu := PopupMenu1;end;procedure TForm1.DBGrid1CellClick(Column: TColumn);beginshowmessage('单元格'); DBGrid1.PopupMenu := PopupMenu2;end; 你把楼上两位的SHOWMESSAGE()换成你要弹出的菜单项不就可以了么?? 可以使用DBGrid的MouseCoord(X, Y: Integer)函数再配合DBGrid的OnMouseDown事件来实现这个功能。 按楼上这样做,当鼠标右键点击有记录的行数时根本无法获得鼠标的位置,我用EDIT查看过,横纵向根本没有值,无法弹出菜单来 你把楼上两位的SHOWMESSAGE()换成你要弹出的菜单项不就可以了么?? 显示的错误是ADOQ_user1:'商品编号' not found,我数据表里明明是有用户编号的 Delphi程序有错误,编译的时候不提示,为什么? 从D7到D2010最直接的感觉是... 如何在delphi7中取得系统的时间? 一个dll中pchar返回值的问题 各位进来看看 如何实现解析HTML代码! 一个SqlServer的触发器的设计 怎么这个while不循环?大家进来看看吧! Delphi中那本书比较清楚地讲了RTTI和动态创建的?类似深入浅出MFC那种讲法的。 合作!!! 这个错误什么意思? 如何为ClientDataset建立索引?(第N次提问)
begin
showmessage('你按了标题栏') ;
DBGrid1.PopupMenu := PopupMenu1;
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
showmessage('单元格');
DBGrid1.PopupMenu := PopupMenu2;
end;
begin
showmessage('你按了标题栏') ;
DBGrid1.PopupMenu := PopupMenu1;
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
showmessage('单元格');
DBGrid1.PopupMenu := PopupMenu2;
end;
再配合DBGrid的OnMouseDown事件来实现这个功能。