Bonjour

Je vous livre la procédure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Procedure TGisForm.ClosestPointOnSegmentFromPoint(const x1,y1,x2,y2,Px,Py:Double; out Nx,Ny:Double);
var
  Vx,Vy ,Wx, Wy, c1, c2, Ratio : Double;
begin
  Vx := x2 - x1; Vy := y2 - y1;
  Wx := Px - x1; Wy := Py - y1;
  c1 := Vx * Wx + Vy * Wy;
  if c1 <= 0.0 then
  begin
    Nx := x1;
    Ny := y1;
    Exit;
  end;
  c2 := Vx * Vx + Vy * Vy;
  if c2 <= c1  then
  begin
    Nx := x2;
    Ny := y2;
    Exit;
  end;
  Ratio := c1 / c2;
  Nx := x1 + Ratio * Vx;
  Ny := y1 + Ratio * Vy;
end;
Lors de sa compilation s'il y a une erreur de syntaxe, l'instruction mise en évidence n'est pas celle où se situe l'erreur mais bien une des lignes de déclaration.
Il en va de même pour toutes les procédures qui suivent dans la source.

Si quelqu'un a une idée...