![]() |
Frage zu getcursorpos
Jo hi ich wollte mal fragen was ich genau machen will wenn ich eine canvas habe auf der ich bei click ein rechteck zeichnen will!!!(das ganze ist für die schule :pale: :pale: :pale: :pale: :pale: :pale: )
danke für eure hilfe |
Re: Frage zu getcursorpos
Also mit getcursorpos kenn ich mich nicht dabei, aber du könntest es ja mit der OnMouseDown MEthode lösen? (die gibt mit X und Y die Position des Mauszeigers an!)
Edit: Siehe unten ein Beispiel ;) |
Re: Frage zu getcursorpos
Zitat:
Ne, Scherz beiseite... Du willst ein Rechteck zeichnen, wenn du auf das Image klickst? Wie groß soll das Rechteck sein? Willst du das mit der Maus ziehen oder einfach nur hinzeichnen? einfach zum zeichnen wäre sowas:
Delphi-Quellcode:
Ansonsten schau dir (wie dein titel) GetCursorPos(Point) mal an, damit kannst du ein Rechteck ziehen...
procedure TFormX.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin with ImageX.canvas do begin pen.color := clblack; brush.color := white; rectangle(x , y , x + 30 , y + 50); end; end; MfG Lefko. :coder: |
Re: Frage zu getcursorpos
hmmm ziehen wäre geil ^^
wenn dus weist sag :D wenn nich nich schlimm ^^ |
Re: Frage zu getcursorpos
Ich habe gelernt, wenn man was beim geklickt halten zeichnen will (erstmal nur Oixel für Pixel), dann nimm die MouseMove Methode:
Delphi-Quellcode:
Damit kannst du schonmal so zeichnen, jetzt müsste man noch eine Lösung für das Zeichnen eines Rechtecks finden... :gruebel:
if ssLeft in Shift then Image1.Canvas.Pixels[X, Y] := clblue;
Versuch's mal damit: Hat zwar jetzt nicht's mit dem eben genannten ssLeft und shift zu tun, aber ist vielleicht für dich ganz hilfreich(für später mal?)
Delphi-Quellcode:
Du musst als VarParameter der Form StartX, StartY als Integer deklarieren. Das Prinzip ist leicht, wenn die Maus gedrückt wird, werden StartX bzw -Y mit den X und Y Werten dieses Clicks belegt, und wird die Maus wieder losgelassen , wird ein Rechteck von StartX, bzw. -Y zum aktuellen X und Y gezeichnet.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin StartX := X; StartY := Y; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Image1.Canvas.Rectangle(StartX, StartY, X, Y); end; Nachteil: Du siehst nicht den Rahmen, während du ziehst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz