Passage des paramètres (code)

De Wiki1000
Version du 15 mars 2013 à 09:17 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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