Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Anfängerfrage: TMetafileCanvas.Create

  Alt 7. Dez 2009, 15:11
Du kannst doch ein Objekt des Typs "TMetaFileCanvas" per Hand erzeugen und anschließend wieder freigeben. Mach es doch einfach so:

Delphi-Quellcode:
procedure MyDraw;
  var MetaGraphic : TMetafile;
      MetaCanvas : TMetafileCanvas; // <-- hier
      A : Integer;

  procedure DrawSomething(Angle:Integer);
  begin
    // hier sollen etliche Zeichenoperationen stehen, als ob sie unter "with" stehen würden
    MetaCanvas.LineTo(10, 10); // <-- hier noch ein "MetaCanvas" davor
  end;

begin
  MetaGraphic := TMetafile.Create;
  //
  // lieber noch in einen try-finally-Block packen
  //
  try
    MetaCanvas := TMetafileCanvas.Create(MetaGraphic, 0);
    //
    try
      for A := 0 to 90 do DrawSomething(A);
      //
      MyCanvas.Draw(0, 0, MetaGraphic);
    finally
      MetaCanvas.Free;
    end;
  finally
    MetaGraphic.Free;
  end;
end;
Hoffe, das hilft dir schonmal weiter.

MFG
Patti

PS: Willkommen in der DP
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat