Time edit grid column for cCJGrid: Difference between revisions
From DataFlex Wiki
Jump to navigationJump to search
Created page with "=== Author and origin === This example code was written by Raveen Sundram and comes from the following post at the forum: https://support.dataaccess.com/Forums/showthread.ph..." |
No edit summary |
||
Line 22: | Line 22: | ||
</source> | </source> | ||
We have been using custom (db)TimeForms courtesy of the [https://www.vdf-guidance.com/Projects.asp?Page=CWINDOWSEX | We have been using custom (db)TimeForms courtesy of the [https://www.vdf-guidance.com/Projects.asp?Page=CWINDOWSEX cWindowsEx project] | ||
See [[File:TimeForm.png]] | |||
== Extend cDataTimePick.pkg == | |||
Found that cDateTimePick.pkg, from the cWindowsEx project, was missing the following: | |||
<source lang="dataflex"> | |||
Set External_Message WM_SETFOCUS to External_SetFocus | |||
Set External_Message WM_KILLFOCUS to External_KillFocus | |||
</source> | |||
== cCJGridColumnTimeEdit == | |||
With that the cCJGridColumnTimeEdit now works. | |||
<source lang="dataflex"> | |||
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 | |||
</source> | |||
[[Category:CodeJock]] | [[Category:CodeJock]] |
Revision as of 12:15, 24 February 2019
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