读书人

cxgrid 旋钮列

发布时间: 2013-10-25 14:36:53 作者: rapoo

cxgrid 按钮列
使用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; cxgrid?按钮列?button
[解决办法]
按钮列。。。没用过,用其它方式实现吧,把按钮放表格里也怪不好看的。
[解决办法]
不建议你把操作按钮放在字段里面,放在外面多好啊,许多操作还可以用继承窗体的方法创建几个通用的基类窗体来简化继承窗体的代码,实现面向对象编程,一般一个添加,删除,修改,查询等的基本操作只需要几行代码就能完成,你这样做应该是仿照网页界面的吧,现在新手怎么那么喜欢网页界面仿照应用程序界面,应用程序界面又去仿照网页界面呢?应用程序与网页程序有很大不同的,不要把两者都搞混了,应用程序就要按照应用程序的套路去做,网页程序就要按照网页程序的套路去做,不要把简单问题复杂化了,像这种基本操作的模块建议要把代码尽量简化最好几行代码就能解决,如果能做到这样,那么可以大大加快以后开发程序的速度,而且很易于维护

读书人网 >.NET

热点推荐