Thema: Delphi auf linen klicken

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: auf linen klicken

  Alt 14. Nov 2006, 21:23
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat