Vielen Dank Deep-Sea
für den demo source code, aber leider bringt er nicht den gewünschten Effekt.
Es dreht sich nur der Inhalt der Komponente aber nicht die gesamte Komponente. Ich habe ein kleines demo progrämchen beigefügt, wo du es sehr schön sehen kannst.
und hier der quell code im program:
procedure TForm1.MMLevel1Paint(Sender: TObject);
var
XF: TXForm;
x0, y0: Integer;
q: Double;
begin
x0 := MMLevel1.Width div 2;
y0 := MMLevel1.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 MMLevel1.Canvas do
begin
SetGraphicsMode(
Handle, GM_ADVANCED);
SetWorldTransform(
Handle, XF);
// Rectangle(x0 - 20, y0 - 10, x0 + 20, y0 + 10);
// habe ich nicht aufgerufen (bringt natürlich auch nichts)
end;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
MMLevel1.Repaint;
PaintBox1.Repaint;
end;