没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2020-08-18 10:18:08.163|阅读 222 次
概述:本文介绍了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@wqylolg.cn
文章转载自:可视化项目时间线对于有效规划和跟踪至关重要。在本篇博文中,您将学习如何使用 C# 在 Excel 中创建甘特图。只需几行代码,即可自动生成动态、美观的甘特图。
本文将为大家介绍DevExpress XAF如何将.NET Aspire集成到Blazor项目中,欢迎下载最新版组件体验!
在线协同文档编辑器ONLYOFFICE现已支持阿里通义千问( Qwen),带来先进的 AI 功能,实现更智能的文档编辑。本指南将向您展示如何将 Qwen 连接到 ONLYOFFICE,并充分利用其功能。
需要从 PDF 文档中删除特定页面?本快速指南将向您展示如何仅用几行代码删除不需要的页面。
phGantt Time Package控件包集合了时间块处理控件,能为应用程序加入甘特图表设计和日程计划设计的功能。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢