ในส่วนของ Datetime บน bada นั้น ผมใช้ tool Editdate ครับ ใช้ Listenner คือ IDateChangeEventListener จะมี function ให้ใช้ 2 ตัวคือ OnDateChanged และ OnDateChangeCanceled จะเป็นปุ่ม save กับ cancel ตามลำดับ และในส่วนของ เดือนนั้น จะเริ่มตั้งที่ เดือนที่ 0 - 11 นะครับ ส่วนปีนั้น ถ้าจะทำให้เป็น คศ ต้องเอามาลบอีก 1900 ด้วยครับ ไม่รู้เหมือนกันว่าทำไม เมื่อเรา getDate ออกมาแล้ว จะได้รูปแบบเป็น เดือน / วัน / ปี ชม : นาที : วินาที ส่วนจะทำ format นั้นก็ทำได้เหมือน C++ ทำปกติครับ โดยในตัวอย่างก็จะทำ format รูปแบบวันที่เป็น วัน เดือน ปี ครับ ส่วนวิธีการทำนั้น ผมไม่รู้ว่าใช้หลักการที่ถูกหรือเปล่านะครับ เพราะโดยส่วนตัวไม่เคยเขียน C++ แต่ก็ได้ผลออกมาเหมือนกันครับ
result
AppEditDateForm::OnInitializing(void)
{
result r
= E_SUCCESS;
__pDateTimePicker =
static_cast<EditDate
*>(GetControl(L"IDC_EDITDATE1"));
__pLabelDate =
static_cast<Label
*>(GetControl(L"IDC_LABEL1"));
if (__pDateTimePicker !=
null)
{
__pDateTimePicker->AddDateChangeEventListener(*this);
}
return r;
}
จากข่างบน เป็นในส่วนของ function OnInitialzing ครับ เป็นการ addControl และ Listenner ให้กับค่านั้นๆด้วย ในที่นี้ผมใช้ Edittime และส่งค่าให้ label เพื่อแสดงวันเดือนปีที่ get ออกมาได้
#ifndef
_APPEDITDATEFORM_H_
#define
_APPEDITDATEFORM_H_
#include
<FBase.h>
#include
<FUi.h>
class
AppEditDateForm :
public
Osp::Ui::Controls::Form,
public
Osp::Ui::IDateChangeEventListener
{
// Construction
public:
AppEditDateForm(void);
virtual
~AppEditDateForm(void);
bool
Initialize(void);
// Implementation
protected:
Osp::Ui::Controls::EditDate *__pDateTimePicker;
Osp::Ui::Controls::Label *__pLabelDate;
public:
virtual
result
OnInitializing(void);
virtual
result
OnTerminating(void);
virtual
void
OnDateChanged(const
Control&,
int
year,
int
month,
int
day);
virtual
void
OnDateChangeCanceled(const
Control&
source);
};
#endif
//_APPEDITDATEFORM_H_
จากข้างบน เป็นการสั่งการทำงาน เมื่อกดปุ่ม save และ cancel เมื่อเรียกใช้ EditDate ครับ ตามลำดับครับ
โดยเวลา กดปุ่ม Save นั้น จะมีการจัดรูปแบบ Format DateTime ด้วยครับ
|
อันนี้เป็นรูปแบบของหน้า Edit date ครับ
|
|
ผลที่ได้ออกมาจากการกด save
|
|
ผลที่ได้ออกมาจากการกด Cancel
|