Time edit grid column for cCJGrid
From DataFlex Wiki
Author and origin
This example code was written by Raveen Sundram and comes from the following post at the forum:
The need for a cCJGridColumnEdit class
We want to create a cCJGridColumnEdit class that uses the Windows CommonCtrl called 'ICC_DATE_CLASSES' for time based input.
Time based input using the standard forms/columnedits just do not work well.
Example:
Object oCJOpenTimeColumn is a cCJGridColumn Set piWidth to 159 Set psCaption to "Open" Set peDataType to Mask_Time Set psMask to "h:mm tt" Set phcEditClass to (RefClass(cCJGridColumnTimeEdit)) End_Object
We have been using custom (db)TimeForms courtesy of the cWindowsEx project
Extend cDataTimePick.pkg
Found that cDateTimePick.pkg, from the cWindowsEx project, was missing the following:
Set External_Message WM_SETFOCUS to External_SetFocus Set External_Message WM_KILLFOCUS to External_KillFocus
cCJGridColumnTimeEdit
With that the cCJGridColumnTimeEdit now works.
Use cCJGridColumnEdit.pkg Use cDateTimePick.pkg // from cWindowEx Project Class cCJGridColumnTimeEdit is a cCJGridColumnEdit Procedure Construct_Object Forward Send Construct_Object Send Define_DateTimePick_Mixin Set pbShowNone to False Set pbUpDown to True Set pbTimeFormat to True Set pbRightAlign to True Set FontWeight to FW_NORMAL End_Procedure // Construct_Object Import_Class_Protocol DateTimePick_Mixin Procedure End_Construct_Object Forward Send End_Construct_Object Send InitCommonControlsEx ICC_DATE_CLASSES End_Procedure // Construct_Object Function Form_Window_Handle Integer iItem Returns Handle Handle hWnd Forward Get Form_Window_Handle iItem to hWnd If (hWnd=0) Get Window_Handle to hWnd Function_Return hWnd End_Function Procedure Set Value Integer iItem String sValue Forward Set value item iItem to sValue Send SetDateTimePickValue sValue End_Procedure Function Value Returns String String sValue Forward Get value to sValue If (Window_Handle(Self)) Get GetDateTimePickValue to sValue Function_Return sValue End_Function Procedure Set Form_Mask Integer iItem String sMask Move (Replace("ap",sMask,"tt")) to sMask Set psFormMask to sMask End_Procedure Function Form_Mask Integer iItem Returns String String sMask Get psFormMask to sMask Function_Return sMask End_Function Function Status_Help Integer iItem Returns String String sHelp Integer iItm If (Num_Arguments>0) Move iItem to iItm Forward Get Status_Help iItm to sHelp Function_Return sHelp End_Function End_Class