![]() |
TMetafile nachträglich vergrößern
Hallo miteinander!
Ich möchte ein Metafile als Zwischenspeicher für eine Gruppe von Zeichenoperationen verwenden. Mein Ansatz:
Delphi-Quellcode:
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
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;
Delphi-Quellcode:
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
{AAA}
Delphi-Quellcode:
rückgängig gemacht oder ist zwar in
mc.Free
Delphi-Quellcode:
/
m.Width
Delphi-Quellcode:
zu erkennen, kommt aber nicht im EMF auf der Platte an.
m.Height
Habt ihr eine Idee für mich? |
AW: TMetafile nachträglich vergrößern
Hallo,
warum weißt Du erst beim Zeichnen was Du zeichnen willst? du könntest auch analog Drawtext erstmal alles ins "nichts" zeichnen, damit du die benötigte Größe ermitteln kannst. Danach dann richtig. Oder du fängst mit deinem Metafile so klein wie möglich an, bei jedem Zeichnen, das über die Größe hinausgehen würde, erstellst du ein neues Metafile mit der neuen Größe, zeichnest das alte hinein und anschließend deine neue Grafik. Gruß Frank |
AW: TMetafile nachträglich vergrößern
dann schreib halt alles in eine Liste, dass du weißt, wie viel du zeichnen wirst und schreibe erst dann auf die Festplatte.
Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz