Thema: Delphi Frage zu getcursorpos

Einzelnen Beitrag anzeigen

Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: Frage zu getcursorpos

  Alt 9. Jan 2004, 18:45
Ich habe gelernt, wenn man was beim geklickt halten zeichnen will (erstmal nur Oixel für Pixel), dann nimm die MouseMove Methode: if ssLeft in Shift then Image1.Canvas.Pixels[X, Y] := clblue; Damit kannst du schonmal so zeichnen, jetzt müsste man noch eine Lösung für das Zeichnen eines Rechtecks finden...

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:
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;
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.
Nachteil: Du siehst nicht den Rahmen, während du ziehst.
  Mit Zitat antworten Zitat