Passage des paramètres (code)

De Wiki1000
(Différences entre les versions)
 
(Une révision intermédiaire par un utilisateur est masquée)
Ligne 34 : Ligne 34 :
 
|le paramètre est passé par valeur, la modification du paramètre n’affecte que le corps de la procédure.
 
|le paramètre est passé par valeur, la modification du paramètre n’affecte que le corps de la procédure.
 
|-
 
|-
|Const
+
|const
 
|le paramètre est passé par valeur et ne peut pas être modifié.
 
|le paramètre est passé par valeur et ne peut pas être modifié.
 
|-
 
|-
|Var
+
|var
 
|le paramètre est passé par référence et peut être modifié dans le corps de la procédure.
 
|le paramètre est passé par référence et peut être modifié dans le corps de la procédure.
 +
|-
 +
|out
 +
|le paramètre est un paramètre en sortie et peut être modifié dans le corps de la procédure.
 +
Ce qualifieur est utilisé dans les services
 
|}
 
|}
  
Ligne 106 : Ligne 110 :
  
 
{{Footer|Code métier}}
 
{{Footer|Code métier}}
 +
[[Category:Langage]]

Version actuelle en date du 15 mars 2013 à 09:17

Sommaire

Introduction

La langage Ligne 1000 utilise la même syntaxe que Pascal pour le passage des paramètres aux procédures et aux fonctions, toutefois il existe quelques particularités.

La syntaxe générale est la suivante :

Procedure NomProcedure(liste de paramètres);

ou

Function NomFonction(liste de paramètres):TypeDeRetour;

La syntaxe d’un paramètre est la suivante :

Qualificateur NomParamètre:TypeDuParamètre

Les paramètres sont séparés par un point virgule dans la liste des paramètres.

Exemple

Procedure MaProcedure(param1:string; var param2:Integer);
begin
end ;

La déclaration d’une procédure est appelée sa signature.

Qualificateur de paramètre

Les paramètres peuvent être passés par valeur ou par référence. Toutefois seuls les paramètres de type simple sont effectivement passés par valeur, les paramètres de type objet, y compris les types de données métiers, sont systématiquement passés par référence.

Les qualificateurs possibles pour un paramètre sont :

Aucun le paramètre est passé par valeur, la modification du paramètre n’affecte que le corps de la procédure.
const le paramètre est passé par valeur et ne peut pas être modifié.
var le paramètre est passé par référence et peut être modifié dans le corps de la procédure.
out le paramètre est un paramètre en sortie et peut être modifié dans le corps de la procédure.

Ce qualifieur est utilisé dans les services

Le langage Ligne 1000 adopte une convention sur les nom des paramètres de type objet pour permettre au compilateur de connaître la classe du paramètre.

Paramètre objet simple

Le type du paramètre doit être le nom du la classe de l’objet.

Exemple

Procedure MaProcedure(param :TEcriture);
begin
   // Param est reconnu comme un objet de la classe Tecriture.
   if Param.Compte.Code = '412000' then 
      begin
      end ;
end;

Paramètre liste d’objets

Le type du paramètre doit être le nom de la classe suivi du suffixe LIST.

Exemple

Procedure MaProcedure(param:TEcritureList);
var idx :Integer ;
begin
   // Param est une liste contenant des objets de la classe Tecriture.
  for idx :=0 to param.Count-1 do 
   if Param.Refs[idx].Compte.Code = '412000' then 
       begin
       end ;
end;

Paramètre curseur d’objets

Le type du paramètre doit être le nom de la classe suivi du suffixe CURSOR.

Exemple

Procedure MaProcedure(cur:TEcritureCursor);
var idx :Integer ;
begin
   // Param est un curseur sur la classe TEcriture.
   while not (cur.Eoi) do
     Begin
       if cur.Instance.Compte.Code = '412000' then
         begin
         end ;
       cur.Next ;  
     end; 
end;

Résultat d’une fonction

Les fonctions retournent un résultat dont la valeur est contenue dans la variable Result définie implicitement.

Exemple

Function MaFonction(...):TEcriture;
begin
  Result := TEcriture.Create;
  Result.Compte.Code := '412000';
  ...
end;

Code métierDéveloppement DSM

Outils personnels