Bonjour à tous

Je demande vos lumières pour une erreur incompréhensible que je n'ai jamais rencontrée.

J'appelle une fonction pour affecter sa valeur à une variable.
La fonction est dans une unité différente de l'unité où se fait l'appel mais c'est une opétation tout-à-fait courante, non ?
Or, la valeur de la variable après appel de ma fonction est égale à 0 alors que la fonction renvoie une valeur de 5. J'en ai la certitude après exécution en mode pas à pas.

Voici le code de l'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Function TStreetForm.NearBtnAction(Parcel : TPolygParams) : Boolean;
Var
  NoLayer : Integer;
  LayerDirName : String;
.
.
begin
.
.
  LayerDirName := TableDbleLieu.FieldValues['DivCode'] + TableDbleLieu.FieldValues['Sect'];
  NoLayer := MapForm.NoLayerFromLayerName(MapForm.Map, LayerDirName + 'CaPa');
.
.
La fonction appelée est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Function TMapForm.NoLayerFromLayerName(Map : TMap; LName : String) : Integer;
Var
  i : Integer;
begin
  For i := 0 to Map.NumLayers - 1 do
  if Map.LayerName[i] = LName then
  begin
    Result := i;
    Break;
  end;
end;
Une idée ?

Merci d'avance pour vos suggestions.