Question

Je n'ai jamais essayé de faire une GUI sans concepteur GUI et maintenant j'apprends à développer des applications Palm OS avec le livre Programmation Palm OS: le Guide des développeurs. Et sur ce, j'ai ce code qui est une déclaration de certains articles GUI:

#define HelloWorldForm 1000
#define HelloWorldButtonButton 1003
#define HelloWorldMenuBar 1000

#define GoodnightMoonAlert 1101

#define FirstBeep 1010

#define SecondBeepmore 1000

Je veux savoir certaines choses:

  • J'ai besoin de le faire dans un type de commande?
  • Pourquoi dois-je déclarer ces chiffres?
  • Dans ce qu'ils vont m'aider?
  • Ils ont quelque chose lié au type d'élément qu'ils sont?
Était-ce utile?

La solution

Ils ressources sur les identifiants. Tu n'es pas obligatoire Pour définir ces macros, mais si vous ne le faites pas, vous devrez plutôt utiliser les valeurs entières brutes lorsque vous essayez de vous référer aux widgets d'interface utilisateur dans le code. Par exemple, la manière typique de l'obtention d'un pointeur vers un contrôle d'interface utilisateur serait d'appeler:

FormType* formP = FrmGetActiveForm();
UInt16 index = FrmGetObjectIndex(formP, objectID);
ControlType* controlP = FrmGetObjectPtr(formP, index);

Vous auriez besoin d'obtenir des pointeurs vers les widgets d'interface utilisateur afin de faire des choses telles que la lecture de leurs états (comme pour les cases), le changement d'étiquettes de texte, les afficher ou les cacher dynamiquement, etc.

Il n'y a pas de sécurité de type entre les identifiants de ressources et ce que vous faites avec le pointeur dont vous vous remettez FrmGetObjectPtr; Il est de votre responsabilité de suivre quel ID correspond au type de contrôle (la pratique courante consiste à utiliser des noms descriptifs).

Autres conseils

Ce sont probablement des "raccourcis lisibles par l'homme" (sous la forme de macros C semble) associés aux éléments GUI: lesdits éléments ne sont probablement référencés que par des entiers dans le système hôte. Vous ne nous avez pas fourni beaucoup de détails avec lesquels travailler ici.

L'avantage d'une telle technique est généralement associé à une maintenance plus facile (entre autres).

Ils offrent quelques avantages.

  1. Documenter le code. Préférez-vous avoir un appel comme LoadForm(1000); ou LoadForm(HelloWorldForm); Dans votre code source?
  2. Ils peuvent en fait être utilisés par le fichier qui définit les ressources. Si jamais vous avez besoin de renuméroter les ressources (peut-être que vous fusionnez deux projets qui ont tous deux utilisé 1000 pour différentes formes), vous n'auriez qu'à modifier la valeur en un seul endroit.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top