>i am trying to add text to a table which has been
read
> from a database. The text is already in the
database.
> Main form is openend first, when button selected on
> main form, opens 2nd form called about form, where
my
> table is. The table should then display with the
text from the db , but isn't
> can anyone have a look at this and tell me were i'm
going wrong
> cheers adam
> static VoidHand hchoices;
> static VoidHand hpchoices;
> static void newRecord(void);
> static VoidPtr getObject(FormPtr,Word);
> static DmOpenRef OrderDB;
> static ULong numRecords;
> static UInt cursor;
> static Boolean isDirty;
> static VoidHand hrecord;
> static void drawTable( void );
> static void drawCell( VoidPtr table, Word row,
> Word column, RectanglePtr bounds );
> #define DB_ID_START 0
> #define DB_ID_SIZE (sizeof(ULong))
> /*#define DB_ITEM_START (DB_ID_START + DB_ID_SIZE)
> #define DB_ITEM_SIZE 16
> #define DB_QUANT_START (DB_ITEM_START +
DB_ITEM_SIZE)
> #define DB_QUANT_SIZE 16
> #define DB_RECORD_SIZE
(DB_QUANT_START+DB_QUANT_SIZE)
> #define TABLE_NUM_COLUMNS 2
> #define TABLE_NUM_ROWS 4
> #define TABLE_COLUMN_ITEM 0
> #define TABLE_COLUMN_QUANT 2
>
> DWord PilotMain(Word cmd,Ptr,Word)//start up forms
> {
> FormPtr form;
> EventType event;
> Word error;
> Word x;
> if(cmd!=sysAppLaunchCmdNormalLaunch)
> return(0);
> if(((error=DmCreateDatabase(0,"OrderDB-PPGU",'PPGU',
> 'ordr',false))!=dmErrAlreadyExists)&&(error!=0))
> {
> FrmAlert(DBCreationErrorAlert);
> return(0);
> }
>
OrderDB=DmOpenDatabaseByTypeCreaton('ordr','PPGU',dmModeReadWrite);
> numRecords=DmNumRecords(OrderDB);
> cursor=0;
> for (x = 0;x < 3; x++)
> {
> newRecord();
> }
> FrmGotoForm(MainForm);
> do
> {
> EvtGetEvent(&event, -1);
> if(SysHandleEvent(&event))
> continue;
> if(event.eType==frmLoadEvent)
> switch(event.data.frmLoad.formID)
> {
> case MainForm:
> form=FrmInitForm(MainForm);
> FrmSetEventHandler(form,MainHandleEvent);
> break;
> case AboutForm:
> form=FrmInitForm(AboutForm);
> FrmSetEventHandler(form,AboutHandleEvent);
> break;
> } // end switch
> FrmSetActiveForm(form);
> FrmDispatchEvent(&event);
> } while (event.eType != appStopEvent);
> FrmCloseAllForms();
> DmCloseDatabase(OrderDB);
> return(false);
> }
////main form handler/////
////next form handler with table////
> static Boolean AboutHandleEvent(EventPtr event)
> {
> FormPtr form;
> switch(event->eType)
> {
> case frmOpenEvent:
> form=FrmGetActiveForm();
> {
> FrmDrawForm(form);
> drawTable();
> }
> break;
> case ctlSelectEvent: //back to menu form from order
> form
> {
> Word ctrlID=event->data.ctlSelect.controlID;
> ControlPtr ctrlPtr=event->data.ctlSelect.pControl;
> if(ctrlID==AboutBackButton)
> {
> event->eType=frmCloseEvent;
> event->data.frmClose.formID=AboutForm;
> FrmPopupForm(MainForm);
> }}
> break;
> }
> return(false);
> }
> static void drawTable( void )
> {FormPtr form;
> TablePtr table;
> Int column;
> Int count;
> /*ControlPtr upArrow;
> ControlPtr downArrow;*/
> form = FrmGetActiveForm();
> table = getObject( form, AboutItemsTable );
> for (column = 0; column < TABLE_NUM_COLUMNS;
column++
> )
> {TblSetCustomDrawProcedure( table, column,
drawCell);
> TblSetColumnUsable( table, column, true);
> }
> for( count = 0; count < TABLE_NUM_ROWS; count++ )
> {
> if( count < numRecords )
> {TblSetRowUsable( table, count, true );
> for( column = 0; column < TABLE_NUM_COLUMNS;
> column++ )
> {TblSetItemStyle( table, count, column,
> labelTableItem );
> }}
> else
> TblSetRowUsable( table, count, false );
> }
> TblDrawTable( table );
> }
> static void drawCell( VoidPtr table, Word row, Word
> column, RectanglePtr bounds )
> {Int record;
> CharPtr precord;
> Char string[DB_ID_SIZE];
> SWord width;
> SWord len;
> Boolean noFit;
> record = cursor + row;
> hrecord = DmQueryRecord(OrderDB, record );
> precord = MemHandleLock( hrecord);
> switch( column )
> {
> case TABLE_COLUMN_ITEM:
> {StrCopy( string, "-" );
> }
> break;
> case TABLE_COLUMN_QUANT :
> {StrCopy( string, "-" );
> }
> break;
MemandleUnlock( hrecord );
> WinSetUnderlineMode( noUnderline );
> FntSetFont( stdFont );
> width = bounds->extent.x;
> len = StrLen( string );
> noFit = false;
> FntCharsInWidth( string, &width, &len, &noFit );
> WinEraseRectangle( bounds, 0 );
> WinDrawChars( string, len, bounds->topLeft.x,
> bounds->topLeft.y);
> return;
> }
> static void newRecord( void )
> {VoidPtr precord; // CH.5 Pointer to the record
> hrecord = DmNewRecord( OrderDB, &cursor,
DB_ID_SIZE);
> precord = MemHandleLock( hrecord );
> DmSet( precord, 0, DB_ID_SIZE, 0 );
> MemHandleUnlock( hrecord );
> DmReleaseRecord( OrderDB, cursor, true );
> numRecords++;
> isDirty = true;
> return;
> }
> static VoidPtr getObject(FormPtr form, Word
objectID)
> {
> Word index;
> index = FrmGetObjectIndex(form, objectID);
> return(FrmGetObjectPtr(form, index)); }
__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/