AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia TMetafile nachträglich vergrößern
Thema durchsuchen
Ansicht
Themen-Optionen

TMetafile nachträglich vergrößern

Ein Thema von uligerhardt · begonnen am 17. Jun 2010 · letzter Beitrag vom 17. Jun 2010
Antwort Antwort
Benutzerbild von uligerhardt
uligerhardt

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

TMetafile nachträglich vergrößern

  Alt 17. Jun 2010, 14: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
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: TMetafile nachträglich vergrößern

  Alt 17. Jun 2010, 18:01
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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: TMetafile nachträglich vergrößern

  Alt 17. Jun 2010, 18:03
dann schreib halt alles in eine Liste, dass du weißt, wie viel du zeichnen wirst und schreibe erst dann auf die Festplatte.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz