Pablo:
Joe is correct in his facts but wrong in his conclusion. The default apps
are all in ROM. If you load an application with the same creator id and a
version number greater than (or equal to) that of a ROM application, the
launcher will launch the one in RAM, NOT the one in ROM. This
Mesuspects that your 3 character type (in the call to OpenOrCreateDB) is the
problem. Perhaps if you pad it out to an explicit 32-bit value...
-bob mckenzie, palmsource pdx
-Original Message-
From: Salma Saad [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 21, 2002 9:37 AM
To: Palm
that can be of assistance.
Best wishes,
Robert
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/support/forums/
The chunk has MemHandleFree (or its equivalent) called on it, which disposes
of its entries in the memory manager data structures and thus allows the
memory to be reused. In the record's header info (which the data manager
keeps), the record's chunk entry is then set to 0 (NULL). Additionally,
Use TimGetSeconds() to get the number of seconds past 1 Jan 1904.
Use TimSecondsToDateTime to convert to a DateTime structure
Use TimeToAscii and DateToAscii to convert to strings in your favorite
format.
Concatenate.
See Chapter 29, TimeManager, in the PalmOS Reference for more details.
-bob
DmResizeRecord works just like MemHandleResize (indeed, both share code
under the covers). If it can, current versions of the PalmOS will grow the
record right where it lives and the record's data will remain completely
untouched.
However it may also create a brand new chunk to hold the data
Check the sdk license.
But, in short, yes, I think you can use it as long as you attribute it.
There is some language you will need to add to your app -- in the help
screen methinks. Dave Fedor and/or those more knowledgable than I can be
more explicit. Or you can search the archives.
-bob
just a few random thoughts.
DmGetNextDatabaseByTypeCreator takes a search state parameter, which it
uses to record the state of its search and hence implement the next part
of its name. Of course, it needs to know when it is starting the search, so
it also takes a new Search parameter. Two
My attention is drawn to that 's28' type value. You have specified 24 bits
of a 32 bit value. I wonder what your particular compiler puts into the
other 8 bits.
You might try using NULL (which will match all types) and seeing what
happens.
-bob mckenzie, palmsource pdx.
-Original
You are sending the data in the wrong format. Datebook does not accept data
in its own internal data format, only in VCARD format. This because it is
trying to be a good software citizen and use public standards for data
exchange and not require other software to be aware of its internal data
yep, that covers it.
I would bet serious money (maybe even five cents) that your problem lies
elsewhere. The code you use to change the category looks airtight and
independent investigation says that the records are in good shape after you
do it. But when you go to display things, they are
You got me stumped. All seems well with this code.
I do have a couple of suggestions, however.
Can you exit the app after the update but prior to the display and use a
database examination tool to walk the database and independently examine the
state of its records after the update? In
It sounds like some data manager internals are getting clobbered.
The chunk id is returnable by DmRecordInfo as the last parameter.
DmQueryNextInCategory will return NULL (0) if there is no next record. I
trust your loop looks for this and terminates in this case. You might call
DmGetLastErr
It depends on where you got the memory that the pointer references.
If it was originally from a handle, then MemPtrRecoverHandle (or some such
similar function, I am shooting from memory here) will do your business for
you.
If it was NOT originally from a handle, then you cannot get a handle
Just a random thought here. DmNewRecord creates a new record and, possibly,
changes the location (indexes) of existing records. Perhaps your main form
is looking at the wrong record?
-bob mckenzie, palmsource pdx
-Original Message-
From: Kathleen Aiello [mailto:[EMAIL PROTECTED]]
OK, second random thought.
You clearly are describing one more memory location (and copy) than you
need. That is, when you do the DmNewRecord, that reserves memory (and
returns a handle to it), you can than MemHandleLock it and copy your field
stuff (with DmWrite or DmStrCopy, or...) to it
There is no api to do what you want.
I would say that the easiest way to do this is to:
(1) Replace the address book device app with one you write yourself, and
(2) Replace the address book conduit with one you write yourself.
(1) is needed to create a gui and/or method of specifying which
Kade:
You have a basic C misconception here.
A DB record should (can only) contain that actual strings themselves, NOT
pointers to them.
-bob mckenzie, palmsource pdx.
-Original Message-
From: Kade P. Cole [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 02, 2002 7:35 AM
To: Palm
. The struct that I am using to access the DB
record is the one with the pointers in it.
Kade
On 4/2/02 9:51 AM, Robert McKenzie [EMAIL PROTECTED] wrote:
Kade:
You have a basic C misconception here.
A DB record should (can only) contain that actual strings themselves, NOT
pointers to them
Kim Hock NG wrote:
I had the same problem. Apparent, you code is trying
to make a cross segment jump which DRAGONBALL cannot
do and you need to do some kind of multiple segment
multi gen program, modify some def files and cut out
your code so that no global part can be in separate
segment
Is anyone here familiar with this problem?
Please give me a hand.
Using
SDK-4.01
prc-tools-2.0.92-1
I'm getting lots of these Signed .word overflow errors
when I add valid lines of code to various functions in
a project. Here is one such instance obtained by
uncommenting the following code
True enough, Joe, but hardly informative.
A MemoDB record is the simplest of the built-in pim applications. Each
record is simply a null-terminated string.
-bob mckenzie, palmsource pdx
-Original Message-
From: Joe [mailto:[EMAIL PROTECTED]]
Sent: Friday, March 22, 2002 11:59 AM
To:
No.
-bob mckenzie, palmsource pdx
-Original Message-
From: Anton [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 19, 2002 6:26 AM
To: Palm Developer Forum
Subject: Re: Application wake app
No, I mean the following situtation: User do something on his desktop
computer and then clicks
It is so hard to find out how to initiate a HotSync from the desktop because
it is so hard to do so.
It is so hard to do so because the existing architecture was set up
presupposing that it will only be initiated from the device.
Let me summarize the salient features of the existing
I have done work with tables. And I also don't like the passing pointers to
records that you unlock. Most unstable. Not recommended.
You are setting the item style to a labelTableItem. Label table items do
NOT have custom draw routines. The table's draw routine assumes that the
pointer is
From the evidence you give, I would suspect that you are doing something
wrong in your handling of both the reset and sync notification launch codes.
Perhaps opening a database exclusively and not closing it again? A good
practical way to test this hypothesis is to create a custom build of your
from the latest SDK.
Librarian Severices Cheerfully Furnished By
Robert McKenzie, PalmSource Portland ;)
-Original Message-
From: Adrian Pfisterer [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, March 06, 2002 7:18 AM
To: Palm Developer Forum
Subject: Re: Palm symbol set
My question has
Ravi:
There are three, logically separate, convenient sources of memory for a
program on a PalmOS device: The stack (function locals), the dynamic heap
(MemPtrNew and MemHandleNew), and the storage heap (DmNewRecord,
DmNewHandle). The stack and dynamic heap are small, particularly on older
Shailesh:
As used by the built-in apps, Joe's answer is not quite correct.
When unpacking, the built-in applications do not actually copy or move any
data. Instead they lock the record containing the packed data, and fill
in pointers to it in the unpacked structure. These pointers can then be
Dinesh-
An alternative explanation is that you are returning handled==true on ALL
control select events.
The expected sequence of events when the user taps on a popup trigger are:
1. penDown (user presses on trigger)
2. ctlEnter (spawned by CtlHandleEvent when it gets penDown)
3.
the final argument to PrefGetAppPreferences controls whether those
preferences are backed up by the system to the desktop (true) or not
(false).
The current in current preferences is a reference to their normal usage
by applications (most especially the PIM apps). In reality, preferences
is
with argument
false
(no backup). Correct?
Robert McKenzie schrieb:
the final argument to PrefGetAppPreferences controls whether those
preferences are backed up by the system to the desktop (true) or not
(false).
--- snap
--
For information on using the Palm Developer Forums
this is
pretty
awesome! My hat off to Keith and the emulator team for coming up with this great
feature! Keep
up the good work!
Thanks again to everyone,
Robert Purcell, [EMAIL PROTECTED]
BapSoft, http://www.bapsoft.com
__
Do You Yahoo!?
Yahoo
Terry-
A technique that WILL work is to have a global (or two, or three)
associated with the form with which you remember your allocation(s) when you
make them and then use to free the memory on form close. Such as:
static void MyFormInit(void) { gPointer = NULL; gPointer =
There are various little nooks and crannies in PalmOS that you can use to
save things in. Most of them just save a UInt32. I would consider
allocating a chunk of memory to hold all your lists and info and stuff, then
storing the address of that chunk in your particular choice of nook and/or
of this information is not explained anywhere in the POSE documentation.
I guess what I really need is an elementary, step-by-step explanation of
how to use the log file information to pin-point the code causing the memory leak.
Thanks!
Robert Purcell, [EMAIL PROTECTED]
BapSoft, http
Methinks you're trying to hold back the tide here. Whether it was a good
decision or not, PalmOS simply doesn't consider a FrmPopupType to be an
exposed-to-the-programmer object. It just simply is the program's
responsibility to duplicate the connection between a trigger and its list.
On the
trigger's id?
Robert McKenzie wrote:
Methinks you're trying to hold back the tide here. Whether it was a good
decision or not, PalmOS simply doesn't consider a FrmPopupType to be an
exposed-to-the-programmer object.
But it is exposed to the programmer; what other purpose do the SDK docs
serve
You are setting all of your rows to be UNusable by the third line inside
your for loop!
-bob mckenzie, palmsource pdx
-Original Message-
From: Scott Mebberson [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, February 13, 2002 8:21 PM
To: Palm Developer Forum
Subject: Table resources
I
A list draw callback function can get its data to draw from absolutely
anywhere. In your case, all you need is a correspondence between the list
index and the database record number. If the correspondence is not the
identity correspondence, it is pretty simple to allocate and save (say in a
As far as I know, the built in apps will not change with the first spin of
OS 5. I have heard, however, that they WILL become native (and thus will
change) **REAL SOON NOW**. As to what the story will be with respect to
access, I don't know.
-bob mckenzie, palmsource pdx
-Original
3.5.2. Does this mean that I cannot use this
function?
Thanks for the reply BTW...
Robert McKenzie [EMAIL PROTECTED] wrote in message
news:75794@palm-dev-forum...
You are directly accessing a system internal (pt-items). This is a big
naughty. I guarantee you that if you do this your code
Oops. Here is the definitive word. Thanks, Jim!
-bob mckenzie, palmsource pdx
-Original Message-
From: Jim Schram [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, February 06, 2002 1:23 AM
To: Palm Developer Forum
Subject: Re: Table problem (compiler error)
At 5:18 PM +0200 2002/02/05,
You are directly accessing a system internal (pt-items). This is a big
naughty. I guarantee you that if you do this your code will not run on the
next Palm OS. Please use the published APIs. In particular use:
Int16 ColumnCount = TblGetNumberofColumns(pT);
-bob mckenzie, palm portland.
Well, not really. It just is. (No doubt it has to do with memory space
issues, but...)
I can, however, give you guidelines about segmenting that will work.
The fail-safe guideline is:
In response to a launch of your application, you may not, directly or
indirectly, call any function outside
OS-wise, the i705 looks much like a Palm VII. In particular, it supports
the InetLib for communication through its radio link.
The Push technology is handled by the OS invisibly to the device
applications. If something is pushed to the device, it is caught by the OS
and turned over to the
On a VII, I would suspect that MultiMail just doesn't get its push stuff.
-bob mckenzie, palm portland
-Original Message-
From: Brian Smith [mailto:[EMAIL PROTECTED]]
Sent: Monday, February 04, 2002 10:25 AM
To: Palm Developer Forum
Subject: RE: i705 wireless access
On Mon, 4 Feb
Just a guess here, but I would suspect that you have a perfectly valid
(non-deleted) record in your database without any handle associated with it
(i.e., with a NULL handle). How can this happen, I hear you ask? Simple --
Just use DmAttachRecord with a NULL new handle! There **may** be other
is never corrupted by animating the car bitmap.
Is my understanding correct? Is it necessary to draw the background image (the road)
each and EVERY time PRIOR to drawing the car bitmap image?
Any thoughts/suggestions/corrections would be greatly appreciated!
Thanks,
Robert Purcell, [EMAIL
, but I try my best to
stay away from C++ whenever possible. :) Have you considered
releasing a version of Razor in C? Obviously I hate to reinvent
the wheel!
Thank again for taking the time to help me! :)
Robert Purcell, [EMAIL PROTECTED]
BapSoft, http://www.bapsoft.com
--- In [EMAIL
There are two restrictions to code that executes in response to a find:
(1) Globals are not available.
(2) All code must be in Segment 1.
You should additionally note that the find may run when your application is
NOT running (then (1) really is enforced), OR when your app IS running (then
(1)
This is a basic C programming question. Let me put on my CS101 hat and take
a swing at it.
char name[1]; is completely different from CharPtr name; and char* name.
The later two are the same (assuming that CharPtr is typedef'd as char *,
which earlier versions of Palm header files did).
char
To debug an app that fatal errors on install, you must identify the code
that is executing on install and make it run -- in the same state -- under
the debugger when the debugger loads the application.
Normally this is code that runs in response to sync notification launch
code. My standard
The control repeat event itself contains a (user defined) controlID field,
hence :
switch (event-data.ctlRepeat.controlID) {
case MainKeyboardBackspaceRepeating: ...do something
case MainKeyboardTabRepeating: ...
...
is, and always has been, the right way to do this.
Of course, it
Todd:
Dave's original comment still holds with this code. True you allocate
memory with MemPtrNew and store a pointer to the newly allocated memory in
startTime and endTime. But then you immediately set the startTime and
endTime pointers to point to the current labels -- effectively rendering
Hi Everyone,
I'm trying to programmatically determine if the user selected a menu entry
via a shortcut stroke or by directly selecting via the pull-down menus.
I haven't been able to find any information on the topic. Does anyone know
if this is possible?
Thanks!!
-Robert
www.bapsoft.com
starts drawing to the screen to give the OS time
to remove the pop-up bar from the screen. This works perfectly,
but I don't want this delay unless the user selects the
menu option via shortcut 'U'.
-Robert
http://www.bapsoft.com (BapSoft)
I suppose you could intercept vchrMenu and vchrCommand
developer's solutions to this problem.
Thanks!
Robert
__
Do You Yahoo!?
Check out Yahoo! Shopping and Yahoo! Auctions for all of
your unique holiday gifts! Buy at http://shopping.yahoo.com
or bid at http://auctions.yahoo.com
--
For information on using
Wow! Thanks for the great responses! I really do appreciate everyone's
input about reducing application size. There were a lot of good gems of
advice that I'm sure will help me squeeze my apps much tighter than they are
currently.
To answer Howard's question, I'm currently using Codewarrior
any
valuable debug information.
Hope that helps... :)
-Robert
__
Do You Yahoo!?
Check out Yahoo! Shopping and Yahoo! Auctions for all of
your unique holiday gifts! Buy at http://shopping.yahoo.com
or bid at http://auctions.yahoo.com
Bob's handy guide to rolling your own popup triggers in tables:
I Initialization.
You must initialize the table properly. Best is to set the item style as
a customTableItem, set the item int to hold the selection (or -1 for no
selection), set the item pointer to point to your list, and set a
bitmap moves over it. This process
is very slow on the Palm. I would think there should be an easier way
to do this. There are many scrolling type games out there for the
Palm that must do this.
Any thoughts/suggestions would be greatly appreciated!
Thanks,
-Robert
Philip:
DmGetRecord does NOT lock the handle. Hence the MemHandleUnlock(handle)
suggestion will result in a chunk not locked error.
-bob mckenzie, palm pdx
-Original Message-
From: Philip Sheard [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, December 04, 2001 1:02 AM
To: Palm Developer
global, I was constantly modifying the
first record. I found this by looking in memory and seeing it. I wasn't
paying enough attention to it yesterday to catch that.
Dan
Robert McKenzie [EMAIL PROTECTED] wrote in message
news:70063@palm-dev-forum...
Dan:
I see no errors in your pseudo code
No, DmResizeRecord does not fail if the record is busy -- on any version of
PalmOS. Following DmGetRecord with DmResizeRecord is perfectly kosher
(thought it does strike me as a bit bizarre -- I would call DmResizeRecord
and if it succeeded, then call DmGetRecord to mark it busy, but that is
Message-
From: amit tipnis [mailto:[EMAIL PROTECTED]]
Sent: Thursday, November 29, 2001 2:28 PM
To: Palm Developer Forum
Subject: Reading From Tables
Hi Robert,
Thanks for the quick response and the tip. But you
know, the first thing that I had tried was
TblGetItemPtr ( ), and the SDK tells me
Just a shot here, but if the user has put no text into the field (or has
backed it all out), the text handle returned by FldGetTextHandle will be
NULL. Thus you should check for that.
As a stylistic point, rather than using TblGrabFocus, you can use
TblGetItemPtr for your particular row and
1. Use FrmHideObject to erase the field from the display
2. Use FldGetTextHandle to retrieve the current text handle (possbily
null).
3. Use FldSetTextHandle and give the field a null handle
4. If the handle returned in 2. is not null, use MemHandleFree to dispose
of the memory.
5. If
Using FrmSetTitle will work, but your intuition that you should do more is
quite correct. You have created a memory leak here. You should save your
title pointer (easiest as a global) and dispose of the memory referenced on
the form close event. You should also null this pointer on form open.
preference would be in favour of MemHandleResize.
Ar Robert suggested, you keep a Memory Handle as non-automatic
(i.e. static or global) and initialize it to zero.
In UpdateTitle: if MemHandle is zero, do MemHandleNew, otherwise
MemHandleResize. In both cases, you need FrmSetTitle, because
the memory
I agree that FrmCopyTitle is a better solution. But there is more than one
way to do this, and the alternatives are instructive. The technique of
hiding the title, changing it, then showing it again is one that has more
general applicability -- you can (and often should) do the same trick with
. In this
case, you would need to call MemHandleUnlock and DmReleaseResource on form
close.
-bob mckenzie, palm pdx
-Original Message-
From: Andy Yeong [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, November 27, 2001 4:44 PM
To: Palm Developer Forum
Subject: Re: FrmSetTitle Usage
Hi Robert,
Robert
Generally speaking, fields like/use handles not pointers.
They lock the handle when the field has the focus (for editing), but
otherwise it remains unlocked. They can also resize the handle, moving any
memory after that given to the field down, so be careful. Or they can
compact the field,
TimGetSeconds() returns the current date in seconds after 1904. See the
Time Manager documentation in Part II, System Management section of the
PalmOS Programmer's API Reference for additonal routines to convert various
date/time representations.
To have the user select a date a date, you
FrmCopyLabel is only used in SelectDay to copy a yearString. The
yearString is allocated as 5 bytes on the stack and filled by a StrIToA from
the year value that you pass in (as an Int16). I am guessing that your year
is -1 or some other invalid value that doesn't convert to 4 decimal digits
1. keep the database sorted on your favorite field
2. use a binary search
-bob mckenzie, palm pdx
-Original Message-
From: Tim [mailto:[EMAIL PROTECTED]]
Sent: Monday, November 26, 2001 8:58 AM
To: Palm Developer Forum
Subject: Newbie search database question
Hey all,
I have a
I'm not sure what might be going on with your UInt. If it is declared in a
header which is included in multiple source files (one for Form1 and one for
Form2, there could be two different (local) globals under the same name. I
would check its address to verify/eliminate this possibility. A
TblInsertRow does not actually **INCREASE** the number of rows in the table.
Instead, the last row is tossed into the great bit bucket in the sky as the
new row is inserted. In your case, the last row was the current row --
i.e. was selected. To suppress the error message, call
make any sense.
Thanks in advance,
-Robert
Robert Matthews
[EMAIL PROTECTED]
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/
You could also use a field. You have to handle some field events, but it is
quite doable. I have multiple scrollable fields in my app, so have
developed some utility routines that I use. Check them out:
/***
***
**
DmNumRecordsInCategory() is what you want. It checks attributes and doesn't
count deleted or (if mode is to not show private) private records. Use
DmAllCategories with it. Be warned: it isn't very quick.
-bob mckenzie
-Original Message-
From: Todd Cary [mailto:[EMAIL PROTECTED]]
I see two work-arounds.
(1) Don't put up the original FrmCustomAlert -- use a regular (modal) form,
launch it with FrmDoDialog, have your own form event handler, and trap
(return handled == true on them) those annoying hardkey events. You could
create your own MyCustomAlert to handle this if it
Well
True, you are creating your list dynamically, but I (for one) would hardly
call it a dynamic list.
To answer your question -- if you create the list (LstNewList) on form open,
I would trash your memory on form close. Don't forget to check whether or
not you ever actually allocated the
This code looks fine to me -- a bit inefficient (no need to put the
description and note on the heap, they could be left on the stack), a bit
risky (whenever you use MemPtrNew or MemHandleNew or their brethern, you
should check that the allocation didn't fail) but fine.
The problem probably is
Catch the table select event and do your stuff there. Alternatively, you
can save your changes on form close.
-bob mckenzie
-Original Message-
From: Johnathan Smith [mailto:[EMAIL PROTECTED]]
Sent: Friday, October 05, 2001 5:49 AM
To: Palm Developer Forum
Subject: Table checkbox
There should be a rule that says you shouldn't post to newsgroups after 9:00
pm...
2048 corresponds to the 11th bit which is right where the red value picks
up.
Nice to know that my code works...
-Robert
-Original Message-
Subject: problems creating bitmaps...
From: Robert Matthews
++;
}
theLineP = theBitsP + 320;
while( theBitsP theLineP ) {
*theBitsP++ = *testP++;
}
}
WinDrawBitmap( newBitmapP, 0, 0 );
}
}
Thanks in advance,
-Robert
,
-Robert
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/
The Palm OS Programmer's API Reference defines DmOpenDatabase on page 594
(in Part II System Management, Section 28 Data and Resource Manager,
subsection Data Manager Functions). This takes the LocalID and Card
Number and returns a DmOpenRef. It also allows you to open the database
with various
You can certainly store contact information that your application collects
in address book. There are (currently) two methods of doing this:
accessing AddressDB directly, and using the exchange manager to send vCard
data to the address book application (use the 'addr' creator id as the
target of
I am not sure what you mean by put lines in on row breaks. If you mean
draw lines in between rows, you can use custom draw proceedures to do this.
If you mean to expand text cells to multiple lines when the user keys in a
line-feed, it will do this automatically unless you take steps to prevent
!
Robert McKenzie [EMAIL PROTECTED] wrote in message
news:63759@palm-dev-forum...
You can certainly store contact information that your application collects
in address book. There are (currently) two methods of doing this:
accessing AddressDB directly, and using the exchange manager to send
for just about anything at this point.
Thanks in advance...
-Robert
Robert Matthews
[EMAIL PROTECTED]
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/
tell me where to fin the vCard format? I've looked
in the Palm documentation and two Palm books I have and none have that
format listed.
Robert McKenzie [EMAIL PROTECTED] wrote in message
news:63780@palm-dev-forum...
John-
Beaming to another Palm is done via the Exchange Manager -- much like
for accepting
customer's payments?
Thanks!
-Robert
__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com
Also of interest is where, precisely, in the call stack is the error
happening. If you re-create the failure while the application is running
under a debugger, you should be able to answer this question. Knowing which
routing accesses an unallocated chunk might be a great indicator of which
You really don't want to create tables with that many rows. Not very zen of
Palm.
A table is a GUI thing-a-ma-jobbie. As such, normally you only create as
many rows as you can display. Then you load each table row with the data it
needs.
If, for example, you have a database with 1000 records
Text fields will also work quite well. You can set the field as
non-editable in the resource. If the strings you wish to display are stored
as resources (this is better for internationalization than having them
embedded in the code), you will access them as handles anyway (DmGetResource
returns
else feel concerned
that they may never see the hard-earned money for their product
registrations?
Sorry again for the off-topic subject and for speaking so negatively.
Thanks everyone!
-Robert
__
Do You Yahoo!?
Make international calls for as low
Hi Everyone,
I may have spoke too soon with my last message. I just read Aaron's
message from PGHQ. Maybe the situation isn't as bleak as I originally
thought.
Sorry for all the off-topic messages. I guess I'll shut-up for now
and get back to developing! :)
Thanks guys,
-Robert
701 - 800 of 956 matches
Mail list logo