RAD Studio VCL Reference
|
Instantiates a metafile object.
constructor Create; override;
virtual __fastcall TMetafile();
Call Create to instantiate a metafile at runtime.
Create allocates memory for a metafile object, and calls the inherited Create. Then sets the Enhanced and Transparent properties to true.
To create a metafile image from scratch, draw the image in a metafile canvas. When the metafile canvas is destroyed, it transfers the image into the metafile object provided to the metafile canvas constructor. After the image is drawn on the canvas and the canvas is destroyed, the image is 'playable' in the metafile object.
C++ Examples:
/* This example shows how to create or augment a metafile using a metafile canvas object. This metafile can then be used to draw on the canvas of another object such as a paintbox or a printer. */ TMetafile *MyMetafile; void __fastcall TForm1::Button1Click(TObject *Sender) { MyMetafile = new TMetafile; TMetafileCanvas *canvas = new TMetafileCanvas(MyMetafile, 0); canvas->Brush->Color = clRed; canvas->Ellipse(0, 0, 100, 200); // ... delete canvas; Form1->Canvas->Draw(0, -50, MyMetafile); //1 red circle PaintBox1->Canvas->Draw(0, 0, MyMetafile); //1 red circle } void __fastcall TForm1::Button2Click(TObject *Sender) { if (MyMetafile == NULL) return; // click Button1 first! TMetafileCanvas *canvas = new TMetafileCanvas(MyMetafile, 0); canvas->Draw(-50, 0, MyMetafile); canvas->Brush->Color = clBlue; canvas->Ellipse(100, 100, 300, 200); // ... delete canvas; Form1->Canvas->Draw(0, 0, MyMetafile); // 1 red circle and 1 blue circle PaintBox1->Canvas->Draw(0, 0, MyMetafile); // 1 red circle and 1 blue circle }
Delphi Examples:
{ This example shows how to create or augment a metafile using a metafile canvas object. This metafile can then be used to draw on the canvas of another object such as a paintbox or a printer. } var MyMetafile: TMetafile; procedure TForm1.Button1Click(Sender: TObject); begin MyMetafile := TMetafile.Create; with TMetafileCanvas.Create(MyMetafile, 0) do try Brush.Color := clRed; Ellipse(0, 0, 100, 200); // ... finally Free; end; Form1.Canvas.Draw(0, 0, MyMetafile); {1 red circle } PaintBox1.Canvas.Draw(0, -50, MyMetafile); {1 red circle } end; { To add to an existing metafile image, create a metafile canvas and play the source metafile into the metafile canvas: } procedure TForm1.Button2Click(Sender: TObject); begin if (MyMetafile = nil) then exit; { click Button1 first! } with TMetafileCanvas.Create(MyMetafile, 0) do try Draw(-50, 0, MyMetafile); Brush.Color := clBlue; Ellipse(100, 100, 300, 200); // ... finally Free; end; Form1.Canvas.Draw(0, 0, MyMetafile); {1 red circle and 1 blue circle } PaintBox1.Canvas.Draw(0, 0, MyMetafile); {1 red circle and 1 blue circle } end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|