Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence

Introduction au MIDlet Pascal 2.02

Date 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
{ 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é :
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écharger
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é.
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.

 

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com