Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf TmetafileCanvas geht nicht zu zeichnen (https://www.delphipraxis.net/60914-auf-tmetafilecanvas-geht-nicht-zu-zeichnen.html)

Alexander Roth 14. Jan 2006 09:40


Auf TmetafileCanvas geht nicht zu zeichnen
 
Hallo Praxisler,

seit neustem beschäftige ich mich mit Metafiles.
Wenn ich nun ein einfaches metafile mit TmetafileCanvas zeichnen will, bleibt immer ein unformatiertes leeres Metafile zurück.


Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var wmf:Tmetafile;
begin
refresh;
wmf:=Tmetafile.Create;

wmf.Height:=100;
wmf.Width:=100;

with TMetafileCanvas.Create(wmf, 0) do
  begin
  Pen.Width:=0;
  Pen.Color:= clred;
  Brush.Color:= clblack;
  Brush.Style:=bssolid;

  //tropfen
  Ellipse(0,0,100,100);
  end;

form1.Canvas.StretchDraw(rect(0,0,wmf.Width,wmf.Height),wmf);

wmf.Free;
end;
Sowohl zeichnen auf die Canvas sieht man nix als auch in eine Datei abspeichern hinterlässt eine leere Datei.

Könnt ihr mir da helfen?

Insider2004 14. Jan 2006 09:46

Re: Auf TmetafileCanvas geht nicht zu zeichnen
 
Du musst ein MetafileCanvas.Free machen, um den Inhalt auf das Metafile zu übertragen. Siehe Help.

Alexander Roth 14. Jan 2006 10:26

Re: Auf TmetafileCanvas geht nicht zu zeichnen
 
Jo danke jetzt klappts.
Der richtige Code lautet:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var wmf:Tmetafile;
begin
refresh;
wmf:=Tmetafile.Create;

wmf.Height:=100;
wmf.Width:=100;

with TMetafileCanvas.Create(wmf, 0) do
  begin
  Pen.Width:=0;
  Pen.Color:= clred;
  Brush.Color:= clblack;
  Brush.Style:=bssolid;

  //tropfen
  Ellipse(0,0,100,100);
  free;
  end;

form1.Canvas.StretchDraw(rect(0,0,wmf.Width,wmf.Height),wmf);

wmf.Free;
end;
Tschüss
und bis zum nächstemmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz