翻譯|使用教程|編輯:楊鵬連|2020-08-18 10:18:08.163|閱讀 299 次
概述:本文介紹了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@fc6vip.cn
文章轉載自: