Comment créer une interface utilisateur ?▲
Les menus▲
Nous avons vu dans l'exemple de la partie précédente comment faire un menu de
navigation en dessinant, et en gérant les appuis sur certaines touches. Notez qu'on peut s'en passer
et faire un menu simple en utilisant menuAppendString ou menuAppendStringImage.
Exemple
var
hanoi, puzzle, snake : integer
;
jeu : command;
begin
showMenu('Selectionner le jeu'
, CH_IMPLICIT);
hanoi := MenuAppendString('Hanoi'
);
puzzle := MenuAppendString('Puzzle'
);
{Il y a la possibilité de mettre une image dans la liste des menu}
snake := MenuAppendStringImage('Snake'
, loadImage('/icon.png'
));
jeu := CreateCommand('Jouer'
, CM_SCREEN, 1
);
AddCommand(jeu);
repeat
delay(100
);
until
getClickedCommand = jeu;
end
.
Vous pouvez également envoyer des messages d'alertes à l'utilisateur sous certaines conditions. Un cas d'utilisation serait : tant que l'utilisateur n'aura pas sélectionné le menu 'Hanoi' on lui enverra un message d'alerte en utilisant showAlert
Les formulaires▲
Les formulaires peuvent s'avérer nécessaires si vous voulez faire remplir des champs,
par exemple, par un utilisateur de votre application. Il est évident que l'utilisation des fonctions de
touches comme getKeyClicked ne vous aiderait pas, il faut donc quelque chose de plus approprié,
un peu comme les boîtes de dialogue sur les plateformes PC.
Avant d'afficher les éléments du formulaire, il faut changer de mode en utilisant showForm.
Il existe principalement deux modes, un peu comme on dirait en Pascal standard, le mode graphique et le
mode texte ou console. Ici quand on utilisera les éléments de formulaire il faudra ensuite utiliser
showForm pour qu'ils soient visibles à l'écran.
Exemple
var
label
, textField: integer
;
begin
label
:= formAddString('Bonjour'
);
textField := formAddTextField('pseudo'
, 'krachik'
, 20
, TF_ANY);
showForm;
delay(2000
);
end
.
Si vous êtes dans ce mode, vous pouvez changer de mode si vous voulez dessiner par exemple un texte à l'écran en utilisant la procédure showCanvas.
var
label
, textField: integer
;
begin
label
:= formAddString('Bonjour'
);
textField_id := FormAddTextField('pseudo'
, 'krachik'
, 20
, TF_ANY);
showForm;
delay(2000
);
showCanvas;
drawText('Hello world'
, 0
, 0
);
repaint;
delay(2000
);
end
.
Si vous faites un programme pour juste dessiner un texte par exemple, vous n'avez pas besoin d'utiliser showCanvas.