Einzelnen Beitrag anzeigen

Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Graphic Control um 90 grad drehen

  Alt 7. Nov 2007, 09:04
Für die Faulen hab ich mal kurz ein Bsp.
Auf der Form befinden sich nur eine PaintBox und ein SpinEdit (was den Winkel angibt).

Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  XF: TXForm;
  x0, y0: Integer;
  q: Double;
begin
  x0 := PaintBox1.Width div 2;
  y0 := PaintBox1.Height div 2;
  q := SpinEdit1.Value / 180 * 3.1415926;

  XF.eM11 := cos(q);
  XF.eM12 := sin(q);
  XF.eM21 := -sin(q);
  XF.eM22 := cos(q);
  XF.eDx := x0 - cos(q) * x0 + sin(q) * y0;
  XF.eDy := y0 - cos(q) * y0 - sin(q) * x0;

  With PaintBox1.Canvas do
  begin
    SetGraphicsMode(Handle, GM_ADVANCED);
    SetWorldTransform(Handle, XF);

    Rectangle(x0 - 20, y0 - 10, x0 + 20, y0 + 10);
  end;
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  PaintBox1.Repaint;
end;
Wie gesagt, nur ein schnell zusammengebasteltes Beispiel. Aber wem's Hilft
Chris
  Mit Zitat antworten Zitat