Passage des paramètres (code)
(→Qualificateur de paramètre) |
|||
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 |
|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 |
|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 | ||
|} | |} | ||
Version du 25 juillet 2009 à 08:08
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étier — Développement DSM —