cxgrid 按钮列

td427 2013-10-10 12:31:32
使用cxgrid的buttonEdit按钮列过程中出现问题,请教下,谢谢!!!!
目的 :实现在每行数据后面加一个操作列,实现修改、删除等功能
现在的做法:增加了一buttonEdit列,添加了修改、删除按钮
问题:点击修改按钮后,打开新窗口编辑数据,保存后关闭窗体,并刷新数据,会报错。
try
.....
ProjectDiscuss_DetailForm.ShowModal ;
finally
FreeAndNil(ProjectDiscuss_DetailForm);
//通过以下过程,重新读取数据。
GetProjectData ;
//如果在PropertiesButtonClick中执行该过程,就会报错,错误的地方为cxEdit.pas;如果单独在外执行,没问题。
end ;
-----------
提示错误的地方:cxEdit.pas,该文件为DEV控制自带的
procedure TcxCustomEdit.ProcessViewInfoChanges(APrevViewInfo: TcxCustomEditViewInfo; AIsMouseDownUpEvent: Boolean);
begin
if (APrevViewInfo.PressedButton <> ViewInfo.PressedButton) or
(APrevViewInfo.SelectedButton <> ViewInfo.SelectedButton) then
begin
if APrevViewInfo.PressedButton <> -1 then
if APrevViewInfo.PressedButton = ViewInfo.SelectedButton then
begin
DoButtonUp(APrevViewInfo.PressedButton);
DoButtonClick(APrevViewInfo.PressedButton);
end
else
DoButtonUp(APrevViewInfo.PressedButton);
//提示下面语句错误,经跟踪,为viewInfo=nil,所以报错
if (ViewInfo.PressedButton <> -1) and (APrevViewInfo.PressedButton = -1) then
DoButtonDown(ViewInfo.PressedButton);

end;
end;
...全文
181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
td427 2013-10-16
  • 打赏
  • 举报
回复
谢谢,就是参照的网页弄的,呵呵。
Cassava 2013-10-14
  • 打赏
  • 举报
回复
不建议你把操作按钮放在字段里面,放在外面多好啊,许多操作还可以用继承窗体的方法创建几个通用的基类窗体来简化继承窗体的代码,实现面向对象编程,一般一个添加,删除,修改,查询等的基本操作只需要几行代码就能完成,你这样做应该是仿照网页界面的吧,现在新手怎么那么喜欢网页界面仿照应用程序界面,应用程序界面又去仿照网页界面呢?应用程序与网页程序有很大不同的,不要把两者都搞混了,应用程序就要按照应用程序的套路去做,网页程序就要按照网页程序的套路去做,不要把简单问题复杂化了,像这种基本操作的模块建议要把代码尽量简化最好几行代码就能解决,如果能做到这样,那么可以大大加快以后开发程序的速度,而且很易于维护
Alex-16888 2013-10-12
  • 打赏
  • 举报
回复
按钮列。。。没用过,用其它方式实现吧,把按钮放表格里也怪不好看的。
td427 2013-10-10
  • 打赏
  • 举报
回复
补充个重要信息,是在嵌套型的cxgrid中,在主表里面点击按钮列更新,没问题;在下面的明细表中点击更新,就会报错。 帮帮忙,谢谢
td427 2013-10-10
  • 打赏
  • 举报
回复

以上是目前界面
td427 2013-10-10
  • 打赏
  • 举报
回复

目前界面如上

5,390

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧