Introduction au MIDlet Pascal 2.02Date de publication : 30 Décembre 2009 , Date de mise à jour : 30 Décembre 2009
VI. Création et utilisation des unités
VI-A. Théorie
VI-B. Pratique
VI-C.
Utilisation de l'unité par d'autres programmes
VI-D. Importation d'unités
VI. Création et utilisation des unités
Quand nous faisons un gros programme, il devient souvent difficile
de maintenir le tout dans un meme fichier source. Il convient alors de le diviser en plusieurs fichiers facilement maniables afin de faciliter la maintenance et le suivi du projet.
Il arrive souvent aussi, que nous devions coder un ensemble de fonctions qu'on aura à utiliser dans plusieurs projets, ou distribuer afin que d'autres les utilisent.
Pour répondre à ces divers besoins, on utilise fréquemment en Pascal des unités.
Une unité est une liste de fonctions, de variables et de procédures traitant d'un même thème mises ensemble dans un fichier source. Et ces procédures et fonctions sont par la suite réutilisables dans d'autres programmes ou unités.
VI-A. Théorie
Une unité sous MIDlet Pascal comprend trois parties :
- Interface
- Implémentation
- Initialisation
Dans l'interface, on définit l'entête des fonctions que d'autres programmes pourront utiliser. C'est dans la partie implémentation que ces fonctions seront déclarées entièrement avec leur code. On peut aussi déclarer dans les entêtes des fonctions qui n'ont pas été définies dans la partie implémentation. La dernière partie -initialisation- est réservée à l'initialisation des variables globales de l'unité.
Avec MIDlet Pascal, on ne peut définir qu'une unité par fichier, et le nom du fichier doit correspondre au nom de l'unité.
Format d'une unité sous MIDlet Pascal : PremierUnite.mpsrc
unit premierUnite;
interface
implementation
initialization
end .
|
VI-B. Pratique
Lancez MIDlet Pascal, et créez un nouveau projet. Nommons-le hello2. Allez dans le menu projet et choisissez « New source file ». Dans la boite de dialogue qui s'affiche, tapez le nom de l'unité « transform».
Nous allons transformer notre programme précédent en un programme principal et une unité.
Voyons le code de l'unité :
unit transform;
interface
procedure animation;
procedure setTexte(s : String );
implementation
var texte : String ;
dim : integer ;
procedure setTexte(s : String );
begin
texte:=s;
end ;
function rotation(tex: string ) :string ;
var c, d: char ;
i :integer ;
begin
c:=getChar(tex,0 );
for i:=length(tex)-1 downto 0 do
begin
d:=getChar(tex,i);
tex:=setChar(tex, c, i);
c:=d;
end ;
rotation:=tex;
end ;
procedure animation;
var rot, aux : string ;
a, b : integer ;
begin
rot:=texte;
setColor(0 , 0 , 250 );
rot:=texte;
b:=(getHeight div 2 ) - (getStringHeight(copy(rot,0 , dim)) div 2 );
a:=(getWidth div 2 ) - (getStringWidth(copy(rot,0 , dim)) div 2 );
repeat
setColor(50 , 114 , 184 );
aux:=copy(rot,0 , dim);
drawText(aux, a, b);
rot:=rotation(rot);
repaint;
delay(250 );
SetColor(255 , 255 , 255 );
FillRect(a, b, getStringWidth(aux)+20 , getStringHeight(aux));
until GetKeyClicked <> KE_NONE;
end ;
initialization
dim:=20 ;
end .
|
Vous pouvez voir qu'il n'y a pas de modification importante par rapport au code précédent. Nous avons mis les deux fonctions setText() et animation() dans la partie interface.
Dans la partie implementation, nous avons défini le code de ces deux fonctions, et aussi d'autres fonctions comme rotation(), qui est utilisée par animation(), mais qui ne pourra etre appelée par un autre programme ou unité utilisant l'unité transform puisque son entête
ne figure pas dans la partie Interface.
Dans la dernière partie, à savoir initialization, nous initialisons dim à 20, qui est le nombre de caractères à afficher sur l'écran.
VI-C.
Utilisation de l'unité par d'autres programmes
Pour utiliser l'unité dans un programme, il suffit d'ajouter après le nom du programme la clause uses suivie du nom de l'unité. Si vous voulez utiliser une unité depuis une autre unité, la clause « uses » doit être placée immédiatement après la clause « implementation ».
Une fois la déclaration faite, toutes les procédures et variables disponibles dans l'interface de l'unité peuvent être utilisées.
Voyons le code du programme principal de notre programme utilisant l'unité transform.
program hello;
uses tranform;
BEGIN
setTexte(' hello world -- darrylsite -- developpez.com -- ' );
animation;
END .
|
Lorsque que plusieurs unités ont les mêmes noms pour des identificateurs, on peut précéder le nom de l'identificateur du nom de l'unité qui le contient, suivi d'un point. Et ceci est indispensable si on veut utiliser des variables, des types ou des constantes déclarées dans la partie interface d'une unité.
program hello;
uses tranform;
BEGIN
Transform.setTexte(' hello world -- darrylsite -- developpez.com -- ' );
Transform.animation;
END .
|
VI-D. Importation d'unités
Il nous arrive fréquemment de réutiliser des unités provenant d'autres projets. Avec certains compilateurs comme Turbo Pascal ou
Free Pascal par exemple, il suffit de mettre l'unité dans le même dossier puis de lancer la compilation. Avec MIDlet Pascal, il faut créer une nouvelle
unité dans le projet en cours, puis copier/coller le code de l'ancienne unité dans celle que vous venez de créer.
Copyright ©2009
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|