
La commande DoInputForm est plus complexe à utiliser que son équivalent du RPL, mais elle permet de créer des formulaires plus complexe et plus rapide. En RPL il n’y a que le champ texte, alors qu’en RPL système il y a 4 types de champs différents.
En exemple nous verrons le code source d'un convertisseur euro/franc
Bon accrochez vous bien, c’est parti…
La commande DoInputForm nécessite les arguments suivants :
Label1 paramètres du label
…
Labeln
Champ1 paramètres du champ
…
Champn
#nombre de labels
#nombre de Champs
MessageHandler Normalement 'DROPFALSE
"titre" Titre affiché
Paramètres du Label
Il y a 3 arguments pour chaque label qui sont :
"Label"
#position_x coordonné en x
#position_y coordonné en y
la position 0,0 correspond au coin en haut à gauche de l'écran.
Paramètres du champ
Il y 13 arguments pour définir chaque champ :
MessageHandler Normalement 'DROPFALSE
#position_x coordonné en x
#position_y coordonné en y (normalement position_y du label + 2)
#Longueur longueur du champ
#Hauteur hauteur du champ
#Type_de_champ nombre indiquant le type (listes, case à cocher, champ texte…)
#Types_autorisés Listes des types autorisés
Decompile
"Message d’aide" texte d’aide apparaissant en bas
Donnée de la liste de choix
ChooseDecompile ???
ResetValue
InitValue
MessageHandler : Le gestionnaire de messages est normalement à 'DROPFALSE, ce qui signifie que le programme ne manipule pas ce que l'utilisateur entre.
Type de champ
il y a quatre genres de champs:
Champ de donnée : l'utilisateur entre du texte,
Champ de donnée étendu : qui autorise l’utilisateur à écrire ou à choisir une variable,
Liste de choix : ensemble prédéterminé de valeurs,
Case à cocher :
1 texte : DF (Data Field) ou EDF (Extended Data Field)
3 Algébrique:
12 Liste de choix (LF : List Field)
32 Case à cocher (CF : Check Field)
Exemple:
- Code: Tout sélectionner
"!NO CODE
!RPL
::
CK0NOLASTWD
"Valeur" #1 TEN
* def Valeur
'DROPFALSE
#20 #8
FORTYFIVE #9
#1
{ ZERO }
#4
"Valeur à convertir"
MINUSONE
DUP
DUPDUP
* choix
'DROPFALSE
#50 # 8
#32 #9
TWELVE
MINUSONE
SEVENTEEN
"CHOOSE ou [+/-] pour sélectionner"
{
{ $ "FR\8DEuro"
DROP
DUP
MINUSONE
#=ITE
::
DROP
$ "ERREUR: 1 CHAMP VIDE"
;
::
DUP %2 RNDXY
a%>$
$ "_Fr="
&$ NEWLINE$&$ SWAP
% 6.55957 %/ %2
RNDXY
a%>$
$ "_Euro"
&$
&$
;
}
{
}
}
;
@"
Enregistrer le code source (EuroFr.s par exemple, je mets un .s pour faire la différence entre version compilé ou non, le programme exécutable sera appelé EuroFr)
Pour compiler le programme tapez: 257 ATTACH (si la librairie 257 n'est pas déjà attachée)
Puis faites: [Shift droite]; [2] (Lib); [A] (MASD) (Le programme est alors compilé, s'il y a un message d'erreur, vérifiez qu'il n'y ait aucune faute).
Tapez: 'EuroFr' STO
(Conseil : recopier le contenu port 0 et du répertoire HOME dans le port 1 ou 2 pour sauvegarder au cas ou une instruction aurait été oublié)
Tapez: Lancer le programme EuroFr.
S'il ne s'exécute pas comme il faut, vérifiez le code source (sauvé sous EuroFr.s ou télécharger le code source).
Je décline toutes responsabilités en cas de perte de données, plantages...
Télécharger la version compilé et le code source: