Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Shape nur im 45° Winkel bewegen

  Alt 9. Okt 2008, 10:24
Ich verschiebe mit der Maus eine Shape:
Delphi-Quellcode:
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  XMouseDown := X;
  YMouseDown := Y;
  IsOver := true;
end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  IsOver := False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IsOver := False;
end;

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if isOver then
  begin
    Caption := IntToStr(X);
    Shape1.Left := Shape1.Left + X - XMouseDown;
    Shape1.Top := Shape1.Top + Y - YMouseDown;
  end;
end;
Jetzt ist es aber so, dass man dieses Shape nur diagonal im 45° Winkel von links oben nach recht unter verschieben können darf. Also auch wenn ich die Maus seitwärts bewege muss das Shape sich nach rechts unten bewegen. Hinzukommt, dass sich das Shape auch bewegen muss, wenn die Maus aufgrund der Bewegung das Shape verlässt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat