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


Reply via email to