hier mal eine Lösung:
Delphi-Quellcode:
fLinie := Rect(50, 50, 200, 80);
[...]
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
lPoint : TPoint;
lNeededY: Integer;
begin
X := X - fLinie.Left;
Y := Y - fLinie.Top;
lPoint := Point(fLinie.Right - fLinie.Left, fLinie.Bottom - fLinie.Top);
if (X >= 0) and (Y >= 0) and (X < lPoint.X) and (Y < lPoint.Y) then
begin
lNeededY := Round(X * lPoint.Y / lPoint.X);
if (lNeededY > Y - 5) and (lNeededY < Y + 5) then
caption := 'Linie getroffen'
else
caption := 'Linie verfehlt';
end
else
caption := 'außerhalb der Linie';
end;
fLinie ist vom Typ "TRect" wobei TopLeft die den Startpunkt angibt und BottomRight den EndPunkt.