Hello Sir,
I am developing a clock application for PalmPilot
using GCC tool.
Here I am givig code
void SetTimeHour()
{
FormPtr frmPtr;
ControlPtr ctlP;
SWord hour;
CharPtr timeP;
frmPtr = FrmGetActiveForm();
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonHour));
timeP = MemPtrNew(4);
timeP = CtlGetLabel(ctlP);
hour = (int)StrAToI(timeP);
hour++;
if(hour > 12 )
hour = 1;
StrIToA (timeP,(long)hour);
CtlSetLabel(ctlP,timeP);
MemPtrFree(timeP);
}
void SetTimeMinute()
{
FormPtr frmPtr;
ControlPtr ctlP;
SWord minute;
CharPtr timeP;
frmPtr = FrmGetActiveForm();
timeP = MemPtrNew(4);
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonMinute));
timeP = CtlGetLabel(ctlP);
minute = (int)StrAToI(timeP);
minute++;
if(minute > 59 )
minute = 0;
StrIToA (timeP,(long)minute);
CtlSetLabel(ctlP,timeP);
MemPtrFree(timeP);
void SetCurrentTime()
{
FormPtr frmPtr;
SWord hour,minute;
SWord ON = 1;
ControlPtr ctlP;
CharPtr timeP;
DateTimeType dateTime;
frmPtr = FrmGetActiveForm();
timeP = MemPtrNew(4);
TimSecondsToDateTime (TimGetSeconds(), &dateTime);
if((hour = dateTime.hour) >= 12)
{
if (hour != 12)
hour = hour - 12;
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonPM));
CtlSetValue (ctlP,ON);
}
else
{
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonAM));
CtlSetValue (ctlP,ON);
}
minute = dateTime.minute;
StrIToA (timeP,(long)hour);
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonHour));
CtlSetLabel(ctlP,timeP);
CtlSetValue (ctlP,ON);
StrIToA (timeP,(long)minute);
ctlP = FrmGetObjectPtr (frmPtr, FrmGetObjectIndex
(frmPtr,PushButtonMinute));
CtlSetLabel(ctlP,timeP);
MemPtrFree(timeP);
}
Here timeP is local variable and i am everytime
allocating and freeing memory.
Functions SetTimeHour and SetTimeMinute, i am calling
from select event of Button of form SetTime.There i
chech value of PushButtons (pushButtonHour and
PushButtonMinute)whether ON or OFF and if value of
Hour button is ON(i.e.1) then i increase/decrease the
hour. same for minute pushbutton.
But here i got problem , when i assign the value of
CtlGetlabel to timeP, it doesn,t get assigned. Old
value get set,though it is local variable. What's the
problem.Is this the memory problem?
Please do Reply.
Shital
=====
__________________________________________________
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.com