DELPHI FAQ: Как копировать векторное изображение?
Как копировать векторное изображение?
Previous
Home
Next
procedure
TForm1.Button1Click(Sender: TObject);
var
mf: TMetaFile;
mfc: TMetaFileCanvas;
i: integer;
ClipBrdFormat: word;
data: cardinal;
palette: hPalette;
p:
array
[
0
..
90
]
of
TPoint;
begin
mf := TMetaFile.Create;
mf.Width :=
100
;
mf.Height :=
100
;
mfc := TMetafileCanvas.Create(mf,
0
);
with
mfc
do
begin
Pen.Color := clBlack;
FrameRect(ClipRect);
MoveTo(
0
,
50
);
LineTo(
100
,
50
);
LineTo(
95
,
48
);
MoveTo(
100
,
50
);
LineTo(
95
,
52
);
MoveTo(
50
,
100
);
LineTo(
50
,
0
);
LineTo(
48
,
5
);
MoveTo(
50
,
0
);
LineTo(
52
,
5
);
Brush.Style := bsClear;
Font.
name
:=
'arial'
;
Font.Size :=
6
;
TextOut(
55
,
0
,
'Y'
);
TextOut(
95
,
38
,
'X'
);
Pen.Color := clRed;
for
i := low(p)
to
high(p)
do
p[i] := Point(i, round(
50
-
30
* sin((i -
50
) /
5
)));
Polyline(p);
end
;
mfc.Free;
mf.SaveToClipboardFormat(ClipBrdFormat, data, palette);
OpenClipboard(Application.Handle);
EmptyClipboard;
SetClipboardData(ClipBrdFormat, data);
CloseClipboard;
mf.Inch :=
200
;
Form1.Canvas.Draw(
0
,
0
, mf);
mf.Free;
end
;
Взято с
www.delphiworld.narod.ru
DELPHI FAQ