phGant Time Package控件常见问题解答(一)

phGant Time Package同时包含了phGantt 和phSchema控件,是一款快速、完全面向对象的ActiveX控件,有着丰富的图形用户界面,客户可以熟练地操作时间进度条。时间进度条可以以甘特图和概要视图的形式显示。该控件是一款强大的日程安排、项目管理控件,被国际上许多大公司所使用,控件作为PlexityHide公司在中国的核心代理商,为客户提供优质的客服和技术之支持。

不必要的MouseMode

我们得到了问题和一个重复的示例来支持一个场景,其中开发人员希望在双击TimeItem时弹出一个模式对话框。

所有这些都很简单:

procedure TForm1.phGant1DblClickGantArea(theGant: TphGant_ComBasic;  theDataEntity: TphDataEntity_GantTime);var FrmModal:TFrmModal;begin  FrmModal:=TFrmModal.create(nil);  try    FrmModal.ShowModal;  finally    FrmModal.Free;  end;end;

问题是,当用户双击该时间项并处于调整大小的热点区域时,鼠标模式调整被输入,并且在关闭模态对话框时仍然被设置。

我的第一个响应是调用方法MouseMoveModeCancel。此方法适用于以编程方式结束任何当前鼠标模式。

然而,它在这个案例中并不奏效。

它不能工作的原因是在DblClick事件返回后——VCL再次直接触发鼠标向下——这就是我们实际进入鼠标模式的地方。

在phGantTimePackage中,有一种方法可以分派对windows消息队列的调用,这在这里很有用。这个机制叫做TDoLater,它的解是这样的:

procedure TForm1.phGant1DblClickGantArea(theGant: TphGant_ComBasic;  theDataEntity: TphDataEntity_GantTime);var FrmModal:TFrmModal;begin  FrmModal:=TFrmModal.create(nil);  try    FrmModal.ShowModal;    TDoLater.DoLater(LeaveAnyUnintentionalMouseMoveMode,nil);  finally    FrmModal.Free;  end;end;procedure TForm1.LeaveAnyUnintentionalMouseMoveMode(a:TObject);begin    phGant1.MouseMoveModeCancel;end;

通过这种方式,将MouseMoveCancel延迟到windows在用户交互上拥有的所有当前消息之后的一个时间。

要使用TDoLater,你需要一个phDoLater的用法。

在OnValueChangedGantTime事件中,是否有一种方法可以发现时间项是否改变了一行

问题

是否有一种方法来发现时间项目是否改变了OnValueChangedGantTime事件中的一行。
我正在做的事情无法在OnGantTimeChangeRow事件中或之后完成。

我尝试使用theGant.RowList.FindRowFromY(lngY).TreeNode.GridRowIndex,但在某些情况下不起作用。

回答

如果返回的行与当前拥有时间项的行(theDataEntity_GantTime.Row)不同,请使用theGant.RowList.FindRowFromY(IphGantX3.MousePositionGantArea.Y),这是一个动作…

您可以在OnHintInfo事件中进行检查,并将信息放入稍后在OnValueChangedGantTime事件中读取的membervariable中。

检查参数theDataEntity!= null,然后检查IphGantX3.GetMouseMoveMode == mmMove。

如果这两个条件都成立,则用户正在移动时间项…

然后使用如下所示:

 _ThisIsARowMove = theGant.RowList.FindRowFromY(IphGantX3.MousePositionGantArea.Y)<> theDataEntity_GantTime.Row

相关产品介绍:

VARCHART XGantt:支持ActiveX、.Net等平台的C#甘特图控件
AnyGantt:构建复杂且内容丰富的甘特图的理想工具
phGantt Time Package:对任务和时间的分配管理的甘特图
dhtmlxGantt:交互式JavaScript / HTML5甘特图


APS帮助提升企业生产效率,真正实现生产计划可视化呈现与控制,快速有效响应不同场景的生产计划,提高准时交货能力,提高产能和资源利用率

想要了解phGant Time PackageAPS系统,请登录 咨询在线客服,解决您的问题!

phGant Time Package控件常见问题解答(一)

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月15日
下一篇 2020年7月15日

相关推荐

发表回复

登录后才能评论