FAQ - Palmphi
General
What is the latest version of Palmphi and where can I get it ?
You can get the latest version by clicking to the link
"Product URL" in the About box in Palmphi. At this page you can see
under the logo the current version.
Can I be notified when new versions of Palmphi
are available ?
Not for every single version, as currently there are around
five new versions every week. Though you can suscribe the mailing list
of yahoo and select "mail me only for special notices", every time I
consider having made a big step in the development I will post a
special notice to yahoo.
Is there a mailing list for Palmphi?
Better yet! there is a Yahoo Group. Use it as mailing list
to post your questions and share code and experiences.
How much costs Palmphi ?
Nothing. It is freeware. You shouldn't make money with it
without sharing a part with me though, but this is up to you.
Where comes this strange name from?
Well you probably guessed where the part "Palm" comes from.
The second part "phi" comes from my favorite language "Delphi" which I
consider the best one for small applications like this and which
inspired me to do something similar for the Palm.
Where can I get help ?
To get started with Palmphi use the tutorials. To know more
about what you can do with each object use the Class browser. You can
take a look at the samples too. Finally, if you have a question post it
to the yahoo group or send me a mail.
Will Palmphi ever support xxxxx?
I don't know. I am a complete beginner with PalmOS
development. If you want Palmphi to do something you will have to teach
me first how it works with C + Palm SDK.
Is Palmphi compatible with OS x.x ?
I own a Palm m100 and I can say for sure that Palmphi works
fine with it. For other OS I didn't try. I have tested many applications with the simulator provided by Palm and have improved
many compatibility issues. So unless you do something special it should work
everything. Feedback at this issue is, of course, welcome.
I can't see any colors with programs created
with Palmphi !
If you want colors, you will have to dive into the Palm API
as I don't have color and I don't know how to use it. If you learn how
it works, I would appreciate if you tell me how I can implement it in
Palmphi for other users.
I am interested in the source code, can you
send it to me ?
Yes, download it from the Files section of the Yahoo group.
If you change anything and want other people to use your change you may
consider sending your modifications back to me.
What are your future plans for Palmphi?
I have stopped inplementing more functionality, now I am
trying to make it as stable and bug-free as possible. Every feedback is
welcome.
After I have something stable I will probably inprove the
parser, add new classes or automatize frequently used tasks (like
allowing to link components that work together)
Could you please implement this cool feature?
Sure!, send it to me. I can't promise you anything, but I
will surely take it into account.
Programming language
Is this C or C++?
This is C. Sometimes it looks like C++. Specially when you
use a method for one of the visual objects. But these is just like a
#define, before the program is compiled every object and method is
substituted to plain C.
Why not use C++ ?
C++ is very nice, but it uses the memory too generously for
a Palm Device. Also there is no easy way to create properties and I
wanted to have writable properties for every object, so I can write Edit1.Enabled=0;
Can I create a class with Palmphi ?
Not yet. You can add the class to the file parser.c . The
format shouldn't be difficult to understand. But you can have member
functions and member properties but no member variables. In the future
this might change.
How is the program compiled ?
- A header file is created with the resources of the program
- A C file is created containing :
- Needed header files (as #include)
- Definitions for the dimensions of each object
- Declarations of all the events which are defined
- Definition of all the TGadget private structs
- StartApplication function which calls Application.OnStart (if
any) and initializes all the fonts whose AutoInit is true
- StopApplication function which calls Application.OnTerminate
(if any)
- A definition of needed temporary storage variables for
TTable's, TListbox'es and TScrollBox'es
- An event handler for each TForm which calls all defined events.
The handler does also following :
- Translates the coordinates of the pen and calls each
OnPenDown / OnPenUp / OnPenMove with the coordinates relative to the
left/upper corner of the component
- Calls the OnPaint events of all components which need to
repaint
- Reserves memory to store strings needed by tables with
AutoInit=True upon frmOpenEvent
- Reserves List handles for each TListBox
- Initializes the tables with the default types and values (if
AutoInit=True)
- Initializes TEdit's with the default values
- Frees reserved memory on frmCloseEvent
- A global event handler for the whole Application
- EventLoop function which fetches and dispatch all the events
- A PilotMain function which launches the application
- Each of the .c files of the project appended.
- Appropiate directives are also included, so you get the right
line and filename when an error occurrs.
- This C file is parsed completely and "translated" to plain C
- A makefile is created
- A new cygwin.bat is created, which mountes your project directory
accessible to cygwin.
- A script file is created to run makefile on your project.
- Output data of the compiler is processed and showed to you
- Temporary files are deleted.
Isn't this process a bit slow ?
Probably, but who cares? Computers now are fast enough to
process this, I use an Athlon 900 Mhz and compiling the second time
(after everything is in the cache) won't take over 2 secs.
Where is the resulting .prc?
The resulting prc file is in your project directory. You
can synchronize normally to your palm or use an emulator.
Is there an emulator ?
If you are a serious developer you will probably want to
use a palm emulator. There is one at the Palm site working very well.
You can just drag and drop the prc files to the emulator and you can
see in seconds if your program does what you want or only what you told
it to do. I don't distribute any emulator nor roms, so don't bother
asking me.
This version of cygwin/prctools/palmsdk you
have is very old !
I found this version to work perfectly for what I need. You
don't have to use it necessarily, every version new or old of each
product should work as well.
Why is not the API function XXXXX in Palmphi ?
Every API function is in Palmphi, as Palmphi is just a
front-end to the API. So if you have, let's say, a TEdit and you want
to use the function FldScrollField just use it ! TEdit is an alias for
FieldPtr so you can write FldScrollField(Edit1,2,up);
Other questions
I get a message, that my version is old and
have to update, what is this?
For each new version there is about one month buffer for
use time. After this month you are prompted to update. You still can
use the program normally, but each time you start it you will get the
prompt. I will make this buffer bigger and bigger as the version
becomes more stable.
The project directory is full of files, what do they mean?
Your source code is stored in the .c files. The resource information
(Forms, Objects, etc) are stored in the .pprj file. The rest are temporary
files created by the compiler and parser. In particular you may want to take
a look to the .c file which has the same name as the project, this file contains
the plain C code ready to be compiled.
My question is not here. What now?
Send me a mail. I normally answer in less than one day.