Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Image rotieren lassen und die breite ändern

  Alt 14. Sep 2008, 19:43
Hallo,

ich lasse ein Image auf meiner Form rotieren. Das mache ich so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
  var wx, wy: Real;
begin
  DoubleBuffered:=True;

  Winkel:=0;

  // Radius berechnen
  wx:=(ClientWidth / 2) - Image1.Width;
  wy:=(ClientHeight / 2) - Image1.Height;

  Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
  Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
  var wx, wy: Real;
  k:integer;
begin
  Winkel:=Winkel - 0.005;

  // Radius berechnen
  wx:=(ClientWidth / 2) - Image1.Width;
  wy:=(ClientHeight / 2) - Image1.Height;

  Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
  Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;
Wenn das Image sich am größten Punkt x befindet, dass soll die Image breite 0 sein.
Wenn das Image sich am niedrigsten Punkt x befindet, dann soll die Image breite auch 0 sein.

Wenn das Image sich am größen Punkt y befindet, dann soll das Image die volle breite haben. Also aus der original datei.
Wenn sich das Image am niedrigsten Punkt y befindet, dann soll es auch die volle breite haben.

Wie kann ich das machen?

MFG Christian18
  Mit Zitat antworten Zitat