PALM开发教程-第七章 列表框和排序 |
| 作者:palmheart 来源:palmheart.net 发布时间:2005-12-21 3:33:26 |
|
(); // CH.5 Set the text for the First Name field setText( getObject( form, ContactDetailFirstNameField ), precord + DB_FIRST_NAME_START ); // CH.5 Set the text for the Last Name field setText( getObject( form, ContactDetailLastNameField ), precord + DB_LAST_NAME_START ); // CH.5 Set the text for the Phone Number field setText( getObject( form, ContactDetailPhoneNumberField ), precord + DB_PHONE_NUMBER_START ); MemHandleUnlock( hrecord ); // CH.5 If the record is already dirty, it's new, so set focus if( isDirty ) { // CH.3 Get the index of our field index = FrmGetObjectIndex( form, ContactDetailFirstNameField ); // CH.3 Set the focus to the First Name field FrmSetFocus( form, index ); // CH.5 Set upper shift on GrfSetState( false, false, true ); } // CH.5 We're done return; } // CH.5 Puts any field changes in the record void getFields( void ) { FormPtr form; // CH.5 The contact detail form // CH.5 Get the contact detail form pointer form = FrmGetActiveForm(); // CH.5 Turn off focus FrmSetFocus( form, -1 ); // CH.5 If the record has been modified if( isDirty ) { CharPtr precord; // CH.5 Points to the DB record // CH.7 Detach the record from the database DmDetachRecord( contactsDB, cursor, &hrecord ); // CH.5 Lock the record precord = MemHandleLock( hrecord ); // CH.5 Get the text for the First Name field getText( getObject( form, ContactDetailFirstNameField ), precord, DB_FIRST_NAME_START ); // CH.5 Get the text for the Last Name field getText( getObject( form, ContactDetailLastNameField ), precord, DB_LAST_NAME_START ); // CH.5 Get the text for the Phone Number field getText( getObject( form, ContactDetailPhoneNumberField ), precord, DB_PHONE_NUMBER_START ); // CH.7 Find the proper position cursor = DmFindSortPosition( contactsDB, precord, NULL, (DmComparF*)sortFunc, sortBy ); // CH.5 Unlock the record MemHandleUnlock( hrecord ); // CH.7 Reattach the record DmAttachRecord( contactsDB, &cursor, hrecord, NULL ); } // CH.5 Reset the dirty bit isDirty = false; // CH.5 We're done return; } // CH.5 Set the text in a field static void setText( FieldPtr field, CharPtr text ) { VoidHand hfield; // CH.5 Handle of field text CharPtr pfield; // CH.5 Pointer to field text // CH.5 Get the current field handle hfield = FldGetTextHandle( field ); // CH.5 If we have a handle if( hfield != NULL ) { // CH.5 Resize it if( MemHandleResize( hfield, StrLen( text ) + 1 ) != 0 ) errorExit( MemoryErrorAlert ); } else // CH.5 Allocate a handle for the string { hfield = MemHandleNew( StrLen( text ) + 1 ); if( hfield == NULL ) errorExit( MemoryErrorAlert ); } // CH.5 Lock it pfield = MemHandleLock( hfield ); // CH.5 Copy the string StrCopy( pfield, text ); // CH.5 Unlock it MemHandleUnlock( hfield ); // CH.5 Give it to the field FldSetTextHandle( field, hfield ); // CH.5 Draw the field FldDrawField( field ); // CH.5 We're done return; } // CH.5 Get the text from a field static void getText( FieldPtr field, VoidPtr precord, Word offset ) { CharPtr pfield; // CH.5 Pointer to field text // CH.5 Get the text pointer pfield = FldGetTextPtr( field ); // CH.5 Copy it DmWrite( precord, offset, pfield, StrLen( pfield ) ); // CH.5 We're done return; } // CH.6 Set the Contact Detail date selector trigger static void setDateTrigger( void ) { FormPtr form; // CH.5 The contact detail form // CH.6 Get the contact detail form pointer form = FrmGetActiveForm(); // CH.6 If there is no date if( dateTime.year == NO_DATE ) { CtlSetLabel( getObject( form, ContactDetailDateSelTrigger ), " " ); } else // CH.6 If there is a date { Char dateString[dateStringLength]; // CH.6 Get the date string DateToAscii( dateTime.month, dateTime.day, dateTime.year, (DateFormatType)PrefGetPreference( prefDateFormat ), dateString ); // CH.6 Set the selector trigger label CtlSetLabel( getObject( form, ContactDetailDateSelTrigger ), dateString ); } // CH.6 We're done return; } // CH.6 Set the Contact Detail time selector trigger static void setTimeTrigger( void ) { FormPtr form; // CH.5 The contact detail form // CH.6 Get the contact detail form pointer form = FrmGetActiveForm(); // CH.6 If there's no time if( dateTime.hour == NO_TIME ) { CtlSetLabel( getObject( form, ContactDetailTimeSelTrigger ), " " ); } else // CH.6 If there is a time { Char timeString[timeStringLength]; // CH.6 Get the time string TimeToAscii( dateTime.hour, dateTime.minute, (TimeFormatType)PrefGetPreference( prefTimeFormat ), timeString ); // CH.6 Set the selector trigger label CtlSetLabel( getObject( form, ContactDetailTimeSelTrigger ), timeString ); } // CH.6 We're done return; } // CH.6 Set the controls in the Enter Time form based on dateTime static void setTimeControls( void ) { FormPtr form; ControlPtr hourButton; ControlPtr minuteTensButton; ControlPtr minuteOnesButton; ControlPtr amButton; ControlPtr pmButton; ControlPtr noTimeCheckbox; Char labelString[3]; SWo |
| [] [返回上一页] [打 印] |
|
文章评论 |
