when the 1st time i click a category in a trigger, it works fine for me,after 
that, without clicking anything, i click on the trigger again...and then a 
message "Low memory" popup...but if i click anywhere on the empty space(on POSE 
screen) then only i click the trigger for the 2nd time...it still function too!!

so,does any1 know what is actually going wrong there?
the following is the code for the particular form which content trigger.
*************************************************************8    
switch( event->eType )
{
  case ctlSelectEvent:
    switch (event->data.ctlEnter.controlID)
    {
      case backbttn:
        FrmGotoForm(mainForm);
        handled = true;
      break;
      
      case Trigger1:      
        form = FrmGetActiveForm();       
        category = CurrentCategory;
        CategorySelect( CurrentDB, form, Trigger1, List1, false, 
&category,CategoryName, 0, categoryHideEditCategory);
                                             
 categoryChange:
        if( category != CurrentCategory ) 
        {   
           CurrentCategory = category;
           TopVisibleRecord = 0;
           CurrentRecord = -1;
                    
           MainLoadTable();
                    
           table = FrmGetObjectPtr( form, FrmGetObjectIndex( form, Table1 ));
           TblEraseTable( table );
           TblDrawTable( table );
        }
      break;
    }
  break;
            
 case ctlRepeatEvent:
    form = FrmGetActiveForm();
    table = FrmGetObjectPtr( form, FrmGetObjectIndex( form, Table1 ));
    switch( event->data.ctlRepeat.controlID ) 
    {
      case scrollUpButton:
        ctl = FrmGetObjectPtr( form, FrmGetObjectIndex( form, scrollUpButton));
        if( ctl->attr.visible && CtlEnabled( ctl ) ) 
        {
           TopVisibleRecord = TblGetRowID( table, 0 );
           for( i=0; i<Table1Rows-1; i++ ) 
           {
             if(DmSeekRecordInCategory( CurrentDB, &TopVisibleRecord, 1, 
dmSeekBackward, CurrentCategory ))
             break;
           }
        }
  break;
                            
      case scrollDownButton:
        ctl = FrmGetObjectPtr( form, FrmGetObjectIndex( form, scrollDownButton 
));
                    
        if( ctl->attr.visible && CtlEnabled( ctl ) ) 
        {
           TopVisibleRecord = TblGetRowID( table, Table1Rows - 1 );
        }
      break;
    }        
            
    if( ctl->attr.visible && CtlEnabled( ctl ) ) 
    { 
       CurrentRecord = -1;
       MainLoadTable();
       TblEraseTable( table );
       TblDrawTable( table );
    }
 break;
        
 case keyDownEvent: 
   form = FrmGetActiveForm();
   if( TxtCharIsHardKey( 1,event->data.keyDown.chr ) ) 
   {
     /* Cycle categories */
     category = CategoryGetNext( CurrentDB, CurrentCategory );
     ctl = FrmGetObjectPtr( form, FrmGetObjectIndex( form, Trigger1 ));
     CategoryGetName( CurrentDB, category, CategoryName );
     CategorySetTriggerLabel( ctl, CategoryName );
 
     handled = true;
     goto categoryChange;
   } 
   else 
   {
     table = FrmGetObjectPtr( form, FrmGetObjectIndex( form, Table1 ));
     ctl = NULL;
     switch( event->data.keyDown.chr ) 
     {
     case pageUpChr:
        
        ctl = FrmGetObjectPtr( form, FrmGetObjectIndex( form, scrollUpButton ));
        if( ctl->attr.visible && CtlEnabled( ctl ) ) 
        {
           TopVisibleRecord = TblGetRowID( table, 0 );
           for( i=0; i<Table1Rows-1; i++ ) 
           {
             if(DmSeekRecordInCategory( CurrentDB, &TopVisibleRecord, 1, 
dmSeekBackward, CurrentCategory ))
             break;
           }
        }
     break;

     case pageDownChr:
       ctl = FrmGetObjectPtr( form, FrmGetObjectIndex( form, scrollDownButton 
));
       if( ctl->attr.visible && CtlEnabled( ctl ) ) 
       {
          TopVisibleRecord = TblGetRowID( table, Table1Rows - 1 );
       }
     break;
     }
     
     if( ctl && ctl->attr.visible && CtlEnabled( ctl ) ) 
     { 
       CurrentRecord = -1;
       MainLoadTable();
       TblEraseTable( table );
       TblDrawTable( table );
     }
  }
break;
        
        case frmOpenEvent:
            
            form = FrmGetActiveForm();
            table = FrmGetObjectPtr( form, FrmGetObjectIndex( form, Table1 ));
            
            for( i = 0; i < Table1Rows; i++ ) 
            {
                TblSetItemStyle( table, i, 0, customTableItem );
                TblSetRowUsable( table, i, false );
            }

            TblSetColumnUsable( table, 0, true );
            
            TblSetCustomDrawProcedure( table, 0, &MainTableDrawRecord );
                
            i = MainLoadTable();
            
            ctl = FrmGetObjectPtr(form, FrmGetObjectIndex(form, Trigger1)); 
            CategoryGetName (CurrentDB, category, CategoryName); 
            CategorySetTriggerLabel (ctl, CategoryName);      

            FrmSetTitle( form, DBName );
            FrmDrawForm( form );
            
            if( i != -1 ) 
            {
                TblSelectItem( table, i, 0 );
            }
            
            handled = true;
        break; 
                                          
        case tblSelectEvent:
            CurrentRecord = TblGetRowID( event->data.tblSelect.pTable, 
event->data.tblSelect.row );
            FrmGotoForm (viewForm);
            handled = true;
        break;
        
        case menuEvent:
            handled = menuMain(event->data.menu.itemID);
        break;
    }
    return( handled );
   
-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to