IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Introduction au MIDlet Pascal 2.02


précédentsommairesuivant

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

 
Sélectionnez
unit premierUnite;

interface
{ procedure et fonctions publiques }

implementation
{ codes des procedures et fonctions}

initialization
{ initializations des variables}
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é :

 
Sélectionnez
unit transform;

interface

	procedure animation; //affiche le texte defilant
	procedure setTexte(s : String); //definit le texte a faire defiler

implementation


var texte : String; //le texte a faire defiler
     dim : integer; // nombre de caractere a afficher
                    

procedure setTexte(s : String);
begin
 texte:=s;
end; 
        
      
//fait rotation des caractere d'une phrase
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; 


{cree l'effet de texte defilant et l'affiche} 
procedure animation; 
 
var rot, aux : string; 
    a, b : integer;
    
begin
  //on affiche le texte defilant 
  rot:=texte; 
  setColor(0, 0, 250);
  rot:=texte;
  //position du texte à l'ecran
  //on affiche le texte centre sur l'ecran
  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.

 
TéléchargerSélectionnez
program hello;
//appel de l'unite
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é.

 
Sélectionnez
program hello;
//appel de l'unite
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.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2009 developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.