提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2020-08-18 10:18:08.163|阅读 221 次
概述:本文介绍了phGant Time Package控件常见问题并做解答。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
phGant Time Package同时包含了phGantt 和phSchema控件,是一款快速、完全面向对象的ActiveX控件,有着丰富的图形用户界面,客户可以熟练地操作时间进度条。时间进度条可以以甘特图和概要视图的形式显示。该控件是一款强大的日程安排、项目管理控件,被国际上许多大公司所使用,慧都控件作为PlexityHide公司在中国的核心代理商,为客户提供优质的客服和技术之支持。
不必要的MouseMode
本文是为phGantTimePackage VCL (Delphi XE5)编写的。
我们得到了问题和一个重复的示例来支持一个场景,其中开发人员希望在双击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 Package或慧都APS系统,请登录慧都网,解决您的问题!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:对于银行金融、政府、医疗等需要处理大量信息的组织来说,高效的数据管理至关重要。对于大型数据扫描项目,Dynamic Web TWAIN SDK 提供强大的功能,只需极少的设置即可支持大量文档处理,让我们看看 Dynamsoft 如何简化此过程中的每个步骤。
在 Microsoft Excel 中,复制行、列和单元格是日常数据处理中的常见操作。本文将介绍如何使用 Spire.XLS for Java 和 Java 在 Excel 中复制行、列和单元格数据并保留格式。
雷达图又称蜘蛛图,是一种显示二维多元数据的图形方法。图表上的每个辐条代表一个不同的变量,数据点沿着这些辐条绘制。雷达图尤其适用于比较不同实体在多个标准中的表现。本文将演示如何使用 Spire.XLS for Python 通过 Python 在 Excel 中创建雷达图。
本文将为大家介绍如何使用图表控件SciChart WPF实现WPF应用程序的DPI感知,欢迎下载最新版组件体验!
phGantt Time Package控件包集合了时间块处理控件,能为应用程序加入甘特图表设计和日程计划设计的功能。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢