Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#1

TMetafile nachträglich vergrößern

  Alt 17. Jun 2010, 13:41
Hallo miteinander!

Ich möchte ein Metafile als Zwischenspeicher für eine Gruppe von Zeichenoperationen verwenden. Mein Ansatz:
Delphi-Quellcode:
procedure Test;
var
  m: TMetafile;
  mc: TMetafileCanvas;
begin
  m := TMetafile.Create;
  try
    m.SetSize(1000, 1000); {AAA}

    mc := TMetafileCanvas.Create(m, 0);
    try
      mc.Ellipse(10, 10, 990, 990);
      mc.Rectangle(500, 500, 1100, 1100);
    finally
      mc.Free;
    end;
    m.SaveToFile('Test.emf');
  finally
    m.Free;
  end;
end;
Dummerweise weiß ich aber erst während des Zeichnens, welche Elemente ich zeichnen will und welche Größe ich dafür brauche, kann also an der Stelle {AAA} noch nicht die endgültige Größe angeben. Dummerweise ist es nachher zu spät: Nach Anlegen des Canvas kann ich das SetSize hinsetzen, wo ich will - die Wirkung wird entweder durch mc.Free rückgängig gemacht oder ist zwar in m.Width /m.Height zu erkennen, kommt aber nicht im EMF auf der Platte an.

Habt ihr eine Idee für mich?
Uli Gerhardt
  Mit Zitat antworten Zitat