Time edit grid column for cCJGrid
From DataFlex Wiki
Jump to navigationJump to search
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