Thanks for the advice, but i'm already using some of
these books which i have been working from. i don't
know if you can tell by the code i have sent in, but
to me it looks o.k. I've been struggling with this for
a week. I need to get this sussed as its for my
dissertation, degree.
I'm getting error NULL String parameter.
Can any body tell why i'm getting this.
Is this to hard just to look at and understand?
static Boolean AboutHandleEvent(EventPtr event);
static VoidHand hchoices;
static VoidHand hpchoices;
static void newRecord(void); //new record
static VoidPtr getObject(FormPtr,Word);
static DmOpenRef OrderDB;
static ULong numRecords;
static UInt cursor;
static Boolean isDirty;
static VoidHand hrecord;
static void drawTable( void ); //draw table and rows
static void drawCell( VoidPtr table, Word row,
Word column, RectanglePtr bounds );
//Constants that define the Order Line database record
#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_SEAT_START (DB_ITEM_START + DB_ITEM_SIZE)
#define DB_SEAT_SIZE 16
#define DB_RECORD_SIZE (DB_SEAT_START + DB_SEAT_SIZE)
/* */
#define TABLE_NUM_COLUMNS 6
#define TABLE_NUM_ROWS 4
#define TABLE_COLUMN_ITEM 0
#define TABLE_COLUMN_SEAT 1
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=DmOpenDatabaseByTypeCreator('ordr',
'PPGU',dmModeReadWrite);
numRecords=DmNumRecords(OrderDB);
cursor=0;
for (x = 0;x < 3; x++)
{
newRecord();
FrmGotoForm(AboutForm);
}
do
{
EvtGetEvent(&event, -1);
if(SysHandleEvent(&event))
continue;
if(event.eType==frmLoadEvent)
switch(event.data.frmLoad.formID)
{
case AboutForm: form=FrmInitForm(AboutForm);
FrmSetEventHandler(form,AboutHandleEvent);
break;
} // end switch
FrmSetActiveForm(form);
FrmDispatchEvent(&event);
} while (event.eType != appStopEvent);
FrmCloseAllForms();
DmCloseDatabase(OrderDB);
return(false);
}
static Boolean AboutHandleEvent(EventPtr event) {
FormPtr form;
switch(event->eType)
{
case frmOpenEvent:
form=FrmGetActiveForm();
{
FrmDrawForm(form);
drawTable();
}
break;
}
return(false);
}
static void drawTable( void )
{
FormPtr form;
TablePtr table;
Int column;
Int count;
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_ITEM_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_SEAT :
{StrCopy( string, "-" );
}
break;
}
MemHandleUnlock( 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_RECORD_SIZE
);
precord = MemHandleLock( hrecord );
DmSet( precord, 0, DB_RECORD_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/