Autor Beitrag
Roux
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 28.06.08 15:22 
Hi!
Ich habe ein TImage Objekt mit einem Bild und dazu 2 Proceduren (MouseMove vom TImage und OnClick vom TImage):
(Hinweis: X2 und Y2 sind 2 globale Variablen vom Typ Integer)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.WKClick(Sender: TObject);
begin
  WK.Canvas.MoveTo(0,0);
  WK.Canvas.LineTo(X2,Y2);
  
end;

procedure TForm1.WKMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  X2 := X;
  Y2 := Y;
end;


Wenn ich auf die Karte Klicke, sollte er doch vom 0;0 Punkt aus eine Linie ziehen zu den Punkt den ich angeklickt habe, oder nicht? Er machts jedenfalls nicht, die Linie ist immer zu kurz.

Roux


Zuletzt bearbeitet von Roux am Sa 28.06.08 15:39, insgesamt 1-mal bearbeitet
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Sa 28.06.08 15:35 
Kommt drauf an. Wenn das Bild ungestretcht vorliegt dann ja, aber ich vermute, dass du dein Bild kleiner gestretcht hast. Denn bei Canvas geht es um Bildpunkte, bei Mäusen dagegen um Pixel. :wink:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
factorX := WK.Picture.Width / WK.Width;    // factorX: Single;
factorY := WK.Picture.Height / WK.Heighth; // factorY: Single;
WK.Canvas.MoveTo(00);
WK.Canvas.LineTo(round(X2 * factorX), round(Y2 * factorY));
Roux Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 28.06.08 15:40 
Achso, das sind Bildpunkte, Danke :)