Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rechteck in ein Image zeichnen mit Mouse positioniertbar (https://www.delphipraxis.net/67813-rechteck-ein-image-zeichnen-mit-mouse-positioniertbar.html)

Christian18 20. Apr 2006 10:48


Rechteck in ein Image zeichnen mit Mouse positioniertbar
 
Hallo,

ich habe ein BMP Bild, was ich in einem Image anzeigen lasse. In dem Image habe ich die Eigenschaft Proportional auf True gesetzt. In dem Image soll mit der Mouse es möglich sein kleine Rechtecke zu setzen. Bei dem Ereignis onMouseDown löse ich folgendes aus!

Image1.Canvas.Regtangle(x - 5, y - 5, x + 5, y + 5);

Meiner Meinung nach sollte das Rechteck gezeichnet werden, und zwar genau da wo die Diagonalen des Rechtecks sich schneiden. Das tut es aber nicht. Das Rechteck wird irgendwo gezeichnet. GHat jemand einen Tipp für mich???

Mit freundlichen Grüßen

Christian18

XeRo 20. Apr 2006 10:53

Re: Rechteck in ein Image zeichnen mit Mouse positioniertbar
 
wird das bild verkleinert oder wird es in originalgröße angezeigt?

[edit]wenn man das bild verkleinert sind auch die koordinaten der pixel verschoben.[/edit]

marabu 20. Apr 2006 12:55

Re: Rechteck in ein Image zeichnen mit Mouse positioniertbar
 
Hallo Christian,

machst du noch mehr im Ereignis OnMouseDown()? Oder hast du aus Versehen das Ereignis der Form oder einer anderen Komponente benutzt, so dass die Koordinaten das falsche Bezugssystem haben? Das hier funktioniert:

Delphi-Quellcode:
procedure TDemoForm.ImageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  with Sender as TImage do
    Canvas.Rectangle(X-5, Y-5, X+5, Y+5);
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz