Mon Premier Hello World Sur Palm
mardi 21 mars 2006, par darkcoding
Nous allons tout d’abord créer une petite application qui affiche le texte Hello World ;) Pour pas, changez.
Téléchargez bien toutes les applications utiles à la programmation sur PalmOS.
Onboard Suite inclus un éditeur srcedit, mais vous pouvez utilisez le Bloc-notes du Palm mais la taille des fichiers est limités à 4 Ko ou tous autres éditeurs .DOC comme QED ou bien de format pedit, pedit32 qui peu importer des fichiers doc.
IMPORTANT
Tout d’abord avant toute manipulation sur le Palm il faut faire IMPÉRATIVEMENT une sauvegarde complète de votre Palm. Noubliez pas qu’un palm a toutes ses données en RAM et que la moindre erreur de programmation de pointeur va conduire à un soft reset voir dans les cas les plus graves un hard reset et qui dis hard reset dit mémoire palm sortie d’usine alors n’hésitez pas à usez et abusez des sauvegardes ça ne coûte rien et sa peux sauvé la vie ;).
Déjà petites explications vous vous doutez bien que le fichier d’en-têtes fourni ne peut inclure l’intégralité des déclarations de L’API palm et donc de ce fait OnboardHeader.h qui est un fichier précompilé, reprends, les déclarations les plus utilisées.
Mais LA vous vous dite et si j’ai besoin de la fonction truc muche qui n’est pas incluse.
Deux possibilités se présentent à vous :
modifié la source dans le fichier OnboardHeader.h et le régénérer.
rajouter la définition de l’api dans la source de son programme
Vous trouverez la définition de l’Api manquante dans la Doc de référence PalmOS mais je pense cas se stade vous n’en aurez pas besoins, pour toute la doc sur PalmOS c’est ici.
Et enfin avant de pouvoir travailler il va vous falloir un éditeur de ressources pour vous permettre de créez une interface utilisateur.
Il en existe 2 à ma connaissance RsrcEdit qui est un shareware de chez Quartus le créateur d’Onboard Suite et BIRD écrit en Pascal par Philippe Guillot pour allez sur son site c’est ici.
BIRD permet les mêmes choses que RsrcEdit et est gratuit.
Qu’est-ce qu’un éditeur de ressource
c’est un outil extrêmement puissant qui vous permet de faire des modifications dans n’importe quelle application palm .
Il permet de :
modifier le nom de l’application
modifier des libellés
déplacer des boutons
rajouter un raccourci dans un menu
modifier l’icône de l’application
permet la traduction de toutes les ressources d’une application,
etc...
et permet donc de faire aussi de grosse bêtise alors faite attention à ce que vous faite quand vous vous promenez dans les ressources d’autres appli. que les votres.
Les choses sérieuses commence
Ça y est vous avez tout les outils en mains vous avez effectué une sauvegarde de votre Palm (je sais, je me répète, mais on n’est jamais trop prudent et peut-être vous me remercierez les automatismes y a que sa de vrai.)
Lancez bird
1
Menu Options New Database
| 2
Renseigner les champs
|
3
Ouvrir La base nouvellement créer
| 4
Allez dans New
|
5
Choisissez form
| 6
Remplir les champs width et height
|
7
Dans New Choisisez Title et remplir
| 8
Dans Frame choisissez simple
|
9
Resultats des manip
|
Puis Faites OK, DONE et enfin APPLY et sortez de l’application BIRD
Codage
Lancez
puis saisissez le code suivant :
Listing HelloWorl.c
#define MainForm 1000
//Definitions des prototypes
static Boolean appHandleEvent (EventPtr pEvent);
static void mainFormInit (FormPtr pForm);
static Boolean mainFormEventHandler (EventPtr pEvent);
static void startApp(); {return;}
static void stopApp(); {return;}
static Boolean MainFormEventHandler(EventPtr pEvent)
{
FormPtr pForm = FrmGetActiveForm();
Boolean handled = false;
switch (pEvent->eType)
{
case frmOpenEvent:
FrmDrawForm(pForm);
mainFormInit(pForm);
handled = true;
break;
}
return handled;
} //Fin MainFormHandleEvent
static Boolean appHandleEvent(EventPtr pEvent)
{
FormPtr pForm;
Int16 formId;
Boolean handled = false;
if (pEvent->eType == frmLoadEvent)
{
//Charge les ressources pour la form
formId = event->data.frmLoad.formID;
pForm = FrmInitForm(formId);
FrmSetActiveForm(pForm);
if (formId == MainForm)
FrmSetEventHandler(pForm,mainFormEventHandler);
handled = true;
}
return handled;
} // Fin AppHandleEvent
static void mainFormInit(FormPtr pForm)
{
static char foo[20] = "Hello World !!!";
WinDrawChars(foo,StrLen(foo),20,18);
} // Fin mainFormInit
void * getObjectPtr (formPtr pForm,Int16 resourceNo)
{
UInt16 objIndex = FrmGetObjectIndex(pForm,resourceNo);
return FrmGetObjectPtr(pForm,objIndex);
}
// Point d'entrée de l'application Palm
UInt32 PilotMain(UInt16 cmd, void *cmdPBP, UInt16 launchFlags)
{
EventType event;
UInt16 error;
if (cmd == sysAppLaunchCmdNormalLaunch)
{
// Initialise l'application
startApp();
FrmGotoForm(MainForm);
do
{
EvtGetEvent(&event, evtWaitForever);
if (!SysHandleEvent(&event))
if (!appHandleEvent(&event))
FrmDispatchEvent(&event);
} while (event.eType != appStopEvent);
StopApp();
FrmCloseAllForms();
} // cmd == sysAppLaunchCmdNormalLaunch
return 0;
} // Fin PilotMain
Lancez OnBoardC
|
|
Appuyez sur add pour ajouter le fichier dans le projet
|
|
|
|
Puis Appuyez sur Build [1]
Resultat de l’execution
J’espère que cela vous a plu maintenant c’est a vous de jouer,amusez vous bien et bonne programmation.Si vous avez des commentaires ou des suggestions n’hesitez pas.
[1] Compilation et assemblage du code
Documents liés
[ Imprimer
cet article ] [ Haut ] |